Amazon web services 如何将多个用户添加到S3上多个文件的访问控制列表中
我找到了如何让S3存储桶访问其他AWS帐户的方法。如果我理解正确,那么给bucket的权限与给bucket中每个对象的权限是不同的。我希望bucket中的所有对象都具有相同的权限 要向用户提供对bucket的列表访问权限,请执行以下操作:Amazon web services 如何将多个用户添加到S3上多个文件的访问控制列表中,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我找到了如何让S3存储桶访问其他AWS帐户的方法。如果我理解正确,那么给bucket的权限与给bucket中每个对象的权限是不同的。我希望bucket中的所有对象都具有相同的权限 要向用户提供对bucket的列表访问权限,请执行以下操作: aws2 s3api put-bucket-acl --bucket BucketName --grant-read-acp emailaddress=email1@emal.com,emailaddress=email2@emal.com,… --grant
aws2 s3api put-bucket-acl --bucket BucketName --grant-read-acp emailaddress=email1@emal.com,emailaddress=email2@emal.com,… --grant-read emailaddress=email1@emal.com,emailaddress=email2@emal.com,…
要授予用户对一个对象的列表访问权限,请执行以下操作:
aws2 s3api put-object-acl --bucket BucketName --key myObject.txt --grant-read-acp emailaddress=email1@emal.com,emailaddress=email2@emal.com --grant-read emailaddress=email1@emal.com,emailaddress=email2@emal.com
然而,我在S3上有数十万个对象。如何使用Amazon Web Service命令行界面(AWS CLI)授予对所有用户相同的访问权限?您要查找的是
放置bucket acl
。这是你的电话号码
提供的示例是:
aws s3api put-bucket-acl --bucket MyBucket --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers
在您的示例中,您只有标志--grant read acp
,这并不授予对bucket中对象的访问权。根据文档,--grant read acp
“允许受让人读取bucket ACL”。对你来说不是很有用
其中as
——grant full control
向存储桶提供读、写、读ACP和写ACP。如果您查看我链接的文档,您可以看到所有允许的标志 您正在寻找的是放置bucket acl
。这是你的电话号码
提供的示例是:
aws s3api put-bucket-acl --bucket MyBucket --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers
在您的示例中,您只有标志--grant read acp
,这并不授予对bucket中对象的访问权。根据文档,--grant read acp
“允许受让人读取bucket ACL”。对你来说不是很有用
其中as——grant full control
向存储桶提供读、写、读ACP和写ACP。如果您查看我链接的文档,您可以看到所有允许的标志 由于您“希望bucket中的所有对象都具有相同的权限”,并且希望将权限应用于一组用户,因此我建议:
- 创建一个IAM组
- 将所需的IAM用户分配给IAM组
- 向IAM组添加授予对bucket访问权限的策略
- 查看所有存储桶的列表
- 列出特定存储桶的内容
- 获取/放置/删除特定存储桶的内容
- 创建一个IAM组
- 将所需的IAM用户分配给IAM组
- 向IAM组添加授予对bucket访问权限的策略
- 查看所有存储桶的列表
- 列出特定存储桶的内容
- 获取/放置/删除特定存储桶的内容
- 授予对整个存储桶的读取和列表访问权限
- 到AWS帐户列表
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::ACCOUNT-ID-1:root",
"arn:aws:iam::ACCOUNT-ID-2:root",
"arn:aws:iam::ACCOUNT-ID-3:root"
]
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::BUCKET-NAME",
"arn:aws:s3:::BUCKET-NAME/*"
]
}
]
}
如果他们使用root登录(通过电子邮件地址登录),这将提供访问权限,我认为这也适用于他们帐户中的IAM用户,只要他们在自己的帐户中被授予足够的Amazon S3 IAM权限。(例如,
s3:
或者更安全地说,s3:GetObject
和s3:ListBucket
用于所需的bucket)此答案基于以下要求:
- 授予对整个存储桶的读取和列表访问权限
- 到AWS帐户列表
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::ACCOUNT-ID-1:root",
"arn:aws:iam::ACCOUNT-ID-2:root",
"arn:aws:iam::ACCOUNT-ID-3:root"
]
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::BUCKET-NAME",
"arn:aws:s3:::BUCKET-NAME/*"
]
}
]
}
如果他们使用root登录(通过电子邮件地址登录),这将提供访问权限,我认为这也适用于他们帐户中的IAM用户,只要他们在自己的帐户中被授予足够的Amazon S3 IAM权限。(例如,
s3:
或者更安全地说,s3:GetObject
和s3:ListBucket
用于所需的bucket)旁注:如果您希望向特定用户组授予对bucket(或子文件夹)的访问权限,则可以使用这些用户创建一个IAM组,然后向该IAM组授予权限。这样,这些用户也可以访问该bucket/文件夹中的任何其他文件。但是,如果我想将S3权限与用户的帐户(通过他们的电子邮件)关联,我认为您不能将IAM角色与其他用户的帐户链接。我的建议与IAM角色无关。我建议创建一个IAM组,并将所需的IAM用户放入该IAM组中。然后,将策略添加到IAM组。这适用于整个存储桶或子目录,但不适用于临时选择的对象。emailAddress
的使用似乎有点奇怪。它可能仅与帐户的根登录名关联,而与特定用户关联。这是因为IAM用户没有根据其IAM用户记录存储电子邮件地址。如果创建IAM组需要我创建IAM角色,而我无法将这些角色与单个AWS帐户关联,则我不想创建IAM组。旁注:如果您希望授予对存储桶(或子文件夹)的访问权限对于特定的用户组,您可以改为使用这些用户创建IAM组,然后向该IAM组授予权限。这样,这些用户也可以访问该bucket/文件夹中的任何其他文件。但是,如果我想将S3权限与用户的帐户(通过他们的电子邮件)关联,我认为您不能将IAM角色与其他用户的帐户链接。我的建议与IAM角色无关。我被推荐