如何使用 aws-cli 确定 S3 存储桶是否具有公共访问权限

AG6*_*6HQ 7 amazon-s3 aws-cli

我有一个在控制台中显示“公共访问”的存储桶,但是当我尝试读取 aws s3api get-public-access-block 时,出现错误:

$ aws s3api get-public-access-block --bucket my-test-bucket-name
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument operation: Invalid choice, valid choices are:

abort-multipart-upload                   | complete-multipart-upload               
copy-object                              | create-bucket...               
Run Code Online (Sandbox Code Playgroud)

我正在运行 aws-cli 1.15.83:

$ aws --version
aws-cli/1.15.83 Python/2.7.14 Linux/4.14.77-70.59.amzn1.x86_64 botocore/1.10.82
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用aws s3api get-bucket-policy-status来找出哪些存储桶已被标识为具有公共访问权限:

aws s3api get-bucket-policy-status --bucket my-test-bucket-name
{
    "PolicyStatus": {
        "IsPublic": true
    }
}
Run Code Online (Sandbox Code Playgroud)

get-public-access-block功能与上周发布的新功能相关[1],有助于防止未来的存储桶被错误地创建为公共访问。

get-public-access-blockget-bucket-policy-status需要比 1.15.83 更新的 awscli 版本。我使用的包含这两个命令的版本是 1.16.58。

[1] https://aws.amazon.com/blogs/aws/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/