【发布时间】:2019-04-22 17:34:39
【问题描述】:
从AWS-EC2实例运行的AWS-SDK如何访问AWS-S3存储桶?
- AWS-EC2 策略设置为可以访问 S3 没有 accessId 和密钥的存储桶。
- Aws-cli 工具能够从 EC2 实例访问 S3 存储桶,而无需任何 accessId 和密钥。
- 如果 aws-cli 工具能够在没有 accessId 和 secret 密钥的情况下访问 S3,则 AWS-SDK 在运行时也必须有办法做到这一点 来自 EC2 实例。
如何做到这一点?
【问题讨论】:
-
创建 IAM 实例配置文件并将其与 EC2 实例关联。
-
创建 IAM 配置文件还需要配置 accessId 和密钥以从 AWS-SDK 访问 S3 存储桶。
-
如果您有 IAM 配置文件,则不需要访问 ID 和密钥。只需运行命令
aws s3 copy ... -
是的,我知道这一点。使用 aws-cli 工具,我可以执行诸如“aws s3 copy...”之类的命令。但我需要的是,使用 AWS-SDK 做同样的事情。我想使用 JAVA 程序或 python 程序访问 S3 存储桶。适用于 java 的 AWS-SDK 需要密钥和访问 ID。但是我如何通过程序在没有 accessid 和密钥的情况下访问它?
-
如果您已将 IAM 角色分配给 EC2 实例,则任何使用 AWS 开发工具包的程序都会自动查找凭证。无需提供访问密钥 + 密钥。 (顺便说一下,AWS CLI 只是一个 Python 程序,它通过 AWS SDK for Python 获取凭证。)
标签: amazon-web-services amazon-s3 amazon-ec2 aws-sdk