保存错误的存储桶策略后如何解决访问被拒绝的问题?

How to resolve access denied after saving a bad bucket policy?

我使用 terraform 设置了我的堆栈,我刚刚更改了存储桶策略并应用了但现在我发现存储桶策略拒绝所有操作,包括管理和更改策略。

如何更新策略以便删除存储桶?

我无法再访问存储桶策略,但应用的内容仍处于我的 Terraform 状态。如果我尝试销毁存储桶,它会显示以下内容(我屏蔽了 ID 和帐户)。

以下只是一个示例,因为有 5 个操作块,每个操作块包含十几个用户 ID。

              - Statement = [
                  - {
                      - Action    = [
                          - "s3:ListBucketVersions",
                          - "s3:ListBucketMultipartUploads",
                          - "s3:ListBucket",
                        ]
                      - Condition = {
                          - StringLike    = {
                              - aws:userid = [
                                  - "AROAXXXXXXXXXXXXXXXXA:*",
                                  - "AROAXXXXXXXXXXXXXXXXB:*",
                                ]
                            }
                          - StringNotLike = {
                              - aws:userid = [
                                  - "*:AROAAXXXXXXXXXXXXXXXA:user1",
                                  - "*:AROAAXXXXXXXXXXXXXXXA:user2",
                                  - "*:AROAAXXXXXXXXXXXXXXXA:*",
                                ]
                            }
                        }
                      - Effect    = "Deny"
                      - Principal = "*"
                      - Resource  = "arn:aws:s3:::my-account-bucket-name"
                      - Sid       = "Deny bucket-level read operations except for authorised users"
                    },

根据评论。

新政策似乎导致拒绝所有人访问。在这种情况下,AWS 在博客 post 中解释了如何做,标题为:

该过程涉及以 root 用户身份访问帐户并删除存储桶策略。