gpt4 book ai didi

amazon-web-services - 用于 API 身份验证的 EC2 实例元数据或 AWS STS?安全最佳实践

转载 作者:行者123 更新时间:2023-12-04 09:08:48 24 4
gpt4 key购买 nike

这是用例。
我有一个运行 ServiceNow 中间服务器代理的 EC2 实例。 EC2 实例附加了名为“TestIAMRole”的 IAM_Role,并假定角色策略已附加到该角色。我使用这个 EC2 实例和 ServiceNow 中间服务器代理来调用使用 AWS boto3 端点的 VPC 端点。 Python 脚本将使用 boto3 SDK 生成身份验证 token 并调用端点。
python 示例:

    import boto3
client = boto3.client('sts')
repsonse = client.assume_role(RoleArn='<IAM ROle ARN>',RoleSessionName='AssumeROle01')
credentials=repsonse['Credentials']
然后使用 Python 请求,我们调用 VPC 端点,它工作正常。
由于我们在 EC2 实例上运行代理,我们想到了另一种使用本地 https 端点使用 EC2 实例元数据的方法,它返回 access_key、secret_key 和 session_token
http://169.254.169.254/latest/meta-data/iam/security-credentials/TestIAMRole
因此,我们正在从上述两个选项中寻找最安全/推荐的专家意见。
另外,关于优化的几个问题
  • 如果我们使用假设角色 STS 方法来检索凭证,那么是否建议将这些凭证存储在缓存/应用程序中直到到期日期时间,以便我们可以重复使用它们,或者我们是否应该在每次调用其他 AWS 服务时获取新的 sts 凭证?只是在每次调用 AWS 服务时尝试保存额外的 STS 调用。
  • 如果可以选择存储在缓存或应用程序中,那么我们可以将 key 安全地存储在 ServiceNow 中(加密格式),并且可以在到期日期时间之前定期更新。

  • 请告知这是否是正确的方法。

    最佳答案

    它们几乎是一样的。
    当您调用 boto3.client('sts') ,它会在多个地方查找凭据。其中之一是实例元数据。
    您可以检索实例元数据,从中提取凭据,然后使用这些凭据创建客户端。这不仅对您来说更有用,而且您检索的凭据将是有时间限制的:在某些时候它们会过期,您必须再次完成该过程。 Boto 客户端足够聪明,可以为您做到这一点。
    至于假设不同的角色,正如您在问题中所显示的那样,实例元数据不会帮助您。您只能检索附加到 EC2 实例的角色(实例配置文件)的凭证。

    关于amazon-web-services - 用于 API 身份验证的 EC2 实例元数据或 AWS STS?安全最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63399444/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com