本文为您介绍OOS服务关联角色AliyunServiceRoleForOOSBandwidthScheduler、AliyunServiceRoleForOOSInstanceScheduler、AliyunServiceRoleForOOSExecutionDelivery的应用场景以及如何删除服务关联角色。

背景信息

OOS服务关联角色AliyunServiceRoleForOOSBandwidthScheduler、AliyunServiceRoleForOOSInstanceScheduler是OOS为了完成某个执行任务时,需要获取其他云服务的访问权限而提供的RAM角色。

AliyunServiceRoleForOOSExecutionDelivery是OOS为了完成执行记录的投递功能时,需要获取其他云服务的访问权限而提供的RAM角色。更多关于服务关联角色的信息请参见 服务关联角色

应用场景

当OOS完成如下运维任务需要访问ECS云服务的某些资源时,可通过OOS自动创建的服务关联角色AliyunServiceRoleForOOSBandwidthScheduler或AliyunServiceRoleForOOSInstanceScheduler获取访问权限。

当OOS的执行记录投递功能需要访问日志服务对象存储OSS云服务的资源时,可通过OOS自动创建的服务关联角色AliyunServiceRoleForOOSExecutionDelivery获取访问权限。

AliyunServiceRoleForOOSInstanceScheduler

执行定时开关机操作时,如果角色不存在,OOS会自动创建一个名称为AliyunServiceRoleForOOSInstanceScheduler的服务关联角色,并且该角色被授权的权限策略为AliyunServiceRoleForOOSInstanceSchedulerPolicy,OOS通过扮演该角色即可成功调用OpenAPI完成对实例的开机和关机。

权限说明:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:StartInstance",
                "ecs:StopInstance",
                "ecs:DescribeInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

AliyunServiceRoleForOOSBandwidthScheduler

执行带宽临时升级时,如果角色不存在,OOS会自动创建一个名称为AliyunServiceRoleForOOSBandwidthScheduler的服务关联角色,并且该角色被授权的权限策略为AliyunServiceRoleForOOSBandwidthSchedulerPolicy,OOS通过扮演该角色即可成功调用OpenAPI完成带宽临时升级。

权限说明:
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:ModifyInstanceNetworkSpec",
                "ecs:DescribeInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

AliyunServiceRoleForOOSExecutionDelivery

OOS 执行记录投递功能需要访问日志服务对象存储OSS云服务的资源时,可通过自动创建的服务关联角色AliyunServiceRoleForOOSExecutionDelivery获取访问权限。

权限说明:
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:PutObject",
        "oss:GetBucketInfo",
        "log:GetProject",
        "log:GetLogStore",
        "log:CreateLogStore",
        "log:PostLogStoreLogs"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": "ram:DeleteServiceLinkedRole",
      "Resource": "*",
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "ram:ServiceName": "executiondelivery.oos.aliyuncs.com"
        }
      }
    }
  ]
}

删除服务关联角色

如果您需要删除服务关联角色AliyunServiceRoleForOOSBandwidthScheduler、AliyunServiceRoleForOOSInstanceScheduler,需先取消依赖这个服务关联角色的OOS执行。而删除AliyunServiceRoleForOOSExecutionDelivery角色则可以直接删除。

以下为删除AliyunServiceRoleForOOSExecutionDelivery角色的示例:

说明 如果您使用了OOS 执行投递功能,出于安全考虑,需要删除OOS服务关联角色AliyunServiceRoleForOOSExecutionDelivery,则需要先明确删除后的影响:当删除AliyunServiceRoleForOOSExecutionDelivery后,当前账号下的OOS执行记录将无法投递到OSS及SLS中。
  1. 登录RAM控制台,在左侧导航栏中单击RAM角色管理。
  2. 在RAM角色管理页面的搜索框中,输入AliyunServiceRoleForOOSExecutionDelivery,自动搜索到名称为AliyunServiceRoleForOOSExecutionDelivery的RAM角色。
  3. 在右侧操作列,单击删除。
  4. 在删除RAM角色对话框,单击确定。

5. 删除服务关联角色具体操作请参考 服务关联角色文档。

常见问题

  1. 为什么我的RAM用户无法自动创建OOS服务关联角色AliyunServiceRoleForOOSExecutionDelivery?
    您需要拥有指定的权限,才能自动创建或删除AliyunServiceRoleForOOSExecutionDelivery。因此,在RAM用户无法自动创建AliyunServiceRoleForOOSExecutionDelivery时,您需为其添加以下权限策略。
    {
        "Statement": [
            {
                "Action": [
                    "ram:CreateServiceLinkedRole"
                ],
                "Resource": "acs:ram:*:主账号ID:role/*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "ram:ServiceName": [
                            "executiondelivery.oos.aliyuncs.com"
                        ]
                    }
                }
            }
        ],
        "Version": "1"
    }