Amazon web services AWS策略只允许访问特定的bucket文件夹
我正在尝试创建IAM策略,以允许用户仅访问S3存储桶中的特定文件夹。 如何使用可视策略编辑器执行此操作?Amazon web services AWS策略只允许访问特定的bucket文件夹,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,我正在尝试创建IAM策略,以允许用户仅访问S3存储桶中的特定文件夹。 如何使用可视策略编辑器执行此操作? 在参考资料部分,如果我提到文件夹的arn,用户将被拒绝访问整个bucket。以下是授予对bucket中特定文件夹访问权限的策略: { "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket&quo
在参考资料部分,如果我提到文件夹的arn,用户将被拒绝访问整个bucket。以下是授予对bucket中特定文件夹访问权限的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["folder1/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/folder1/*"]
}
]
}
注意事项:
- 允许列出bucket的
操作是对bucket本身的权限(不是路径)。要限制可以列出哪些文件夹,必须通过ListBucket
指定文件夹s3:prefix
和GetObject
操作对对象进行操作,因此可以在ARN中引用文件夹PutObject
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"]
}
]
}
以下是授予对bucket中特定文件夹访问权限的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["folder1/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/folder1/*"]
}
]
}
注意事项:
- 允许列出bucket的
操作是对bucket本身的权限(不是路径)。要限制可以列出哪些文件夹,必须通过ListBucket
指定文件夹s3:prefix
和GetObject
操作对对象进行操作,因此可以在ARN中引用文件夹PutObject
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"]
}
]
}
非常感谢您的回答,这是如何使用web控制台完成的?我只是想了解一下。这个策略可以作为内联策略添加到控制台中。这意味着它是仅应用于一个IAM用户或IAM组的一次性策略,而不是托管策略(版本跟踪并经常重用)。您可以使用“可视化编辑器”创建策略,但我通常会复制现有策略并进行修改。为此,我单击“JSON”选项卡并粘贴整个策略。坦白地说,我更喜欢阅读JSON策略,我只在创建全新策略时使用可视化编辑器。非常感谢您的回答,如何使用web控制台来完成这一点?我只是想了解一下。这个策略可以作为内联策略添加到控制台中。这意味着它是仅应用于一个IAM用户或IAM组的一次性策略,而不是托管策略(版本跟踪并经常重用)。您可以使用“可视化编辑器”创建策略,但我通常会复制现有策略并进行修改。为此,我单击“JSON”选项卡并粘贴整个策略。坦率地说,我更喜欢阅读JSON策略,我只在创建全新策略时使用可视化编辑器。