AutoScaling 如何通过RAM使用弹性伸缩?

简介: RAM (Resource Access Management) 是阿里云为客户提供的用户身份管理与资源访问控制服务,使用RAM能够大大的提高企业信息安全程度。本文主要介绍了如何通过RAM实现对弹性伸缩服务的访问控制。

RAM (Resource Access Management) 是阿里云为客户提供的用户身份管理与资源访问控制服务,使用RAM能够大大的提高企业信息安全程度。本文主要介绍了如何通过RAM实现对弹性伸缩服务的访问控制。

RAM简介

RAM 允许在一个云账户下创建并管理多个用户身份,并允许给单个身份或一组身份分配不同的权限策略,从而实现不同用户拥有不同的云资源访问权限。一些典型的RAM应用场景包括:

  1. 企业子账号管理与分权
  2. 不同企业之间的资源操作与授权管理

关于RAM更详细的介绍与功能,您可以参考 访问控制文档 .

目前,RAM支持访问弹性伸缩的方式入如下表:

服务名 控制台(RAM) API(RAM) 控制台(STS) API(STS) 授权粒度 系统策略 相关文档
弹性伸缩 AutoScaling 支持 支持 支持 支持 服务级别 AliyunESSFullAccess,AliyunESSReadOnlyAccess API使用须知
  • 控制台(RAM/STS):表示是否支持通过RAM或STS方式在控制台进行访问。
  • API(RAM/STS):表示是否支持通过RAM或STS方式使用API进行访问。
  • 授权粒度:当前服务提供的最小授权粒度。

下面我们将分别介绍如何通过RAM用户和RAM角色(STS)的方式访问弹性伸缩服务。

使用RAM用户访问弹性伸缩

RAM用户

RAM用户即阿里云子账号,您可以在 RAM控制台 创建一个RAM子账号,RAM用户在刚创建出来时不具有任何资源操作权限,需要主账号进行授权后才能对资源进行访问。

授权

您只有赋予RAM用户一定的权限后,RAM用户才具有操作资源的权利。

系统授权策略

针对弹性伸缩服务,阿里云为您预先创建了相应的系统策略:

image

  • AliyunESSFullAccess

管理弹性伸缩服务的权限,其策略内容为:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "ess:*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

表示您能访问弹性伸缩提供的所有服务。

  • AliyunESSReadOnlyAccess

只读访问弹性伸缩服务的权限,其策略内容为:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "ess:Describe*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

表示您能访问弹性伸缩所有以Describe开头命名的服务,例如:DescribeScalingGroups(查询伸缩组列表)。

自定义授权策略

你还可以通过自定义授权策略对RAM用户能够使用的弹性伸缩服务精确的控制。

RAM策略包含允许(Allowed)和拒绝(Deny)两种效力,当允许和拒绝策略同时包含时,将优先执行拒绝策略。

假如,您希望赋予某用户只读权限的同时,允许其手动向伸缩组添加或移除Ecs实例,您可以制定如下自定义权限策略:

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ess:Describe*",
                "ess:AttachInstances",
                "ess:DetachInstances"
            ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

如果您不希望RAM用户查看您的伸缩配置,您可以通过反向权限限制其访问,例如:

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ess:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ess:DescribeScalingConfigurations"
            ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

使用RAM角色访问弹性伸缩

RAM角色

RAM 角色与 RAM 用户一样,都是 RAM 中定义的身份。RAM 角色是一种虚拟用户,没有确定的身份认证密钥,需要被一个受信的实体用户扮演才能正常使用。关于RAM角色更详细的介绍请查看 理解RAM角色

授权

授权策略

RAM角色的策略授权同RAM用户相同,只是这里我们是给一个虚拟角色赋予了特定的权限,当一个授信用户扮演该角色后,授信用户不在拥有之前自身的策略授权,而是获取了所扮演角色的策略授权。

授信策略

RAM角色除了授权策略之外还具有授信策略。授信策略表明了哪些实体可以扮演该角色。授信实体一般分为阿里云账号和阿里云服务,通常,我们会选择给某个云账号进行授信。授信之后,这个云账号下的RAM用户便可以扮演该角色。

创建RAM角色

创建RAM角色

RAM角色授权

RAM角色授权

通过RAM角色访问控制台

注意,只有RAM用户才可以扮演角色。

先通过RAM用户登录控制台,此时我们没有为该RAM用户设置任何的授权策略,因此访问弹性伸缩控制台时将告知您联系主账号进行授权。

授权

点击用户头像,然后点击切换身份按钮,进行角色切换。

image

image

注意,切换角色时,当前登录的RAM用户必须授予AliyunSTSAssumeRoleAccess权限。

可以看到,扮演成功后,我们就以角色身份登录了控制台。此时,您将获得该角色所拥有的所有权限。

image

通过RAM角色访问API

您可以通过STS的AssumeRole api获取一个角色的临时身份。这里我们使用Java SDK,以扮演autoScaling-test角色为例。

AssumeRoleRequest request = new AssumeRoleRequest();
request.setRoleArn("acs:ram::1619897336813314:role/shengfanramrole");
request.setRoleSessionName("shengfan");
AssumeRoleResponse response = client.getAcsResponse(request);

AssumeRoleResponse 中,我们可以获取到一个临时秘钥,用于访问云资源。

加入我们为autoScaling-test角色分配了弹性伸缩只读权限,那么通过该角色查询伸缩组示例如下:

AssumeRoleResponse assumeRoleResponse = assumeRule();
AssumeRoleResponse.Credentials credentials = assumeRoleResponse.getCredentials();
String key = credentials.getAccessKeyId();
String secret = credentials.getAccessKeySecret();
String token = credentials.getSecurityToken();
IClientProfile profile = DefaultProfile.getProfile(regionId, key, secret);
IAcsClient stsClient = new DefaultAcsClient(profile);
DescribeScalingGroupsRequest request = new DescribeScalingGroupsRequest();
request.setSecurityToken(token);  // 必须设置securityToken
stsClient.getAcsResponse(request);
目录
相关文章
|
弹性计算 Java 关系型数据库
AutoScaling 弹性伸缩附加与分离RDS实例
阿里云弹性伸缩服务(AutoScaling)推出新功能:AttachDBInstances和DetachDBInstances。现在,您可以自由的对伸缩组附加和移除Rds实例啦。
2254 0
|
弹性计算 负载均衡 Java
AutoScaling 弹性伸缩附加与分离负载均衡实例
AutoScaling推出最新功能:AttachLoadBalancer和DetachLoadBalancers。伸缩组中负载均衡实例不可修改的现状一去不复返啦。
4089 0
|
弹性计算 数据安全/隐私保护
AutoScaling 弹性伸缩配置重大升级
AutoScaling 弹性伸缩配置重大升级,不仅新增主机名称(HostName)、镜像预设密码(PasswordInherit)两大特性,而且新增伸缩配置修改功能。
1987 0
|
18天前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
220 0
|
6月前
|
弹性计算 监控 开发工具
【阿里云弹性计算】实战教程:如何高效利用阿里云ECS弹性伸缩应对业务高峰
【5月更文挑战第20天】本文介绍了如何使用阿里云ECS弹性伸缩服务应对业务高峰。通过自动调整云资源规模,弹性伸缩在流量增加时扩展实例,流量减少时收缩实例,实现成本与性能的优化。步骤包括开通服务、创建伸缩组、设定规则和监控指标。文中还提供了一个Python脚本示例,并强调了优化策略,如应用无状态设计、考虑冷却时间和结合云监控。通过实践和调整,企业可以有效应对业务波动。
159 5
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(二)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(二)
202 0
|
缓存 弹性计算 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(一)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)
279 0
|
存储 弹性计算 负载均衡
《阿里云认证的解析与实战-云计算ACP认证》——云计算ACP训练营第4天——二、弹性伸缩AS
《阿里云认证的解析与实战-云计算ACP认证》——云计算ACP训练营第4天——二、弹性伸缩AS
|
存储 弹性计算 负载均衡
阿里云服务器是一种简单高效可弹性伸缩的计算服务
阿里云服务器是一种简单高效可弹性伸缩的计算服务,阿里云服务器是什么?云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,云服务器可以降低IT成本提升运维效率,免去企业或个人前期采购IT硬件的成本,阿里云服务器让用户像使用水、电、天然气等公共资源一样便捷、高效地使用服务器
223 0

相关产品

  • 弹性伸缩