如果我想从我的" mac"上传文件到S3,我可以用
import boto3
s3 = boto3.resource('s3', region_name="us-west-1")
s3.meta.client.upload_file('/User/gantao/amz.jpg', 'gantao_created', 'amz.jpg')
但是,
有没有办法从EC2实例上传文件到S3(不要使用SSH到EC2)?
答案 0 :(得分:1)
简短的回答是"是的。"
更长的答案是,为了将文件从EC2实例上传到S3,部署的EC2实例必须具有put_object
到S3的正确权限。
您可以通过在Python代码中配置boto客户端,或者通过创建和分配具有该权限的IAM角色来为EC2实例执行此操作。
更安全的方式是分配IAM角色,因为它不要求您在代码或源代码管理的文件中拥有凭据。
创建IAM角色:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
要向您的EC2实例添加IAM角色: