删除具有拒绝所有策略和 VPC 条件的 S3 存储桶
Delete S3 Bucket With Deny All Policy And VPC Condition
我正在探索 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
现在我正在尝试删除存储桶,但即使作为管理员或根用户,我也无法访问存储桶来更改策略或对其执行任何操作。
我试图在私有和 public 子网中启动 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 实例,但仍然没有成功。
问题:
有什么方法可以删除这个桶吗?
根据评论,按照 AWS 指南获得了解决方案:
我正在探索 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
现在我正在尝试删除存储桶,但即使作为管理员或根用户,我也无法访问存储桶来更改策略或对其执行任何操作。
我试图在私有和 public 子网中启动 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 实例,但仍然没有成功。
问题:
有什么方法可以删除这个桶吗?
根据评论,按照 AWS 指南获得了解决方案: