参考ページ
自分の学習用兼備忘録として作成しているので、内容はほぼ下記サイトのまとめです。
https://blog.serverworks.co.jp/iam-policy-json
ポリシーの概要
{
"Version": "なんか日付(ここは編集する部分ではない)",
"Statement": [
"Sid": " ",
"Effect": " ",
"Action": " ",
"Resource": " ",
"Condition": {
"StringEquals": {
"aws:PrincipalArn": "arn:aws:iam::123456789123:user/fk-iam-user"
}
}
]
}
固定の記述
{
"Version": "なんか日付(ここは編集する部分ではない)"
"Statement": [
"ここに色々書いてある。"
]
}
- Versionの部分は固定部分の為ポリシー編集しても書き直したりしなくていい。
- Statementの部分に読むべき設定が書いてある。
Sid
"Sid": "このIAMポリシーの説明",
- 任意の入力項目。
- 必須の設定項目ではないが、あった方が親切そう(小並感)。
- このポリシーの説明を記載するのが一般的。
Effect
"Effect": "Allow or Deny"
- Effectは、この後に記述するAction項目の内容を許可するのか、拒否するのかを設定する。
Action
"Action": "[サービス名]:[サービス毎に設定可能なアクション]"
- Actionの設定を行う。
-
[サービス名]:[サービス毎に設定可能なアクション] で記述する。
-サービス毎に設定可能なアクションはサービス毎に違うので、「サービス名 アクション」でサービスリファレンスをググる。
Resource
"Resource": "[サービス毎に設定可能なリソース]"
- これも公式リファレンスググって取ってこれる。
Condition
"Condition": {
"StringEquals": {
"aws:PrincipalArn": "arn:aws:iam::123456789123:user/fk-iam-user"
}
}
- Conditionは、条件を絞りたい場合に設定する。
- 任意の設定項目の為、必要なければ設定しなくてもいい。
- 上記の場合、「123456789123というAWSアカウントのfk-iam-user(IAMユーザー)のみがEC2のフルアクセス権限を持つ」という意味になる。
- 設定できる値は複数ある為、下記の公式ドキュメントから拾ってくる。
IAM JSONポリシーの要素:Condition