NANIGE BLOG
2023.11.12
2024.07.28

完全ガイド:AWS S3バケットポリシーでセキュリティを強化

Amazon S3は、オブジェクトストレージサービスとして幅広く利用されていますが、そのセキュリティは利用者の責任に大きくかかっています。

特に、データにアクセスできるユーザーやサービスを正確に管理することが重要です。

ここでS3バケットポリシーの出番です。

このポリシーを利用することで、バケットに対する細かいアクセスコントロールを実施できます。

今回はそんなバケットポリシーについて解説していきます。

S3バケットポリシーとは?

S3バケットポリシーは、JSON形式で書かれたアクセスポリシードキュメントです。これにより、次のような制御が可能になります:

  • 特定のユーザーに対するアクセス権限の付与または拒否
  • 特定のアクション(例:s3:GetObject、s3:PutObject)に対するアクセスコントロール
  • バケットへのアクセスをIPアドレスに基づいて制限
  • アクセス許可の有効期間の指定

バケットポリシーの例

以下に、特定のIAMユーザーからのみバケットへの読み取りアクセスを許可するポリシーの例を示します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/YourIAMUserName"
      },
      "Action": "s3:GetObject",
      "Resource": [
        "arn:aws:s3:::example-bucket",
        "arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}

このポリシーの解説は以下の通りです:

  • "Effect": "Allow": このポリシーが許可されるアクションを表します。
  • "Principal": { "AWS": "arn:aws:iam::123456789012:user/YourIAMUserName" }: このポリシーが適用されるIAMユーザーを指定します。123456789012はAWSアカウントIDで、YourIAMUserNameはIAMユーザー名に置き換えてください。
  • "Action": ["s3:GetObject", "s3:ListBucket"]: 許可されるアクションを指定します。s3:GetObjectはバケット内のオブジェクトの読み取りを、s3:ListBucketはバケット内のオブジェクトのリストアップを許可します。
  • "Resource": ["arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/*"]: このポリシーが適用されるリソース(バケットとバケット内のオブジェクト)を指定します。

バケットポリシーの設定方法

バケットポリシーは、AWS Management Consoleから直接、またはAWS CLIを使用して設定できます。AWS CLIでポリシーを設定するには、次のコマンドを実行します。

aws s3api put-bucket-policy --bucket example-bucket --policy file://policy.json

ここで、policy.jsonは上記のポリシーを含むファイルの名前です。

まとめ

AWS S3バケットポリシーは、セキュリティを強化し、データの不正アクセスを防ぐための強力なツールです。正しいポリシーを設定することで、ビジネスのデータを安全に保ちつつ、必要なユーザーにのみアクセスを許可することができます。

ABOUT ME
たけし
元教育業界で講師を務め

未経験で転職を成功。

現在はWEBを中心に

SEとして活躍中

djangoやlaravelを主に扱う

保有資格:

・ AWS SAA(ソリューションアーキテクトアソシエイト)

・統計検定2級

・日商簿記2級
【解決方法】User Profile Serviceサービスによるサインインの処理に失敗しました。ユーザープロファイルを読み込めません
わかりやすく解説!ALBでEC2にアクセスする方法
意外に難しい…?クアラルンプール国際空港から市内への移動
ABOUT ME
たけし
元教育業界で講師を務め

未経験で転職を成功。

現在はWEBを中心に

SEとして活躍中

djangoやlaravelを主に扱う

保有資格:

・ AWS SAA(ソリューションアーキテクトアソシエイト)

・統計検定2級

・日商簿記2級