AWS S3で特定のバケットのみアクセス許可するようなポリシーの作成

[最終更新] 2018年6月17日

AWS(Amazon Web Services)のS3で、任意のユーザーが特定のバケットにのみアクセスできるようなポリシーを作成する。

スポンサーリンク

ポリシー

bucketという名前のバケットがあるとして、以下のような権限のポリシーを作成する。

  1. バケットの中身(bucket/*)に対しては全権限
  2. バケット(bucket)に対しては、「バケット一覧の取得」と「バケットの場所の取得」
  3. S3全体(*)に対しては、「バケット一覧の取得」

2,3は何かのツールでアクセスする時に必要なことがあるから。

具体的には、以下のように書く。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

statementの上から1,2,3に対応する。

ポリシーを作成したら、IAMでユーザーないしグループにアタッチする。

参考

Amazon S3: 特定の S3 バケットへの読み取りと書き込みアクセスを許可する – AWS Identity and Access Management」の記事と、以下の書籍を参考にさせていただきました。

「Amazon Web Services完全ソリューションガイド」

2016年末の本で、既にUIが若干変わっていますが、理解すればできるので、初学者には良い本だと思います。

関連コンテンツ

関連記事

スポンサーリンク

カテゴリーaws

コメントを残す

メールアドレスが公開されることはありません。