問題

S3のバケットポリシーで GetObject を定義した際、『Action does not apply to any resource(s) in statement』というエラーが表示されて失敗する。
【エラー画面】

【バケットポリシー 修正前】

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicRead",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::【バケット名】"
        }
    ]
}

解決方法

Resource部分のバケットの指定方法が間違っていました。
バケット配下のオブジェクトに対応するように部分修正をします
"Resource": "arn:aws:s3:::{mybucket}/*"

【バケットポリシー 修正後】

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicRead",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::【バケット名】/*"
        }
    ]
}

さいごに

根本的な問題は書き慣れていないことですが、こういったことを踏まえながら手を動かしていきたいと思います。

お問い合わせ

協栄情報はソフトウェア開発で培った技術力を活かした、クラウドソリューションによる問題可決や多くの分野におけるソフトウェア開発を中心に、お客様のビジネスを最大限に効率化する仕組みを提供いたします。

お問合せは下記URLから、お気軽に連絡ください。
https://www.cp-info.co.jp/contact/

Last modified: 2022-07-10

Author