首页 > 解决方案 > 创建 S3 存储桶策略以根据私有云的访问密钥限制访问

问题描述

此方案适用于本地私有云。我们在一个租户中有多个存储桶。我们为同一租户中的各个存储桶生成访问密钥和密钥。我想使用存储桶策略根据访问密钥授予对存储桶的访问权限,并拒绝租户中剩余存储桶的访问。

标签: amazon-web-servicesamazon-s3devops

解决方案


您无法通过 IAM 密钥执行此操作,但您可以通过委托人(在本例中为 IAM 用户)执行此操作。

使用NotPrincipal您可以独占拒绝非所引用 IAM 用户的任何人的权限。使用它来小心防止意外阻止自己管理存储桶。

以下是使用此存储桶策略的示例

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "statement1",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789:user/$USERNAME"
         },
         "Action": [
            "s3:Put*",
            "s3:Get*",
            "s3:List*"
         ],
         "Resource": [
            "arn:aws:s3:::awsexamplebucket1",
            "arn:aws:s3:::awsexamplebucket1/*"
         ]
      },
      {
         "Sid": "statement1",
         "Effect": "Deny",
         "NotPrincipal": {
            "AWS": "arn:aws:iam::123456789:user/$USERNAME"
         },
         "Action": [
            "s3:Put*",
            "s3:Get*",
            "s3:List*"
         ],
         "Resource": [
            "arn:aws:s3:::awsexamplebucket1",
            "arn:aws:s3:::awsexamplebucket1/*"
         ]
      }
   ]
}

推荐阅读