cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平@inokara)です。

はじめに

S3 を Proxy 経由でアクセスするにあたってクライアント、Proxy とバケットに対してそれぞれ異なる IAM ロールが適用されている場合にどんなふうな動きをするのか確認しました。


your_bucket に対する IAM ロール

以下のようなロールを設定したクライアント又は Proxy サーバーを起動して確認してみました。

バケットとオブジェクトへの操作を全て許可(ポリシーパターン A)

{
  "Statement": [
    //オブジェクトに対するポリシー
    {
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::your-bucket/*"
      ]
    },
    //バケットに対するポリシー
    {
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::your-bucket"
      ]
    }
  ]
}

バケットに対する操作のみ許可(ポリシーパターン B)

{
  "Statement": [
  //バケットに対するポリシー
    {
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::your-bucket"
      ]
    }
  ]
}

テスト

方法

各ポリシーパターンが適用されたクライアントから同じく各ポリシーパターンが適用された Proxy に対して aws cli にて ls または cp を実行して結果を確認しました。

テスト環境のイメージ

手書きですんません。

01

テスト環境の構築

前回記載した記事をご参照下さい。


結果

で、どうなの?

  • Proxy を経由する場合には Proxy に割り当てられたロールが適用されるようです

結果を整理すると…

以下のような感じになりました。

02

上図のパターン A = ポリシーパターン A で パターン B = ポリシーパターン B となります。


最後に

  • 以上、ご参考まで

元記事は、こちら