访问控制RAM(Resource Access Management)是阿里云提供的管理用户身份与资源访问权限的服务。通过RAM,您可以创建、管理RAM用户,并可以控制这些RAM用户对资源的操作权限。当您的企业存在多用户协同操作资源的场景时,RAM可以让您避免与其他用户共享云账号密钥,按需为用户分配最小权限,从而降低企业的信息安全风险。

前提条件

进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

通过RAM您可以控制RAM用户执行的ROS操作,也可以控制RAM用户对指定资源栈(Stack)下的资源进行操作,以ROS的资源栈(Stack)为单位对资源集合进行统一的权限控制和管理。

注意 对于模板中使用到的依赖服务请慎用acs:SourceIp、acs:SecureTransport的条件。
  • 对于STS场景,ROS使用自身的IP地址而不是原始请求的IP地址配置资源。例如:在创建资源栈时,ROS从它的IP地址发送请求来启动ECS实例,而不是来自CreateStack调用的IP地址。
  • 对于非STS场景,ROS支持透传SourceIp和SSL信息。目前支持的服务包括:ECS、VPC、SLB、RDS、REDIS、PVTZ、CS、FC、OSS、SLS、ApiGateway和ActionTrail。
ROS服务本身可以使用acs:SourceIp、acs:SecureTransport的条件。

操作步骤

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏选择设置,对RAM进行初始设置。
    您可以设置RAM用户安全策略,详情请参见设置RAM用户安全策略
  3. 在左侧导航栏选择用户,创建RAM用户,并为RAM用户设置登录密码和AccessKey。
    创建RAM用户的操作方法,请参见创建RAM用户
  4. 创建ROS相关操作的自定义授权策略。

    自定义授权策略即为RAM用户可以对资源栈进行操作的授权策略。创建自定义策略的操作方法,请参见创建自定义策略

    授权策略语言,请参见权限策略基本元素权限策略语法和结构

    创建ROS相关的自定义授权策略可用到的操作名称、描述、和示例如下。

    使用以下表格列出的可选操作,作为策略中的ActionResource元素的内容,可以组合出多种授权策略。 Action元素表示授权的操作,Resource表示授权操作的资源。

    • ROS相关操作列表
      操作 描述
      ros:DescribeStacks 查看资源栈列表
      ros:CreateStack 创建资源栈
      ros:DeleteStack 删除资源栈
      ros:UpdateStack 更新资源栈
      ros:CancelUpdateStack 取消资源栈更新
      ros:AbandonStack 丢弃资源栈
      ros:ValidateTemplate 校验模板
      ros:DescribeStackDetail 查看资源栈详情
      ros:DescribeStackResources 查看资源列表
      ros:DescribeStackResourceDetail 查看资源详情
      ros:DescribeStackEvents 查看事件列表
      ros:DescribeStackTemplate 查看模板内容
      ros:SetDeletionProtection 启用或禁用删除保护
    • ROS资源描述符
      RAM的策略定义中,可以通过下面的方式描述ROS资源栈,其中的变量可以用星号(*)来表示所有。如授权查看某一地域内的资源栈列表和详情的描述结构为:
      acs:ros:{region_id}:{owner_id}:stack/{stack_name}/{stack_id}                       
      示例:
      acs:ros:cn-beijing:*:stack/myStack/94dd5431-2df6-4415-81ca-732a7082****                  
      • 策略示例:授予查看资源栈的策略
        {
          "Statement": [
            {
              "Action": [
                "ros:DescribeStacks",
                "ros:DescribeStackDetail"
              ],
              "Effect": "Allow",
              "Resource": "acs:ros:cn-beijing:*:stack/*"
            }
          ],
          "Version": "1"
        }
        									

        该策略授予查看cn-beijing区域的所有资源栈列表和资源栈详情的权限。其中,星号(*)是一个通配符,它表示账号下cn-beijing地域的所有资源栈。

      • 策略示例:授予创建和查看资源栈的策略
        {
          "Statement": [
            {
              "Action": [
                "ros:CreateStack",
                "ros:DescribeStacks",
                "ros:DescribeStackDetail",
                "ros:ValidateTemplate"
              ],
              "Effect": "Allow",
              "Resource": "*"
            }
          ],
          "Version": "1"
        }
        									

        通过该策略,可以授予用户在所有区域创建和查看资源栈的权限。

      • 策略示例:授予指定用户更新指定资源栈的策略
        {
          "Statement": [
            {
              "Action": [
                "ros:UpdateStack"
              ],
              "Effect": "Allow",
              "Resource": "acs:ros:cn-beijing:12345****:stack/myStack/94dd5431-2df6-4415-81ca-732a7082****"
            }
          ],
          "Version": "1"
        }
        									

        该策略授予ID为12345****的用户可以对名称为myStack,ID为94dd5431-2df6-4415-81ca-732a7082****的资源栈进行更新操作。

  5. 用户用户组页面列表中,找到要授权的RAM用户或RAM用户组,并给其授予权限。