根据我的研究,似乎S3存储桶通常是从API Key发起的同一AWS账户下载的 .
我已获得访问新AWS账户的权限,此帐户包含我需要每天下载的S3存储桶 . 问题是我的API密钥与另一个AWS账户相关联 . 有没有办法将新的S3存储桶导入我现有的AWS账户,或者尝试在已经拥有我需要的S3存储桶的AWS账户上创建新的API密钥更简单?
我正在使用python和boto3 . 谢谢!
Amazon S3存储桶的所有者可以添加存储桶策略,以便公开或特定AWS用户(包括来自其他AWS账户的用户)授予访问权限 . 这样,您可以使用帐户A中的凭据访问帐户B中的存储桶 .
例如,此Bucket Policy授予对其他帐户中用户的访问权限:
{ "Id": "S3Access", "Version": "2012-10-17", "Statement": [ { "Sid": "DownloadFiles", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::my-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/fred" ] } }, { "Sid": "ListFiles", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::my-bucket", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/fred" ] } } ] }
可以通过查看IAM管理控制台内的IAM用户来获取ARN .
我不建议每次下载整个存储桶,而是使用AWS Command-Line Interface (CLI),它有一个方便的 aws s3 sync 命令 . 这可以将文件与Amazon S3同步,并且只复制自上次同步以来添加或修改的文件 . 您可以定期运行它(例如每小时)以获得桶的本地副本,与DropBox的概念类似 .
aws s3 sync
1 回答
Amazon S3存储桶的所有者可以添加存储桶策略,以便公开或特定AWS用户(包括来自其他AWS账户的用户)授予访问权限 . 这样,您可以使用帐户A中的凭据访问帐户B中的存储桶 .
例如,此Bucket Policy授予对其他帐户中用户的访问权限:
可以通过查看IAM管理控制台内的IAM用户来获取ARN .
我不建议每次下载整个存储桶,而是使用AWS Command-Line Interface (CLI),它有一个方便的
aws s3 sync
命令 . 这可以将文件与Amazon S3同步,并且只复制自上次同步以来添加或修改的文件 . 您可以定期运行它(例如每小时)以获得桶的本地副本,与DropBox的概念类似 .