使用其他AWS服务访问其他帐户中的S3存储桶

问题描述 投票:0回答:1

我有两个单独的AWS帐户,我们称它们为Prod和Staging。在暂存帐户中,我尝试使用在生产中的S3存储桶上找到的备份文件来设置Elasticache(redis)集群。

使用boto函数elasticache.create_replication_group,我像这样传递SnapshotsArns:

SnapshotArns:[
   'arn:aws:s3:::bucket/backup_file_name.rdb',
   'arn:aws:s3:::bucket/backup_file_name2.rdb',
   'arn:aws:s3:::bucket/backup_file_name3.rdb',
]

elasticache.create_replication_group调用失败,并显示错误

An error occurred (InvalidParameterValue) when calling the CreateReplicationGroup operation: No permission to 
access S3 object: bucket/backup_file_name.rdb

过去我曾使用角色假设来通过Boto S3客户端访问S3对象,但这有很大的不同。我需要让Elasticache自己访问该存储桶,该存储桶存在于另一个帐户中。有人对这个有经验么?我该怎么办?

我应该补充一下,该存储桶的策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::staging_account_id:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*"
            ]
        }
    ]
}
amazon-web-services amazon-s3 amazon-iam amazon-elasticache
1个回答
0
投票

执行此操作的说明可以在AWS documentation中,特别是此步骤:步骤4:授予ElastiCache对.rdb文件的读取权限

© www.soinside.com 2019 - 2024. All rights reserved.