Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS策略只允许访问特定的bucket文件夹_Amazon Web Services_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon web services AWS策略只允许访问特定的bucket文件夹

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

我正在尝试创建IAM策略,以允许用户仅访问S3存储桶中的特定文件夹。 如何使用可视策略编辑器执行此操作?
在参考资料部分,如果我提到文件夹的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的
    ListBucket
    操作是对bucket本身的权限(不是路径)。要限制可以列出哪些文件夹,必须通过
    s3:prefix
    指定文件夹
  • GetObject
    PutObject
    操作对对象进行操作,因此可以在ARN中引用文件夹
也可以使用来引用用户名。此策略可应用于IAM组,并允许每个用户使用自己的名称访问文件夹:

{
  "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的
    ListBucket
    操作是对bucket本身的权限(不是路径)。要限制可以列出哪些文件夹,必须通过
    s3:prefix
    指定文件夹
  • GetObject
    PutObject
    操作对对象进行操作,因此可以在ARN中引用文件夹
也可以使用来引用用户名。此策略可应用于IAM组,并允许每个用户使用自己的名称访问文件夹:

{
  "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策略,我只在创建全新策略时使用可视化编辑器。