【问题标题】:Create a S3 bucket policy to restrict access based on access key for private cloud创建 S3 存储桶策略以根据私有云的访问密钥限制访问
【发布时间】:2020-08-05 00:47:09
【问题描述】:

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

【问题讨论】:

  • 因为它的客户端要将数据写入 S3 存储桶。我不想走 IAM 的路。它是一个本地私有云,我们希望避免 IAM 角色/策略管理,因为它不像 AWS 那样健壮。我仍然热衷于探索基于 access-key 的访问? (我也愿意接受建议)——只是为了改写它不是 IAM 密钥,而是我打算使用租户访问密钥/凭据来验证存储桶访问。 's3',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,
  • 我很困惑。您说“私有云”,但您也提到了 S3。那么它是使用 AWS,还是不使用?
  • John,它的私有云。我们有 AWS S3 作为 PAS。我们提供 s3 存储桶来存储数据。 bucket 挂载在 UNIX 主机上,应用程序写入数据。
  • 所以当您说您拥有“AWS S3”时,您真的是指使用真正的“Amazon S3”的 S3 兼容服务吗?如果是,该 S3 兼容服务是否支持 IAM 兼容服务?
  • es,S3 兼容服务。是的,我们确实支持 IAM。我们希望避免 IAM 角色/策略管理,因为它不像 AWS 那样健壮。我仍然热衷于探索基于 access-key 的访问?

标签: amazon-web-services amazon-s3 devops


【解决方案1】:

您无法通过 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/*"
         ]
      }
   ]
}

【讨论】:

  • 克里斯,感谢您的意见。因为它的客户端要将数据写入 S3 存储桶。我不想走 IAM 的路。它是一个本地私有云,我们希望避免 IAM 角色/策略管理,因为它不像 AWS 那样健壮。我仍然热衷于探索基于 access-key 的访问? (我也愿意接受建议)
  • 克里斯,只是为了改写它不是 IAM 密钥,而是我打算使用租户访问密钥/凭据来验证存储桶访问。
  • 他们需要什么类型的访问权限?
  • 允许 s3:PutObjectTagging s3:PutObject s3:GetObjectTagging s3:GetObject s3:DeleteObject s3:DeleteObjectTagging
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多