Help us understand the problem. What is going on with this article?

特定のS3 バケットだけにアクセスするポリシーを30秒で書く

色々調べたのだけど、とにかくパターンが多すぎて怖い

ので、一番簡素で強力と思えたパターンだけ書きます。
(違ってたらぜひご指摘ください!)

hogehoge.comを置き換えてご利用下さい。
(ここではcloudfrontでスタティックページを配信してるユースケースを想定しています)

s3-singlebucket-policy.json
# テンプレ
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::hogehoge.com",
                "arn:aws:s3:::hogehoge.com/*"
            ]
        },
        {
            "Effect": "Deny",
            "NotAction": "s3:*",
            "NotResource": [
                "arn:aws:s3:::hogehoge.com",
                "arn:aws:s3:::hogehoge.com/*"
            ]
        }
    ]
}

使うのは「iamユーザー」

いろんな設定の仕方があるかと思いますが、僕は上記ポリシーを作成後、
そのポリシーを適用したユーザーをバケットごとに作成しています。
(プラグマティックアクセスを有効に・ManagementコンソールはOFF)

Cyderduck や Transmit で使う時

「指定バケットをデフォルトパス」に指定しないとエラーになります。(デフォルトはバケット全体をListしようとするため)
CyberDuckだと「QuickConnect」にそのオプションが無いのだけ軽くハマりました。
普通に「新規作成」から詳細設定を指定してあげればOK!

Transmit:
screeenshot 2020-01-20 at 13.09.54.png

CyberDuck:
screeenshot 2020-01-20 at 13.08.56.png

より詳しくは

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_deny-except-bucket.html

セキュリティ的なベストプラクティスなのか?

これで僕が求めていた事は実現(作業者ごとに個別のバケットアクセスを管理 - 管理者のみ複数バケットにアクセス可)出来ているのですが、
AWS勉強中の身ですのでこれで完全かはわかりません。
具体的には「ポリシー・Deny」を上回る権限設定が出来るか、これから調べたいと思います。

「S3全員見えちゃう運用」からのステップアップとしては上記でも充分有効、程度にお読み頂ければ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした