通过EC2进行S3身份验证,而无需在代码或存储中传递AWS Access Key和Secret Key

ImP*_*shu 2 amazon-s3 amazon-ec2 amazon-web-services python-3.x boto3

我正在尝试使用python SDK(Boto)通过EC2机器访问S3存储桶。我知道我们可以通过使用IAM角色的访问密钥和秘密密钥来完成此任务。我们可以通过对代码进行硬编码来使用它,或将其存储在EC2本地存储中的配置文件中。我知道我们可以创建策略和角色并分配给EC2计算机

但是还有其他方法可以将访问密钥和秘密密钥放在python程序或ec2存储中吗,我们可以访问S3存储桶或任何AWS资源?

我的座右铭是我必须通过python程序访问AWS资源,而不使用访问密钥和秘密密钥,并保护我的访问密钥和秘密密钥。

Gow*_*and 5

创建一个IAM角色并附加策略AmazonS3ReadOnlyAccess-为了列出s3存储桶,要进行完全访问,请附加AmazonS3FullAccess。

由于您希望此操作在ec2中完成,因此在IAM角色的信任关系中,给出

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请参阅:https : //docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html