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

标签 amazon-s3 aws-cli

我有一个在控制台中显示“公共(public)访问”的存储桶,但是当我尝试读取 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 找出哪些存储桶已被标识为具有公共(public)访问权限:

aws s3api get-bucket-policy-status --bucket my-test-bucket-name
{
    "PolicyStatus": {
        "IsPublic": true
    }
}

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

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/

关于amazon-s3 - 如何使用 aws-cli 确定 S3 存储桶是否具有公共(public)访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53383674/

相关文章:

amazon-web-services - AWS .NET Core Lambda - 图像上传损坏

django - 使用django-storages和boto3在Django中调用CreateMultipartUpload操作时访问AccessDenied

php - 通过 PHP SDK 2 从 S3 获取对象的内容?

aws-cli - AWS CLI 返回未知选项 : awsvpcConfiguration

amazon-dynamodb - 使用 aws cli 将全局二级索引添加到 DynamoDB 中的现有表

amazon-web-services - 使用 aws cli 删除日志组的所有日志流

amazon-web-services - 错误 : Access Denied in S3 bucket after applying VPC policy

amazon-web-services - S3 : The bucket can not be accessed by its root account?

amazon-web-services - 如何在 AWS CLI 中过滤不等于

amazon-web-services - AWS 控制台和 cli 有所不同。哪个值得信赖?