账号授权

您在使用RAM用户访问同账号或其他阿里云账号(跨账号)下的云资源时,需根据使用场景为RAM用户授权。同账号访问的云资源时,您需要为RAM用户授予AliyunADBSparkProcessingDataRole权限;跨账号访问云资源时,您需要为其他阿里云账号授权。本文介绍同账号授权和跨账号授权的详细步骤。

前提条件

集群的产品系列为企业版、基础版或湖仓版

Spark作业权限说明

提交Spark作业,需要具备以下三种权限。

  • AliyunADBFullAccess:管理AnalyticDB for MySQL集群的权限。具体操作请参见为RAM子账号授权

  • AnalyticDB for MySQL库表的读写权限:AnalyticDB for MySQL默认通过数据库账号进行库表权限管理。通过RAM用户提交Spark作业时,如果Spark作业需要读写数据,需要将数据库普通账号与RAM用户绑定。具体操作请参见绑定或解绑RAM用户与数据库账号

  • AliyunADBSparkProcessingDataRole:用于授权AnalyticDB for MySQL Spark访问其他云资源,如访问OSS目录,OTS数据等。具体操作请参见同账号授权

同账号授权

同账号授权时,需先创建RAM用户。详情请参见创建RAM用户

  1. 单击快速授权链接

  2. 单击左下角同意授权,快速授予AliyunADBSparkProcessingDataRole权限。

    授权后将自动创建可供AnalyticDB for MySQL使用的服务角色AliyunADBSparkProcessingDataRole,AnalyticDB for MySQL使用此角色来访问其他云资源。

重要

仅支持使用阿里云账号(主账号)为RAM用户授权。

跨账号授权

AnalyticDB for MySQL Spark支持访问其他阿里云账号的所有云资源。本文以阿里云账号A(主账号,账号ID为testAccountID)跨账号访问阿里云账号B(主账号,账号ID为testAccountID1)中的数据为例,介绍跨账号授权的具体操作。

步骤1:为B账号创建RAM角色并授权

  1. 创建RAM角色,并允许A账号扮演该RAM角色。

    说明

    如果您已创建RAM角色,并允许A账号扮演该RAM角色,可跳过该步骤,执行后续步骤。

    1. 使用阿里云账号B(主账号)或RAM管理员登录RAM控制台

    2. 在左侧导航栏,选择身份管理 > 角色

    3. 角色页面,单击创建角色

    4. 创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步

    5. 设置角色信息。

      1. 输入角色名称本示例角色名称设置为admin-oss

      2. 可选:输入备注

      3. 信任的云账号选择其他云账号,然后输入A账号的阿里云账号UID(testAccountID)。

    6. 单击完成

  2. 为RAM角色精确授权。

    1. 单击精确授权

    2. 精确授权面板,选择权限策略类型为系统策略自定义策略,然后输入权限策略名称。

      若您想访问指定VPC下的资源时,需自定义权限策略,并在Resource参数中指定资源所属的安全组和交换机。自定义策略的方法请参见创建自定义权限策略

      本文示例仅授权访问指定VPC下的RDS MySQL实例,自定义权限策略的名称为eni_policy,权限策略内容如下:

      说明

      您需要为RDS MySQL实例添加安全组,且安全组规则的入方向与出方向放行RDS MySQL端口的访问请求。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "ecs:*",
                  "Resource": "acs:ecs:*:*:securitygroup/<RDS所属安全组ID>"
              },
              {
                  "Effect": "Allow",
                  "Action": "vpc:*",
                  "Resource": "acs:vpc:*:*:vswitch/<RDS所属交换机ID>"
              }
          ]
      }
    3. 单击确认新增授权

    4. 单击关闭

  3. 修改信任策略,允许A账号下任意的RAM用户扮演该RAM角色。

    1. 在左侧导航栏,选择身份管理 > 角色

    2. 角色页面,单击目标RAM角色名称。

    3. 信任策略页签,单击编辑信任策略

    4. 修改信任策略内容,然后单击保存信任策略

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "acs:ram::testAccountID:root"
              ]
            }
          },
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "testAccountID@ads.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }

步骤2:为A账号创建RAM用户并授予扮演RAM角色的权限

  1. 创建RAM用户。

    1. 使用阿里云账号A(主账号)或RAM管理员登录RAM控制台

    2. 在左侧导航栏,选择身份管理 > 用户

    3. 用户页面,单击创建用户

    4. 创建用户页面的用户账号信息区域,设置用户基本信息。

      • 登录名称:可包含英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符。

      • 显示名称:最多包含128个字符或汉字。

      • 标签:单击edit,然后输入标签键和标签值。为RAM用户绑定标签,便于后续基于标签的用户管理。

      说明

      单击添加用户,可以批量创建多个RAM用户。

    5. 访问方式区域,选择控制台访问,并根据需要设置控制台登录密码、重置密码策略和多因素认证策略。详情请参见控制台访问

    6. 单击确定

  2. 创建权限策略,允许RAM用户扮演任何角色。

    1. 在左侧导航栏,选择权限管理 > 权限策略

    2. 权限策略页面,单击创建权限策略

    3. 创建权限策略页面,单击脚本编辑页签。

    4. 输入权限策略内容,然后单击继续编辑基本信息

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ram:PassRole",
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    5. 输入权限策略名称备注

    6. 单击确定

  3. 为RAM用户授权。

    1. 在左侧导航栏,选择身份管理 > 用户

    2. 用户页面,单击目标RAM用户操作列的添加权限

    3. 添加权限面板,为RAM用户添加步骤2所创建的权限。

    4. 单击确认新增授权

    5. 单击关闭

相关文档