S3バケット一覧のアクセス欄に表示される項目の詳細を教えてください。

アクセス欄と同様の記述は、バケット設定からアクセス許可タブを開き、「アクセス許可の概要」から確認が可能です。現時点では、「非公開のバケットとオブジェクト」「このアカウントの認証ユーザーのみ」「オブジェクトは公開することができます」「公開」の4つの状態があることを確認しています。
2022.09.24

この記事は公開されてから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