【问题标题】:How do I unlock or delete an AWS S3 bucket that inadvertently locked with a bucket policy?如何解锁或删除无意中被存储桶策略锁定的 AWS S3 存储桶?
【发布时间】:2015-09-11 11:14:15
【问题描述】:

我是 AWS 账户所有者,管理员(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 存储桶策略,但我使用控制台创建了它,如果我怀疑我输入了错误的某些部分,我无法复制/粘贴它在这里给你...)

亲切的问候,杰夫。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    直接来自 AWS 支持:

    你好,

    G** 在这里与 AWS Support。我了解您的 S3 存储桶政策 存储桶“s3-bucket-name”阻止访问或删除存储桶。那里 有几种方法可以删除存储桶策略,如下所示, 然后删除存储桶本身:

    1. 使用根凭证登录 AWS S3 控制台。请注意,root 帐户与具有“管理员”的帐户不同 访问”[1]。 root 帐户应该有权修改/删除它 桶策略。不幸的是,我注意到这是一个善变的 有时仅适用的选项。或者
    2. (选项一直有效)通过 AWS cli 删除存储桶策略如下(Linux 和 Windows 选项):

    通过 Linux:$ export AWS_DEFAULT_REGION= us-east-1 $ export AWS_ACCESS_KEY_ID="ROOT_KEY_ID" $ 出口 AWS_SECRET_ACCESS_KEY="ROOT_SECRET_KEY" $ aws s3api 删除bucket-policy --bucket s3-bucket-name

    通过 Windows:设置 AWS_DEFAULT_REGION= us-east-1 设置 AWS_ACCESS_KEY_ID="ROOT_KEY_ID" 设置 AWS_SECRET_ACCESS_KEY="ROOT_SECRET_KEY" aws s3api delete-bucket-policy --bucket s3-bucket-name

    如果是这样,您能否提供以下输出 设置您的根帐户凭据:$ aws s3api delete-bucket-policy --bucket s3-bucket-name --debug

    请注意,它们都使用 root 帐户凭据。请 尝试这些方法,如果您有任何问题,请告诉我。我希望 此信息很有帮助。请随时与我联系 任何其他问题或疑虑。

    [1] 根账户与 IAM 用户 - http://docs.aws.amazon.com/es_es/general/latest/gr/root-vs-iam.html

    最好的问候,G**

    选项 2 对我有用。

    干杯!

    【讨论】:

    • lonewarrior556 选项 2 也对我有用(完全跳过选项 1) - 非常感谢!这也适用于 macOS Sierra。
    • 选项 2 对我来说是成功的,谢谢。虽然我最终不得不从 EC2 实例执行此操作,但它似乎不喜欢我从我的 VPC 外部执行此操作。完成后不要忘记删除您的根密钥/密码!
    【解决方案2】:

    由于您是 root 用户,我认为这种方法可能会有所帮助:

    第 1 步:创建 IAM 用户。

    Step2:创建具有删除存储桶权限的策略,并将其与步骤 1 中创建的 IAM 用户关联。

    第 3 步:将用户关联到您的 s3 存储桶。

    使用创建的用户凭据登录并尝试删除存储桶。

    【讨论】:

      【解决方案3】:

      如果您以 root 用户身份登录,请转到 S3 管理控制台并找到存储桶。

      选择列表中的存储桶而不打开它。

      点击“操作”,然后点击“属性”。

      删除“权限”部分中的存储桶策略。

      然后使用“操作”菜单删除存储桶。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 2021-01-19
        • 1970-01-01
        • 1970-01-01
        • 2019-04-24
        相关资源
        最近更新 更多