从ec2实例访问其他区域s3存储桶

时间:2018-11-30 16:23:11

标签: amazon-s3 amazon-ec2 boto3

我已为在us-west-2地区上运行的ec2实例分配了具有以下策略的角色-

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}

,并尝试访问ap-southeast-1地区的存储桶。问题是每个aws s3操作都超时。我也尝试过在命令--region ap-southeast-1中指定区域。

从文档中,我找到了该指针-

  

仅在同一区域内支持端点。您无法创建   VPC和其他区域中的服务之间的端点。

那么,使用实例中的aws-cli或boto客户端从不同区域访问存储桶的过程是什么?

3 个答案:

答案 0 :(得分:0)

我认为不必指定存储桶的区域即可访问它,您可以从此处查看一些boto3示例: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.get_object

答案 1 :(得分:0)

显然,要访问来自其他区域的存储桶,该实例还需要访问公共互联网。因此,该实例需要具有公共IP或必须在NAT之后。

答案 2 :(得分:0)

我会检查以确保您已将上述权限授予正确的用户或角色。

运行命令;

aws sts get-caller-identity 

您可能会认为EC2实例在使用IAM角色时正在使用您设置的凭据。