【问题标题】:Testing a connection to S3 from an EC2 Instance using Python 3使用 Python 3 测试从 EC2 实例到 S3 的连接
【发布时间】:2021-08-02 22:54:40
【问题描述】:

我正在尝试确定 EC2 实例是否可以访问 S3。目前我正在通过上传来做到这一点:

try:
    # Create empty ping file
    subprocess.run(['touch', '/tmp/ping'])

    # Run upload commands
    upload_result = subprocess.run(['aws', 's3', 'cp', '/tmp/ping', 's3://mybucket/ping'])
    
    # Check if it succeeded
    upload_result.check_returncode()
except Exception as e:
    print('Could not reach S3')

但是,我想知道是否有更有效(非 boto)的方式来执行此操作。 EC2 实例没有s3:getObject 权限,只有s3:putObject 是预期的。但是,如果有办法通过简单的 HTTPS 请求或类似的方式来建立它,我很想听听。

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-s3 amazon-ec2


    【解决方案1】:

    这里有几件不理想的事情:

    1. 使用 awscli(我会改用 boto3 SDK)
    2. 调用变异操作 (PutObject) 只是为了测试连通性

    您可以考虑授予此 Lambda 函数对特定标记对象(例如 s3://mybucket/headtest)的读取权限,然后针对它调用 HeadObject

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      相关资源
      最近更新 更多