toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

各種ポリシーの書き方

AWSのポリシはS3やIAMといったサービスのセキュリティ面に関して欠かせません。

記載方法がJSONで初めて書くときはかなり困惑するのかと思います。

JSON Editor Onlineのようなエディタをを使うと分かりやすいのですが、実際に書いてみると
()や[]の数が合っていなかったり、スペルミスったりとかで、エラーではじかれてせっかくの
時間が無駄に終わるなんて事もあると思います。

そこでAWS Policy Generatorで簡単に、そしてすばやく記載してしまいましょう。

書き方は簡単。
Step 1: Select Policy Typeでどのサービスのポリシを書くのかを指定し、Step 2: Add Statement(s)で動作条件を書くだけ。

例として「S3バケット(toto1212testbk)にはtoto_1212ユーザしかアクセスが許されず、且つS3アップロード時は暗号化を必須とする」を書く場合は以下の通り。

{
  "Id": "Policy1413814452383",
  "Statement": [
    {
      "Sid": "Stmt1413814421077",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::toto1212testbk/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      },
      "Principal": {
        "AWS": [
          "*"
        ]
      }
    },
    {
      "Sid": "Stmt1413814447632",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::toto1212testbk/*",
      "NotPrincipal": {
        "AWS": [
          "arn:aws:iam::xxxxxxxxxxxx:user/toto_1212"
        ]
      }
    }
  ]
}