【问题标题】:Delete S3 Bucket With Deny All Policy And VPC Condition删除拒绝所有策略和 VPC 条件的 S3 存储桶
【发布时间】:2022-01-04 04:17:39
【问题描述】:

我正在探索VPC Enpoints,我给自己制造了一个问题。在我使用cloudformation 的过程中,我使用以下bucket policy 生成了一个桶:

ArtifactBucketPolicy:
  Description: Setting Amazon S3 bucket policy for AWS CodePipeline access
  Type: AWS::S3::BucketPolicy
  Properties:
    Bucket: !Ref ArtifactsBucket
    PolicyDocument:
      Id: SSEAndSSLPolicy
      Statement:
      - Action: s3:*
        Condition:
          StringNotEquals:
            aws:SourceVpce:
              Fn::ImportValue:
                !Sub project-03:dev:${AWS::Region}:VPC:ID
        Effect: Deny
        Principal: '*'
        Resource:
        - !Sub 'arn:${AWS::Partition}:s3:::${ArtifactsBucket}'
        - !Sub 'arn:${AWS::Partition}:s3:::${ArtifactsBucket}/*'
        Sid: VPCe
      Version: 2012-10-17

现在我正在尝试删除存储桶,但即使作为管理员或 root 我也无法访问存储桶以更改策略或对其执行任何操作。

我尝试在私有子网和公共子网中启动一个附加了完整管理员角色的 EC2,并运行了以下命令:

aws s3 rm s3://BUCKET_NAME/
aws s3api delete-bucket --bucket BUCKET_NAME 

但我收到以下错误

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

我还确保 VPC Endpoint 在我运行时一直在使用

sudo traceroute -n -T -p 443 s3.amazonaws.com

和输出

traceroute to s3.amazonaws.com (52.216.130.45), 30 hops max, 60 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  52.216.130.45  0.662 ms  0.848 ms  0.723 ms

我认为这意味着正在使用端点。

我已经使用会话管理器并通过 ssh 登录了 ec2 实例,但仍然没有成功。

问题:

我有什么办法可以删除这个桶吗?

【问题讨论】:

  • 可以先修改bucket策略吗?
  • 是S3网关端点的S3接口端点吗?你是如何设置它们的?他们甚至工作吗?你也试过这些steps吗?
  • 如果您是 root 用户(不是管理员用户 - 它必须是实际的 root 帐户)并对其应通过的策略进行更改。当您制定明确的拒绝策略时,基于对 s3:delete 等易于撤销的权限的拒绝进行测试会很有帮助,这样如果您的范围或其他假设不成立,您可以轻松地恢复。
  • @Marcin,谢谢你解决了这个问题。
  • 没问题。如果你不介意我会提供答案。

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


【解决方案1】:

基于 cmets,通过遵循 AWS 指导方针获得解决方案:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 2018-01-10
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2021-03-28
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多