以往部署在 ECS 实例中的应用程序如果需要访问阿里云其他云产品,您通常需要借助 AccessKeyID 和 AccessKeySecret(下文简称 AK)来实现。AK 是您访问阿里云 API 的密钥,具有相应账号的完整权限。为了方便应用程序对 AK 的管理,您通常需要将 AK 保存在应用程序的配置文件中或以其他方式保存在 ECS 实例中,这在一定程度上增加了 AK 管理的复杂性,并且降低了 AK 的保密性。甚至,如果您需要实现多地域一致性部署,AK 会随着镜像以及使用镜像创建的实例扩散出去。这种情况下,当您需要更换 AK 时,您就需要逐台更新和重新部署实例和镜像。
现在借助于 ECS 实例 RAM 角色,您可以将 RAM 角色 和 ECS 实例关联起来,实例内部的应用程序可以通过 STS 临时凭证访问其他云产品。其中 STS 临时凭证由系统自动生成和更新,应用程序可以使用指定的 实例元数据 URL 获取 STS 临时凭证,无需特别管理。同时借助于 RAM,通过对角色和授权策略的管理,您可以达到不同实例对不同云产品或相同云产品具有各自访问权限的目的。
本文以部署在 ECS 实例上的 Python 访问 OSS 为例,详细介绍了如何借助 ECS 实例 RAM 角色,使实例内部的应用程序可以使用 STS 临时凭证访问其他云产品。
说明:为了方便您随本文样例快速入门,文档里所有操作均在 OpenAPI Explorer 完成。OpenAPI Explorer 通过已登录用户信息获取当前账号临时 AK,对当前账号发起线上资源操作,请谨慎操作。创建实例操作会产生费用。操作完成后请及时释放实例。
为了使 ECS 借助实例 RAM 角色,实现内部 Python 可以使用 STS 临时凭证访问 OSS,您需要完成以下步骤:
步骤 1. 创建 RAM 角色并配置授权策略
步骤 2. 指定 RAM 角色创建并设置 ECS 实例
步骤 3. 在实例内部访问实例元数据 URL 获取 STS 临时凭证
步骤 4. 基于临时凭证,使用 Python SDK 访问 OSS
按以下步骤创建 RAM 角色并配置授权策略。
创建 RAM 角色。找到 OpenAPI Explorer RAM 产品下 CreateRole API。其中:
创建授权策略。找到 OpenAPI Explorer RAM 产品下的 CreatePolicy API。其中:
为角色附加授权。找到 OpenAPI Explorer RAM 产品下 AttachPolicyToRole API。其中:
您可以通过以下任一种方式为 ECS 实例指定 RAM 角色:
您可以使用 ECS 的 AttachInstanceRamRole API 附加实例 RAM 角色到已有的 VPC 类型 ECS 实例授权访问,设置信息如下:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。