访问控制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的条件。
操作步骤
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏选择设置,对RAM进行初始设置。
- 在左侧导航栏选择用户,创建RAM用户,并为RAM用户设置登录密码和AccessKey。
- 创建ROS相关操作的自定义授权策略。
自定义授权策略即为RAM用户可以对资源栈进行操作的授权策略。创建自定义策略的操作方法,请参见创建自定义策略。
授权策略语言,请参见
权限策略基本元素和
权限策略语法和结构。
创建ROS相关的自定义授权策略可用到的操作名称、描述、和示例如下。
使用以下表格列出的可选操作,作为策略中的Action和Resource元素的内容,可以组合出多种授权策略。 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****的资源栈进行更新操作。
- 在用户或用户组页面列表中,找到要授权的RAM用户或RAM用户组,并给其授予权限。