【はじめに】
IAMを作成するときに、IAMグループを作成して所属させることで同じ権限を複数ユーザに付与することができるということを以前の記事で紹介しました。
しかし、複数のIAMユーザに同じ権限を付与する際に一つだけ気になることがあります。
それは、複数のIAMユーザを作成する手間です。
今回はAWS CLIを利用して同じ権限を持つIAMユーザを一度に複数作成する方法を解説していきます。
本記事の内容
- AWS CLIを利用するメリットとは?
- AWS CLIを実行する環境はどこ?
- 実際に複数のIAMユーザをまとめて作成してみる
- 作成したユーザを削除する(リソースの削除)
【AWS CLIを利用するメリットとは?】
AWS CLIを利用するメリットは、大きくは2つあります。
ひとつ目は、何度も繰り返す操作をスクリプトとしてまとめて自動化することで業務を効率化し、また手作業による人的ミスを減らすことができることです。
そしてもう一つは、AWSサービスを統合・連携し、業務フローを柔軟に構築できることです。
【AWS CLIを実行する環境はどこ?】
一番簡単にAWS CLIを実行できる環境は、AWSサービスである「CloudShell」です。
管理コンソールの検索バーで「CloudShell」と入力して選択してクリックすると、ブラウザ上にターミナルが起動します。
今回はCloudShellを利用して、IAMユーザを作成していきます。
【実際に複数のIAMユーザをまとめて作成してみる】
今回は、「10人分のIAMユーザをパワーユーザ権限を持つ開発グループ(Dev)に追加する」というケースで実際にAWS CLIを使用して作成していきます。
いきなりですが、すべてのコマンドは以下の通りです。
$ for((i=0;i<10;i++)); do
> aws iam create-user --user-name "DevUser$i"
> done
$ aws iam create-group --group-name Dev
$ aws iam attach-group-policy --group-name Dev --policy-arn arn:aws:iam::aws:policy/PowerUserAccess
$ for((i=0;i<10;i++)); do
> aws iam add-user-to-group --user-name "DevUser$i" --group-name Dev
> done
各コマンドを手順に沿って解説していきます。
手順1:10人分の権限なしのユーザを作成する | create-user
IAMユーザを作成するには、iam create-user
コマンドを使用します。
- --user-name:ユーザ名を指定
$ for((i=0;i<10;i++)); do
> aws iam create-user --user-name "DevUser$i"
> done
出力結果
{
"User": {
"Path": "/",
"UserName": "DevUser0",
"UserId": "*********************",
"Arn": "arn:aws:iam::************:user/DevUser0",
"CreateDate": "2022-07-17T13:52:02+00:00"
}
}
ポイント
- 複数のユーザを作成する場合は、Linuxの
for
コマンドを使用して回数を指定して繰り返し処理を行います。
for((i=0;i<10;i++)); do;
>コマンド(iが0から9まで10回処理を繰り返す)
>done
IAMのダッシュボードで確認してみます。
コマンド実行前
コマンド実行後
今回のコマンドでは各ユーザにコンソールへのログインパスワードを設定していないため、各ユーザが個別にパスワードを設定する必要があります。
手順2:開発グループ(Dev)を作成する | create-group
IAMグループを作成するには、iam create-group
コマンドを使用します。
- --group-name:グループ名を指定
$ aws iam create-group --group-name Dev
出力結果
{
"Group": {
"Path": "/",
"GroupName": "Dev",
"GroupId": "*********************",
"Arn": "arn:aws:iam::************:group/Dev",
"CreateDate": "2022-07-17T13:55:41+00:00"
}
}
IAMのダッシュボードで確認してみます。
コマンド実行前
コマンド実行後
グループの作成を実行しただけなので「許可」が未定義となっており、アクセス権限の付与がされていないことがわかります。
また、ユーザの追加もまだしていないため、「ユーザー」の数も0となっています。
手順3:開発グループ(Dev)にパワーユーザ権限(PowerUserAccess)を付与する | attach-group-policy
IAMグループにアクセス権限を付与するには、iam attach-group-policy
コマンドを使用します。
- --group-name:グループ名を指定
- --policy-arn:付与するポリシーのARN(リソース名)を指定
ポリシーARNはIAMのダッシュボードの画面左の「アクセス管理」→「ポリシー」を選択し、対象のポリシーの詳細から確認することができます。
$ aws iam attach-group-policy --group-name Dev --policy-arn arn:aws:iam::aws:policy/PowerUserAccess
IAMのダッシュボードで確認してみます。
「許可」が定義済みに変更されています。
詳細を確認すると「PowerUserAccess」が許可されています。
手順4:作成したユーザを開発グループ(Dev)というユーザグループに追加する | add-user-to-group
IAMユーザをグループに追加するには、iam add-user-to-group
コマンドを使用します。
- --user-name:ユーザ名を指定
- --group-name:グループ名を指定
$ for((i=0;i<10;i++)); do
> aws iam add-user-to-group --user-name "DevUser$i" --group-name Dev
> done
IAMのダッシュボードで確認してみます。
「ユーザー」の数が10となっていて、作成したユーザがグループに追加されています。
作成したユーザを削除する(リソースの削除)
最後に、作成したユーザとグループを削除します。
ユーザを削除するには、まずはじめに所属しているグループから外します。
グループからユーザを外すには、iam remove-user-from-group
コマンドを使用します。
- --group-name:グループ名を指定
- --user-name:ユーザ名を指定
$ for((i=0;i<10;i++)); do
> aws iam remove-user-from-group --group-name Dev --user-name "DevUser$i"
> done
ユーザを削除するには、iam delete-user
コマンドを使用します。
- --user-name:ユーザ名を指定
$ for((i=0;i<10;i++)); do
> aws iam delete-user --user-name "DevUser$i"
> done
グループを削除するには、 アタッチされているポリシーを外します。
グループからポリシーを外すには、detach-group-policy
コマンドを使用します。
- --group-name:グループ名を指定
- --policy-arn:ポリシーのARN(リソース名)を指定
$ aws iam detach-group-policy --group-name Dev --policy-arn arn:aws:iam::aws:policy/PowerUserAccess
グループを削除するには、iam delete-group
コマンドを使用します。
- --group-name:グループ名を指定
$ aws iam delete-group --group-name Dev
これで作成したユーザとグループを削除することができました。
【さいごに】
今回はAWS CLIを利用して同じ権限を持つIAMユーザを一度に複数作成する方法を解説しました。
最初はコンソール画面の方が操作しやすいですが、今後インフラ環境を構築していきたいと思っているのであればAWS CLIが使えることが必須になってくるでしょう。
無料枠が使用できる期間で、できる限りAWS CLIの操作をしてみるのが是非おすすめです。