3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SRA Advent Calendar 2022Advent Calendar 2022

Day 21

AWS 特定のユーザーグループに所属するIAMユーザしか作ることができないIAMユーザを作成する

Last updated at Posted at 2022-12-20

はじめに

20221220_qiita.drawio.png

IAMユーザを作成する権限を委譲したい。けど、IAM周りの強い権限を与えたくない。
特定のユーザーグループに所属しているIAMのみ作らせることが出来れば良い。
そういった場合、Permissions Boundaryが検討されると思いますが、IAMポリシーのみで似たようなことを実現する方法を教えてもらったので、ここに残します。

TL;DR

こちらのポリシーをIAM管理ユーザーにアタッチしましょう

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:AttachUserPolicy",
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:PolicyARN": "arn:aws:iam::aws:policy/IAMUserChangePassword"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateLoginProfile",
                "iam:GetAccountPasswordPolicy",
                "iam:List*",
                "iam:GetPolicy",
                "iam:GetAccessKeyLastUsed",
                "iam:CreateUser",
                "iam:GetGroup",
                "iam:TagUser",
                "iam:GetLoginProfile",
                "iam:GetAccountSummary"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AddUserToGroup",
                "iam:RemoveUserFromGroup"
            ],
            "Resource": "所属させることが出来るユーザーグループのARN"
        }
    ]
}

"Action": "iam:AttachUserPolicy" ブロック

ユーザー作成時に "パスワードのリセットが必要" を有効にするを選択した場合、IAMUserChangePassword のポリシーが必要となるため定義

やってみる

特定のユーザーグループ(yu-yama-testgroup)に所属させるIAMユーザのみを作成できるポリシー(yu-yama-testpolicy)をアタッチしたIAM管理ユーザ(testuser)を作成する

特定のユーザーグループ(yu-yama-testgroup)を作成する

image.png

作成できました。※ポリシーを何もアタッチしていないので警告が出ていますが気にしないでください
image.png

IAM管理ユーザ(testuser)にアタッチするポリシーを作成する

image.png

IAM管理ユーザ(testuser)を作成する

ユーザーを追加
image.png

ユーザー名を設定し、次のステップ:アクセス権限へ
image.png

既存のポリシーを直接アタッチより、先ほど作成したポリシーをアタッチする
image.png

image.png

ユーザーを作成できました
image.png

動作確認

作成したIAM管理ユーザー(testuser)でサインイン
image.png

特定のユーザーグループ(yu-yama-testgroup)に所属するIAMユーザを作成してみる
image.png

image.png

image.png

作成できましたね
image.png


続いて特定のユーザーグループ(yu-yama-testgroup)以外に所属するIAMユーザを作成しようとしてみます

許可されていないグループ(Endusers)を選択し...
image.png

image.png

エラーが発生し、グループ(Endusers)に所属するIAMユーザーを作成することはできませんでした。いいですね。
image.png


続いて適当なポリシーをアタッチしてIAMユーザを作成しようとしてみます

AdministratorAccessを選択し...
image.png

image.png

エラーが発生し、適当なポリシーをアタッチしたIAMユーザーを作成することはできませんでした。いいですね。
image.png

まとめ

IAMポリシーを使用して特定のユーザーグループに所属するIAMユーザしか作ることができないIAMユーザを作成することができました。
許可されていないポリシー、ユーザグループに所属させようとしてIAMユーザーを作った場合、IAMユーザ自体は作成されてしまうなどやや微妙なところはありますが、必要以上に強い権限を与えずIAM作成を委譲できるので、頭の片隅に置いておくと良いことがあるかもしれません。
こちらの記事が誰かの役に立てば幸いです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?