ruby-on-rails 为什么S3存储桶的ARN无效?

bzzcjhmw  于 2023-11-20  发布在  Ruby
关注(0)|答案(1)|浏览(130)

对不起,如果一个基本的问题,但非常新的AWS:本质上我是按照教程和创建权限的S3桶的Ruby on Rails应用程序。
我创建的第一个ARN很好,没有问题:
第一个月
然而,教程接着说创建另一个ARN,以便使用 * 访问所有文件,如下所示:
arn:aws:s3:::learning-path-blog-jon/*
然而,当我尝试这样做时,我得到“输入的ARN无效”消息?
我试图解决这个问题,但到目前为止没有运气-正如我所说的全新的AWS。
对于完整的上下文,我的策略编辑器的JSON视图看起来像这样:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::learning-path-blog-jon"
        }
    ]
}

字符串
有没有人能告诉我如何才能改变arn:aws:s3:::learning-path-blog-jon/*是有效的,否则添加等效的JSON?

ycggw6v2

ycggw6v21#

某些API调用(如ListBucket)操作于bucket,因此需要权限

arn:aws:s3:::learning-path-blog-jon

字符串
某些API调用(例如GetObject)对对象进行操作,因此需要以下权限:

arn:aws:s3:::learning-path-blog-jon/*


这些甚至可以被限制在某些路径上,例如:

arn:aws:s3:::learning-path-blog-jon/public/*


这赠款路径以public/开头的任何对象的权限。
因此,您可以提供两种不同的声明:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::learning-path-blog-jon"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::learning-path-blog-jon/*"
        }
    ]
}


但通常更容易将它们合并组合成一个语句:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::learning-path-blog-jon",
                "arn:aws:s3:::learning-path-blog-jon/*"
            ]
        }
    ]
}

相关问题