1. ホーム
  2. amazon-s3

[解決済み] Amazon S3 パーミッションの問題 - すべてのファイルのパーミッションを一度に設定する方法は?

2023-06-20 08:08:31

質問

Amazon AWSのマネジメントコンソールを使って、ファイルをアップロードしています。

アップロードしたファイルに HTTP 403 Access denied のエラーが出ました。パーミッションを view .

バケツにある全てのファイルに対して、どのようにすればいいのでしょうか?

ファイルごとに権限を設定することが可能なのは知っていますが、誰でも閲覧できるようにする必要があるファイルが多数ある場合、手間がかかってしまいます。

どうすれば解決できますか?

バケットポリシーを適用することをお勧めします 1 をバケットに適用することをお勧めします。こうすることで、すべてのオブジェクトに ACL を設定する必要がなくなります。以下は、Bucket 内のすべてのファイルを にするポリシーの例です。 mybucket にあるすべてのファイルを公開するポリシーの例です。

{
    "Version": "2008-10-17",
    "Id": "http better policy",
    "Statement": [
        {
            "Sid": "readonly policy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
        }
    ]
}

それは *"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" は再帰を許可します。


1 バケットポリシーは、IAMポリシーとは異なることに注意してください。(ひとつは、バケットポリシーに Principal を IAM ポリシーに含めようとするとエラーが発生します)。Bucket Policyは、AWSのWebコンソールでバケットのルートに移動し、Properties > Permissionsを展開することで編集可能です。バケットのサブディレクトリにもProperties >Permissionsがありますが、その中には バケットポリシーの編集