AWS - 使用 SecureTransport:false 设置策略后权限被拒绝

时间:2021-04-05 03:30:10

标签: amazon-web-services amazon-s3

我试图强制执行仅允许 SSL 访问的策略。
但是,在附加策略后,现在我对这个存储桶中的每件事都显示“您没有权限”,包括“权限”选项卡和“存储桶策略”部分。
我是管理员,我确实拥有我的用户对 IAM 中 S3 的所有访问权限。

这是政策:

{
"Id": "Policy98421321896",
"Version": "2012-10-17",
"Statement": [
    {
    "Sid": "MustBeEncryptedInTransit",
    "Action": "s3:*",
    "Effect": "Deny",
    "Resource": [
        "arn:aws:s3:::cf-templates-98d9d7a96z21x-us-east-1",
        "arn:aws:s3:::cf-templates-98d9d7a96z21x-us-east-1/*"
        ],
    "Condition": {
        "ArnEqualsIfExists": {
        "aws:SecureTransport": "false"
        }
    },
    "Principal": "*"
    }
]
}

问题是:
如何恢复对此存储分区的权限?
我应该如何正确设置此政策?

1 个答案:

答案 0 :(得分:2)

当你想添加一个检查布尔值的条件时,它应该是具有有效值的“Bool”键。

"Condition": {
    "Bool": {
      "aws:SecureTransport": "true"
    }
  }

您要实现的目标已在此博客中提及,您可以根据需要使用它。

https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSSLRequestsOnly",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

关于问题的第二部分,您可以使用您的 root 帐户重置权限,因为它应该具有上帝级别的权限。但奇怪的是,更新存储桶策略会更改您的 IAM 策略并且您无法访问 S3 配置的某些部分。也许这里还缺少其他东西..