配置弹性云服务器ECS委托
华为云弹性云服务器(Elastic Cloud Server,以下简称ECS)是一种云上可随时自助获取、可弹性伸缩的计算服务。本文将指导用户创建ECS委托,并获取委托的临时访问密钥。
应用场景
假如您是一位开发者,开发了一个应用程序,这个应用程序运行在ECS实例上,应用程序的代码中涉及调用API访问华为云服务。此时,因为华为云服务要求访问请求方出示访问凭证,所以您的API调用将会面临提供访问凭证的问题。
访问凭证按照时效性可分为永久凭证和临时凭证,相较于永久性访问凭证,例如用户名和密码,临时访问密钥因为有效期短且刷新频率高,所以安全性更高。因此,您的应用程序若想要以更安全的方式访问云服务,需要获取临时访问凭证,而IAM的委托功能,则支持通过ECS委托获取临时访问密钥。
如图1所示,以访问数据库服务举例。因为数据库服务要求访问请求方提供访问凭证,所以应用程序需要获得委托的临时访问密钥AK、SK。应用程序与ECS元数据服务通信,ECS元数据服务再与IAM通信,拿到临时AK、SK后返回给应用程序。然后,应用程序将临时AK、SK作为访问凭证出示给数据库服务,数据库服务收到请求后,先校验访问凭证是否合法,凭证通过校验后,ECS实例上的应用程序才能访问数据库服务。
解决方案
针对以上应用场景,可使用IAM对ECS云服务的委托来获取临时访问密钥。在IAM上对ECS云服务授权,并对应用程序所在的ECS实例进行授权委托管理。ECS实例获得委托权限之后,应用程序可申请指定委托的临时访问密钥,从而以临时访问密钥为凭证安全访问华为云资源。详细方案如下:
- 创建ECS云服务委托。账号在IAM控制台创建委托,指定委托对象为ECS云服务。委托创建时,选择权限策略,选择可访问的资源范围,不同的委托对应不同的权限策略。
- ECS实例配置委托。在ECS实例的配置项中选择上一步创建的委托,一个ECS实例只可以选择一个委托。
- 获取委托的临时凭证。ECS实例配置了委托参数后,就获得了委托权限。此时,ECS实例上运行的应用程序可获取委托的临时访问密钥AK、SK。拥有临时访问密钥的应用程序可与华为云服务进行交互,交互行为遵循账号授予的权限策略和资源使用范围。
实施步骤
如图3所示,配置ECS弹性云服务器委托分为创建ECS云服务委托、ECS实例配置委托、获取委托的临时凭证3步。详细步骤如下:
- 管理员创建ECS云服务委托。
- 登录统一身份认证服务控制台。
- 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击“创建委托”。
- 在创建委托页面,设置“委托名称”
- “委托类型”选择“云服务”,在“云服务”中选择“弹性云服务器 ECS 裸金属服务器 BMS”。
图4 创建委托
- 选择“持续时间”。
- (可选)填写“委托描述”。建议填写描述信息。
- 单击“完成”。
- 在授权的确认弹窗中,单击“立即授权”。
- 勾选需要授予委托的权限,单击“下一步”,选择权限的作用范围,给委托授权。
- 单击“确定”,委托创建完成。
- 管理员或拥有ECS权限的IAM用户为ECS实例配置委托。
- 若ECS实例未创建,则参考自定义购买弹性云服务器,购买并配置ECS云服务器,在高级配置过程中,单击下拉列表选择步骤1创建的委托,获取相应权限。
图5 选择委托
- 若ECS实例已创建,可按照如下流程配置ECS实例委托:
- 进入ECS产品页,单击ECS实例名,进入配置页面。
图6 单击ECS实例名
- 管理信息栏目下,单击,为ECS实例选择委托。
图7 为ECS实例选择委托
- 根据委托名选择步骤1创建的委托。
图8 选择委托
- 单击,完成配置
- 若ECS实例未创建,则参考自定义购买弹性云服务器,购买并配置ECS云服务器,在高级配置过程中,单击下拉列表选择步骤1创建的委托,获取相应权限。
- 应用程序获取临时凭证。
运行在ECS实例上的应用程序调用获取委托临时凭证的API,即可获得临时访问密钥,之后可使用该密钥访问其他的华为云服务。AK、SK获取方法如下,如需了解详情,可参见元数据获取。
- URI
/openstack/latest/securitykey
- 方法
支持GET请求
- 示例
Linux操作系统:
curl http://169.254.169.254/openstack/latest/securitykey
Windows操作系统:
Invoke-RestMethod http://169.254.169.254/openstack/latest/securitykey
ECS会为您自动轮换这些临时凭证,从而确保每次申请的临时凭证安全、有效。