如何在没有AWS Vault的情况下使用boto3?

时间:2019-04-16 09:44:01

标签: python amazon-web-services boto3 boto

我有以下在Python中运行的方法:

def connect_s3_boto3():
    try:
        os.environ['AWS_PROFILE'] = "a9e"
        s3 = boto3.resource('s3')
        return s3
    except:
        raise

问题是可以使用~/.aws/config

[profile home]
aws_access_key_id=ID
aws_secret_access_key=SECRET
[profile a9e]
region=eu-west-1
role_arn=DAROLE
source_profile=home

因此,我有一系列疑问。在要使用该方法的生产环境中,需要设置AWS Vault?有没有其他选择?例如,像在IAM_ROLE中一样使用boto2

1 个答案:

答案 0 :(得分:1)

对于在Amazon EC2实例上运行的代码:

  • 创建 IAM角色并分配适当的权限
  • 将角色与Amazon EC2实例相关联
  • 在调用AWS开发工具包的实例上运行的任何代码都将自动获取与角色关联的凭证
  • 无需在配置/凭据文件中放置访问密钥,秘密密钥或角色

请参阅:IAM Roles for Amazon EC2 - Amazon Elastic Compute Cloud

如果您在非EC2计算机上运行代码,则需要在config / credentials文件中输入条目。这将至少涉及与IAM用户关联的访问密钥和秘密密钥。如果您随后希望使用IAM角色,则代码需要AssumeRole()使用这些凭据。