私のバケツにポリシーを設定しようとしています。オブジェクトに公開された 'GetObject'アクセスを許可します。このように:AWS S3バケットポリシー - プレフィックス内でのみGetObjectを許可する
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/publicstuff/*"
}
問題は、AWSはこれがバケット全体を公開すると警告しています。そして確かに、それはそうです。/mybucket/anywhereelse /からオブジェクトを取得しようとすると、S3はそれを自由に提供します。 「mybucket」の後のすべては無視されます。
バケット内の特定のプレフィックスに適用できるバケットポリシーを構築する方法はありますか。ポリシー条件を試しましたが、s3:GetObjectアクションを使用するときにs3:接頭辞を使用できないことがわかりました。
このポリシーを削除すると、このポリシーとは無関係の理由で、バケットは既に公開されています。お知らせ下さい。 –
こんにちは@ Michael-sqlbot、バケットはそれ以外の場合はプライベートです。このポリシーを削除すると、バケットはプライベートになります。私がそれを含めると、バケツは完全に公開されます。 –
私は複製しようとしますが、直感は何かを誤って解釈していると私には分かりますが、私には何がわかりません。確認してください、これはあなたの*全体*ポリシーですか?そして、このポリシーを削除して再追加して、このパスプレフィックスの外側にあるテストオブジェクト "x"が追加されたときに公開され、削除されるとプライベートに戻ることを再確認/検証しましたか?これはどの地域ですか? –