S3読み取り専用アクセスのIAMポリシー

特定のS3バケットへの読み取り専用アクセスを付与するIAMポリシーを作成します。GetObject、ListBucket、GetBucketLocationの権限を含みます。

Storage

詳細な説明

S3読み取り専用アクセスポリシー

最もよく必要とされるIAMポリシーの1つは、S3バケットへの読み取り専用アクセスの付与です。このポリシーにより、プリンシパル(ユーザー、ロール、サービス)はバケット内のオブジェクトをリストし、コンテンツをダウンロードできますが、アップロード、変更、削除はできません。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowS3ReadOnly",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}

重要なポイント

  • 2つのリソースARNが必要です:ListBucket用のバケット自体(arn:aws:s3:::my-bucket)と、バケット内のオブジェクトへのGetObject操作用のワイルドカードサフィックス付き(arn:aws:s3:::my-bucket/*)。
  • GetBucketLocationは多くのAWS SDKやツールがリクエスト前にバケットのリージョンを判断するために必要です。
  • GetObjectVersionはオプションで、バケットでバージョニングが有効で以前のバージョンを読む必要がある場合のみ含めます。

最小権限の原則

読み取り専用アクセスにはs3:*Resource: "*"の使用を避けてください。特定のバケットと特定のアクションにスコープすることで、アカウント内の他のバケットの偶発的な露出を防ぎます。

ユースケース

S3に保存された設定ファイル、静的アセット、データエクスポートへの読み取り専用アクセスをWebアプリケーションやCI/CDパイプラインに付与する。読み取りレプリカ、分析データ消費者、バックアップ検証ツールで一般的です。

試してみる — AWS IAM Policy Generator

フルツールを開く