Python boto3将文件从ec2上传到S3

Python boto3将文件从ec2上传到S3,python,amazon-s3,boto3,Python,Amazon S3,Boto3,如果我想将文件从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?简短的回答是有 较长的答案是,为了将文件从EC2实例上载到S3,部署的EC2实例必须具有将_

如果我想将文件从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?

简短的回答是有

较长的答案是,为了将文件从EC2实例上载到S3,部署的EC2实例必须具有将_对象放入S3的正确权限

您可以通过在Python代码中配置boto客户端,或者通过创建具有该权限的IAM角色并将其分配给EC2实例来实现这一点

更安全的方法是分配IAM角色,因为它不要求您在源代码管理的代码或文件中拥有凭据

使用AWS控制台创建一个IAM角色,该角色具有将对象“放入”相关S3存储桶的权限。 将IAM角色分配给EC2实例。 要创建IAM角色,请执行以下操作:

要将IAM角色添加到EC2实例,请执行以下操作:

当你说不要使用SSH到EC2时,你能详细描述一下场景吗?如果您不想使用SSH,那么必须从自定义AMI启动EC2机器,在该AMI中放置了python脚本,该脚本将上载到S3并配置为通过cron作业运行