この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
S3 を使用しています。
ブロックパブリックアクセスの設定や、バケットポリシーを変更していたところ、S3 コンソールのバケット一覧にて、アクセス欄が変化していることに気付きました。
アクセス欄にはどのような種類の記述がされますか?
どう対応すればいいの?
アクセス欄と同様の記述は、バケット設定からアクセス許可タブを開き、「アクセス許可の概要」から確認が可能です。
現時点では以下の 4 種類を確認しています。
1. 非公開のバケットとオブジェクト
S3 バケット作成時に、すべてデフォルトのままにするとこの状態になります。
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが ON
- バケットポリシーにて許可設定を記載していない、または、同一アカウントA/クロスアカウントBの IAM リソースからのアクセスを許可している
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessAllowFromAccountUser",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::<AccountA>:root",
"arn:aws:iam::<AccountB>:root"
]
},
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::s3-permissions-overview/*",
"arn:aws:s3:::s3-permissions-overview"
]
}
]
}
2. このアカウントの認証ユーザーのみ
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが ON
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載している。
バケットポリシーの例
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessAllowFromAnonymous",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::s3-permissions-overview/*",
"arn:aws:s3:::s3-permissions-overview"
]
}
]
}
3. オブジェクトは公開することができます
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが OFF
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載していない。
4. 公開
- ブロックパブリックアクセスが OFF
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載している。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessAllowFromAnonymous",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::s3-permissions-overview/*",
"arn:aws:s3:::s3-permissions-overview"
]
}
]
}
公開状態のバケットは S3 の URL でオブジェクトにアクセスできてしまいます。
静的ウェブサイトホスティングを行っている場合など、意図している場合以外では、この設定にならないようご留意ください。
参考資料
チュートリアル例: Amazon S3 リソースへのアクセスの管理 - Amazon Simple Storage Service
Amazon S3 ストレージへのパブリックアクセスのブロック - Amazon Simple Storage Service