この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは。大阪オフィスの林です。
タイトルの通りなのですが本エントリは、AWS環境で各種リソースやサービスに対する管理者権限を与えつつも、IAMユーザーの作成や変更に関する操作を禁じたいというピンポイントのユースケースにお答えする内容となっています。
デフォルトのポリシーでIAMReadOnlyAccess
もありますが、ロールやポリシーの操作にも制限が掛かってしまうので、IAMユーザーの作成、変更に対する操作だけを禁止したいというユースケースに本エントリを参考にして頂ければと思います。
やってみた
ポリシー作成
IAMのダッシュボード左メニューから「ポリシー」-「ポリシーの作成」を選択します。
「JSON」タブから下記のJOSNをコピペして次のステップに進みます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"iam:AddUserToGroup",
"iam:RemoveUserFromGroup",
"iam:UpdateUser",
"iam:PutUserPermissionsBoundary",
"iam:PutUserPolicy",
"iam:DeleteUserPolicy",
"iam:AttachUserPolicy",
"iam:DeleteUser",
"iam:DeleteUserPermissionsBoundary",
"iam:DetachUserPolicy",
"iam:CreateUser"
],
"Resource": "*"
}
]
}
作成したポリシーを割り当てたユーザーやロールから、ポリシー自体を変更されてしまうと元も子もないので、作成したポリシーの改変も抑止しておきます。作成したポリシーを選択しARNを控えておきます。その後「ポリシーの編集」を選択します。
下記のセクションを追加して「ポリシーの確認」を選択します。※「Resource」の中盤12桁の数字はAWSアカウントIDで、末尾はポリシー名です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"iam:AddUserToGroup",
"iam:RemoveUserFromGroup",
"iam:UpdateUser",
"iam:PutUserPermissionsBoundary",
"iam:PutUserPolicy",
"iam:DeleteUserPolicy",
"iam:AttachUserPolicy",
"iam:DeleteUser",
"iam:DeleteUserPermissionsBoundary",
"iam:DetachUserPolicy",
"iam:CreateUser"
],
"Resource": "*"
}, //下記セクション追加時にカンマも忘れずに。
{
"Effect": "Deny",
"Action": [
"iam:CreatePolicyVersion"
],
"Resource": "arn:aws:iam::123456789012:policy/not-iam-user-operation"
//「123456789012」はAWSアカウントID12桁です。
//「not-iam-user-operation」はポリシー名です。
}
]
}
動作確認
上記で作成したIAMポリシーをIAMユーザーもしくはIAMロールに割り当てて動作を確認していきます。
IAMユーザーを作成してみる
上記で作成したIAMポリシーを割り当てたユーザー/ロールで、IAMユーザーを作成してみます。
IAMユーザーを削除してみる
本エントリ冒頭で作成したIAMポリシーを割り当てたユーザー/ロールで、IAMユーザーを削除してみます。
ポリシーを追加してみる
本エントリ冒頭で作成したIAMポリシーを割り当てたユーザー/ロールで、IAMユーザーにポリシーをアタッチしてみます。
権限がないため、IAMユーザーへのポリシー追加が出来ませんでした。
ポリシーを変更してみる
本エントリ冒頭で作成したIAMポリシーを割り当てたユーザー/ロールで、割り当てられているポリシー自体の変更をしてみます。
権限がないため、ポリシーの改変が出来ませんでした。なお、割り当てられているポリシーに対して変更を抑止しているので、他のポリシーを新規に作成したり、新規で作成したポリシーを変更することは可能です。
ポリシーを削除してみる
本エントリ冒頭で作成したIAMポリシーを割り当てたユーザー/ロールで、IAMユーザーに割り当てられているポリシーを削除してみます。
権限がないため、IAMユーザーからポリシーの削除が出来ませんでした。
まとめ
小ネタのようなピンポイントなエントリとなりましたが、要件にフィットする方の参考になりましたら幸いです!
以上、大阪オフィスの林がお送りしました!