我是AWS账户所有者admin(IAM和root密码 - 不推荐我知道,但有一些依赖root pw的遗留应用程序)。我最近添加了一个存储桶策略,该策略随后使存储桶锁定为我无法访问:
$ aws s3 rb s3://<my-bucket> --force
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
Completed 1 part(s) with ... file(s) remaining
remove_bucket failed: s3://<my-bucket>/ A client error (AccessDenied) occurred when calling the DeleteBucket operation: Access Denied
我已经尝试过CLI和AWS S3控制台,但只收到错误:Sorry! You do not have permissions to view this bucket.
这个桶完全是空的,这是一个小小的解脱,但是我需要使用这个特殊名称而且因为我无法用它做任何事情而陷入困境。
我希望我不是唯一经历过这种困境的人。
(PS - 我发布了我使用的EXACT存储桶策略,但是我使用控制台创建了它,如果我错误地输入了部分内容,我怀疑,我无法复制/粘贴它在这里为你...)
亲切的问候,杰夫。
答案 0 :(得分:4)
直接来自AWS支持:
您好,
G **此处提供AWS支持。我了解你的S3的存储桶策略 bucket's3-bucket-name'阻止访问或删除存储桶。那里 有两种方法可以删除存储桶策略,如下所示 然后删除桶本身:
- 使用root凭据登录AWS S3控制台。请注意,root帐户与具有“管理员”的帐户不同 访问'[1]。 root帐户应该有权修改/删除它 桶政策。不幸的是,我注意到这是善变的 有时只能起作用的选项。或者
- (选项始终有效)通过AWS cli删除存储桶策略,如下所示(Linux和Windows选项):
醇>通过Linux:$ export AWS_DEFAULT_REGION = us-east-1 $ export AWS_ACCESS_KEY_ID =“ROOT_KEY_ID”$ export AWS_SECRET_ACCESS_KEY =“ROOT_SECRET_KEY”$ aws s3api delete-bucket-policy --bucket s3-bucket-name
通过Windows:设置AWS_DEFAULT_REGION = us-east-1 set AWS_ACCESS_KEY_ID =“ROOT_KEY_ID”设置 AWS_SECRET_ACCESS_KEY =“ROOT_SECRET_KEY”aws s3api delete-bucket-policy --bucket s3-bucket-name
如果是这样,请你提供以下后面的输出 设置您的root帐户凭据:$ aws s3api delete-bucket-policy --bucket s3-bucket-name --debug
请注意,这些都使用root帐户凭据。请 尝试这些方法,如果您有任何问题,请告诉我。我希望 这些信息很有帮助。请随时与我联系 任何其他问题或疑虑。
[1] Root帐户与IAM用户 - http://docs.aws.amazon.com/es_es/general/latest/gr/root-vs-iam.html
最好的问候,G **
选项2对我有用。
干杯!
答案 1 :(得分:0)
由于您是root用户,我认为这种方法可能有所帮助:
步骤1:创建IAM用户。
步骤2:创建具有删除存储桶权限的策略,并将其与步骤1中创建的IAM用户关联。
步骤3:将用户与您的s3存储桶相关联。
使用创建的用户凭据登录并尝试删除存储桶。
答案 2 :(得分:-1)
如果您以root用户身份登录,请转到S3管理控制台并找到存储桶。
在列表中选择存储桶而不打开它。
点击“操作”,然后点击“属性”。
删除“权限”部分中的存储分区策略。
然后使用“操作”菜单删除存储桶。