实例RAM角色

实例RAM角色

概述
实例RAM角色允许您将一个角色关联到ECS实例,在实例内部基于STS(Security Token Service)临时凭证访问其他云产品的API,临时凭证将周期性更新。即可以保证云账号AccessKey安全,还可以借助访问控制RAM实现精细化控制和权限管理。
操作步骤
步骤一:创建实例RAM角色
1.云账号登录RAM控制台。
2.在左侧导航栏,单击RAM角色管理。
3.单击创建RAM角色。
4.当前可信实体类型选择为阿里云服务,单击下一步。
在这里插入图片描述
5.选择角色类型为普通服务角色。
6.输入角色名称和备注。
7.选择受信服务为云服务器。
8.单击完成。
在这里插入图片描述
步骤二:为RAM角色授予权限
1.云账号登录RAM控制台。
2.(可选)如果您不使用系统权限,可以参见账号访问控制创建自定义权限策略章节创建一个自定义策略。
3.在左侧导航栏,单击RAM角色管理。
4.在RAM角色名称列表下,单击目标RAM角色名称。
5.在权限管理页签下,单击精确授权。
6.选择权限类型为系统策略或自定义策略。
7.输入策略名称。
8.单击确定。
9.单击关闭。
步骤三:为实例授予RAM角色
1.登录ECS管理控制台。
2.在左侧导航栏,单击实例与镜像 > 实例。
3.在顶部菜单栏左上角处,选择地域。
4.找到要操作的ECS实例,选择更多 > 实例设置 > 授予/ 收回RAM角色。
5.在弹窗中,选择创建好的实例RAM角色,单击确定完成授予。
在这里插入图片描述
更换实例RAM角色
1.登录ECS管理控制台。
2.在左侧导航栏,单击实例与镜像 > 实例。
3.在顶部菜单栏左上角处,选择地域。
4.选择一个已经授予RAM角色的ECS实例,选择更多 > 实例设置 > 授予/收回RAM角色。
5.操作类型选择授予,在已有RAM 角色中选择其他实例RAM角色,单击确定即可更换当前RAM角色。
在这里插入图片描述
收回实例RAM角色
1.登录ECS管理控制台。
2.在左侧导航栏,选择实例与镜像 > 实例。
3.在顶部菜单栏左上角处,选择地域。
4.选择一个已经授予RAM角色的ECS实例,选择更多 > 实例设置 > 授予/收回RAM角色。
5.操作类型选择收回,单击确定即可收回实例RAM角色。
在这里插入图片描述
通过API使用实例RAM角色
步骤一:创建实例RAM角色
调用CreateRole接口创建实例RAM角色。

设置RoleName参数,例如将其值置为EcsRamRoleDocumentTesting。

按如下策略设置参数AssumeRolePolicyDocument:

{
     "Statement": [
     {
         "Action": "sts:AssumeRole",
         "Effect": "Allow",
         "Principal": {
         "Service": [
         "ecs.aliyuncs.com"
         ]
         }
     }
     ],
     "Version": "1"
 }

步骤二:授权实例RAM角色
1.调用CreatePolicy接口新建授权策略。
设置如下参数:
设置RoleName参数,例如 EcsRamRoleDocumentTestingPolicy。
按如下策略设置参数PolicyDocument:

{
     "Statement": [
         {
         "Action": [
             "oss:Get*",
             "oss:List*"
         ],
         "Effect": "Allow",
         "Resource": "*"
         }
     ],
     "Version": "1"
 }

2.调用AttachPolicyToRole接口授权角色策略。
设置如下参数:
设置PolicyType参数为Custom。
设置PolicyName参数,例如EcsRamRoleDocumentTestingPolicy。
设置RoleName参数,例如EcsRamRoleDocumentTesting。
步骤三:授予实例RAM角色
调用AttachInstanceRamRole接口为实例授予RAM角色。
设置如下参数:
设置RegionId及InstanceIds参数指定一个ECS实例。
设置RamRoleName参数,例如EcsRamRoleDocumentTesting。

步骤四:(可选)收回实例RAM角色

调用DetachInstanceRamRole接口收回实例RAM角色。

设置如下参数:
设置RegionId及InstanceIds参数指定一个ECS实例。
设置RamRoleName参数,例如EcsRamRoleDocumentTesting。
步骤五:(可选)获取临时授权Token
您可以获得实例RAM角色的临时授权Token,该临时授权Token可以执行实例RAM角色的权限和资源,并且该临时授权Token会自动周期性地更新。操作步骤如下:

检索名为EcsRamRoleDocumentTesting的实例RAM角色的临时授权Token。
Linux实例:执行命令curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting。
Windows实例:具体操作,请参见实例元数据。
获得临时授权Token。返回示例如下:

{
"AccessKeyId" : "XXXXXXXXX",
"AccessKeySecret" : "XXXXXXXXX",
"Expiration" : "2017-11-01T05:20:01Z",
"SecurityToken" : "XXXXXXXXX",
"LastUpdated" : "2017-10-31T23:20:01Z",
"Code" : "Success"
}

步骤六:(可选)授权RAM用户使用实例RAM角色

{
        "Version": "2016-10-17",
        "Statement": [
            {
            "Effect": "Allow",
            "Action": [
                "ecs: [ECS RAM Action]",
                "ecs: CreateInstance",
                "ecs: AttachInstanceRamRole",
                "ecs: DetachInstanceRAMRole"
            ],
            "Resource": "*"
            },
            {
        "Effect": "Allow",
        "Action": "ram:PassRole",
        "Resource": "*"
            }
        ]
}

账号访问控制RAM.

阿里云官方文档

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
在Unity中,如果您使用了对象池来管理角色实例,那么将角色实例放回对象池中非常简单。以下是一些示例代码,演示如何将角色实例放回对象池中: 1. 创建一个对象池,其中包含角色实例。 ```csharp public class ObjectPool : MonoBehaviour { public GameObject characterPrefab; public int poolSize = 10; private List<GameObject> characterPool = new List<GameObject>(); private void Start() { // 创建对象池中的角色实例 for (int i = 0; i < poolSize; i++) { GameObject character = Instantiate(characterPrefab); character.SetActive(false); characterPool.Add(character); } } public GameObject GetCharacter() { // 从对象池中获取角色实例 foreach (GameObject character in characterPool) { if (!character.activeSelf) { character.SetActive(true); return character; } } // 如果没有空闲的角色实例,则创建一个新的实例 GameObject newCharacter = Instantiate(characterPrefab); characterPool.Add(newCharacter); newCharacter.SetActive(true); return newCharacter; } public void ReturnCharacter(GameObject character) { // 将角色实例放回对象池中 character.SetActive(false); } } ``` 2. 在您的代码中,获取角色实例并在完成使用后将其放回对象池中。 ```csharp // 从对象池中获取角色实例 GameObject character = objectPool.GetCharacter(); // 在此处执行您的逻辑,使用角色实例 // 将角色实例放回对象池中 objectPool.ReturnCharacter(character); ``` 以上代码演示了如何将角色实例放回对象池中。当您完成使用角色实例时,只需将其传递给对象池的ReturnCharacter方法,该方法将在内部将角色实例设置为非激活状态,并将其返回对象池以供稍后使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小东子李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值