【发布时间】:2021-05-23 06:28:58
【问题描述】:
我使用 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"
},
【问题讨论】:
-
您的存储桶策略是什么?之前它起作用的时候是什么?
-
以前没有政策。现在它包含
"StringNotLike": { "aws:userid": ["xxx", "yyy"] }的条件。 -
您能否实际显示完整的政策?以及如何访问存储桶?
-
@Marcin 我已经包含了一个示例。自从我应用该策略后,我无法再访问该策略,因为它阻止我访问它,因此我从 terraform 状态显示了该策略,这只是一个示例。
-
谢谢@Marcin。目前,解决方法是将存储桶与我的状态分离,然后使用备用名称创建。我不拥有该帐户,因此已向我的经理请求帮助。我没有为此感到压力,因为这是我们的非产品帐户。这是类似于将钥匙留在里面的情况之一,除了这次我关上门时锁改变了。添加您的评论作为答案,以便我标记为已接受。
标签: amazon-web-services amazon-s3 terraform terraform-provider-aws