amazon-s3 - 如何使用 aws-cli 确定 S3 存储桶是否具有公共访问权限
问题描述
我有一个在控制台中显示“公共访问”的存储桶,但是当我尝试读取 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...
我正在运行 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
解决方案
您可以使用aws s3api get-bucket-policy-status
来找出哪些存储桶已被识别为具有公共访问权限:
aws s3api get-bucket-policy-status --bucket my-test-bucket-name
{
"PolicyStatus": {
"IsPublic": true
}
}
该get-public-access-block
功能与上周发布的新功能 [1] 相关,这些新功能有助于保护未来的存储桶不会被错误地创建为公共访问权限。
两者都get-public-access-block
需要get-bucket-policy-status
比 1.15.83 更新的 awscli 版本。我使用的具有这两个命令的版本是 1.16.58。