繁体   English   中英

如何使用 boto3 轮换我的 AWS IAM 用户访问权限和密钥?

[英]How do I rotate my AWS IAM user access and secret key using boto3?

我们正在使用 Python AWS SDK ( boto3 ) 连接到 S3。

我们有一个 static 访问和秘密令牌,但是 my.network 并不安全。

我不能使用 another.network 发送请求,所以有没有办法在每次请求后更改访问密钥和密钥?

我可以在安全数据库中保存一个新令牌以发送另一个请求,但重要的是在使用该令牌后,它会过期。

我在找什么:

send: curl https://aws.endpoint/refresh/token
response: {“new_access_token”:”blablabla”, “new_secret_token”:”blablablabla”}

如果必须,您可以结合使用iam.create_access_keyiam.get_access_key_last_usediam.update_access_keyiam.delete_access_key API 操作来轮换密钥。

请记住,每个用户最多只能有 2 个访问密钥,因此您必须使用create_access_key创建一个新访问密钥,禁用/禁用当前(旧)访问密钥( get_access_key_last_used & update_access_key ),将您的访问密钥更改为下一个应用程序代码中的一个,然后最后删除当前的一个delete_access_key


但是, AWS 访问密钥是 IAM 用户或 AWS 账户根用户的长期凭证 您可以定期轮换它们,但在这种情况下我不会首先这样做。

您的最佳解决方案将取决于您使用的服务。

例如,如果使用 EC2 实例调用 S3,则不要使用/嵌入/传递/读取访问密钥,而是使用短期临时安全凭证,这些凭证将通过启动具有 S3 访问角色的 EC2 实例来提供。

如果您在本地使用此脚本,则可以使用AWS Security Token Service (AWS STS) ,它使您能够为 AWS IAM 用户/联合用户(单点登录等)请求临时的、有限权限的凭证。 您会寻找GetSessionToken API 操作( 此处为 Boto3 SDK 文档)。

在这两种情况下,凭据都包含一个安全令牌,指示凭据何时过期并且它们是有意短暂存在的,以帮助降低您的风险,以防凭据被意外暴露。

阅读: 管理 AWS 访问密钥的最佳实践

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM