MaxCompute结合了阿里云的访问控制服务(RAM)和令牌服务(STS)实现对数据的安全访问。本文为您介绍控制服务(RAM)和令牌服务(STS)的授权方式。
OSS的STS模式授权
MaxCompute外部表直接访问OSS的数据,需要事先将OSS的数据相关权限赋予MaxCompute的访问账号,您可以通过以下方式授权:
方式一(推荐):当MaxCompute和OSS的Owner是同一个账号时,登录阿里云账号后,单击此处完成一键授权。
方式二:当MaxCompute和OSS的Owner不是同一个账号时,您可以自定义角色并授权。
创建RAM角色。
使用OSS账号登录RAM控制台,通过RAM控制台中的RAM角色创建角色。例如角色oss-admin。
说明更多创建角色操作信息,请参见创建可信实体为阿里云账号的RAM角色。
修改RAM角色策略内容。
在RAM控制台中的RAM角色管理页面,单击新建的RAM角色名称后,在信任策略页签修改信任策略。当MaxCompute和OSS的Owner不是同一个账号,设置如下所示,支持跨账号实现MaxCompute访问OSS。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "MaxCompute的Owner云账号ID@odps.aliyuncs.com" ] } } ], "Version": "1" }
说明MaxCompute的Owner云账号ID
为访问OSS服务的账号。更多修改角色策略内容操作,请参见修改RAM角色的信任策略。
新建权限策略。
在RAM控制台中的权限策略管理页面,新建权限策略,例如AliyunODPSRolePolicy。策略内容如下,您也可以自定义其他权限。
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" } ] }
将新建的权限策略AliyunODPSRolePolicy授权给新建的RAM角色。
更多授权操作信息,请参见为RAM角色授权。
OTS的STS模式授权
MaxCompute外部表直接访问OTS的数据,需要事先将OTS的数据相关权限赋予MaxCompute的访问账号,您可以通过以下方式授权:
方式一(推荐):当MaxCompute和OTS的Owner是同一个账号时,登录阿里云账号后,单击此处完成一键授权。
方式二:当MaxCompute和OTS的Owner不是同一个账号时,您可以自定义角色并授权。
创建RAM角色。
使用OTS账号登录RAM控制台,通过RAM控制台中的RAM角色创建角色。例如角色oss-adminots。
更多创建角色操作信息,请参见创建可信实体为阿里云账号的RAM角色。
修改RAM角色策略内容。
在RAM控制台中的RAM角色管理页面,单击新建的RAM角色名称后,在信任策略页签修改信任策略。当MaxCompute和OTS的Owner不是同一个账号时,设置如下所示,支持跨账号实现MaxCompute访问OTS。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "MaxCompute的Owner云账号的UID@odps.aliyuncs.com" ] } } ], "Version": "1" }
MaxCompute的Owner云账号ID
为访问OTS服务的账号。新建权限策略。
在RAM控制台中的权限策略管理页面,新建权限策略,例如AliyunODPSRolePolicy。策略内容如下,您也可以自定义其他权限。
{ "Version": "1", "Statement": [ { "Action": [ "ots:ListTable", "ots:DescribeTable", "ots:GetRow", "ots:PutRow", "ots:UpdateRow", "ots:DeleteRow", "ots:GetRange", "ots:BatchGetRow", "ots:BatchWriteRow", "ots:ComputeSplitPointsBySize" ], "Resource": "*", "Effect": "Allow" } ] }
将新建的权限策略AliyunODPSRolePolicy授权给新建的RAM角色。
更多授权操作信息,请参见为RAM角色授权。
Hologres的STS模式授权
MaxCompute外部表直接访问Hologres的数据,需要先将Hologres的数据相关权限赋予MaxCompute的访问账号,以下介绍Hologres的STS模式授权操作。
使用Hologres账号登录RAM控制台,通过RAM控制台中的RAM角色创建角色。
阿里云账号:
阿里云账号下的RAM用户可以通过扮演RAM角色来访问云资源,详情请参见创建可信实体为阿里云账号的RAM角色。
身份提供商:
通过设置SSO实现从企业本地账号系统登录至阿里云控制台,帮您解决企业的统一用户登录认证要求。详情请参见创建可信实体为身份提供商的RAM角色。
修改信任策略配置内容。
在角色页面,单击已创建完成的RAM角色名称。
单击信任策略页签。
在信任策略页签,单击编辑信任策略。
参照如下内容修改信任策略配置。
修改信任策略配置内容与选择的可信实体类型相关。
可信实体类型为阿里云账号:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<UID>:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
可信实体类型为身份提供商:
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "saml:recipient": "https://signin.aliyun.com/saml-role/sso" } }, "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::<UID>:saml-provider/IDP" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
说明<UID>即阿里云账号ID,可在用户信息页面获取。
单击确定。
添加RAM角色至Hologres实例并授权。
RAM角色需要有Hologres实例的开发权限,才能在权限范围内使用Hologres。由于RAM角色默认没有Hologres管理控制台的查看和操作实例的权限,因此需要阿里云账号完成RAM相关权限授予才能进行后续操作。添加RAM角色至Hologres实例,您可以通过如下方式进行授权。
通过Hologres管理控制台授权。
在左侧导航栏单击实例列表,单击需要授权的Hologres实例名称。
在实例详情页面,单击账号管理。
在用户管理页面单击新增用户添加RAM角色至Hologres实例。
在DB授权页签,为该RAM角色授予实例的开发权限。
通过SQL方式授权。
您可以通过SQL方式进行授权,授权SQL请参见Hologres权限模型概述。
若是通过RAM用户扮演RAM角色,RAM用户默认没有Hologres管理控制台的权限,需要阿里云账号给RAM用户在访问控制页面授予AliyunRAMReadOnlyAccess权限,否则RAM用户无法在Hologres管理控制台进行任何操作。详情请参见文档授予RAM用户权限。
Hologres还支持双签名的认证方式,详情请参见创建Hologres外部表(双签名模式)。