【詳しく解説】AWS CLIで同じ権限を持つIAMユーザを複数作成する

AWS

【はじめに】

IAMを作成するときに、IAMグループを作成して所属させることで同じ権限を複数ユーザに付与することができるということを以前の記事で紹介しました。

【AWS】IAMユーザの作成手順を分かりやすく解説【初学者向け】
AWSの学習をしているが、「IAM」って何?。AWS無料枠でIAMを操作してみたい。今回はAWS初学者の方に向けて、IAMユーザの作成手順を分かりやすく解説していきます。

しかし、複数のIAMユーザに同じ権限を付与する際に一つだけ気になることがあります。

それは、複数のIAMユーザを作成する手間です。

今回はAWS CLIを利用して同じ権限を持つIAMユーザを一度に複数作成する方法を解説していきます。

本記事の内容

  • AWS CLIを利用するメリットとは?
  • AWS CLIを実行する環境はどこ?
  • 実際に複数のIAMユーザをまとめて作成してみる
  • 作成したユーザを削除する(リソースの削除)

【AWS CLIを利用するメリットとは?】

AWS CLIを利用するメリットは、大きくは2つあります。

ひとつ目は、何度も繰り返す操作をスクリプトとしてまとめて自動化することで業務を効率化し、また手作業による人的ミスを減らすことができることです。

そしてもう一つは、AWSサービスを統合・連携し、業務フローを柔軟に構築できることです。

【AWS CLIを実行する環境はどこ?】

一番簡単にAWS CLIを実行できる環境は、AWSサービスである「CloudShell」です。

管理コンソールの検索バーで「CloudShell」と入力して選択してクリックすると、ブラウザ上にターミナルが起動します。

Image from Gyazo

Image from Gyazo

今回はCloudShellを利用して、IAMユーザを作成していきます。

とは AWS CloudShell - AWS CloudShell
の概要を説明します AWS CloudShell。

【実際に複数の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

forコマンドについては以下のサイトを参考にするといいと思います。

【 for 】コマンド(応用編その3)――回数を指定して繰り返し処理を行う
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、同じ処理を繰り返し実行する「for」コマンドです。

IAMのダッシュボードで確認してみます。

コマンド実行前

Image from Gyazo

コマンド実行後

Image from Gyazo

Image from Gyazo

今回のコマンドでは各ユーザにコンソールへのログインパスワードを設定していないため、各ユーザが個別にパスワードを設定する必要があります。

手順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のダッシュボードで確認してみます。

コマンド実行前

Image from Gyazo

コマンド実行後

Image from Gyazo

グループの作成を実行しただけなので「許可」が未定義となっており、アクセス権限の付与がされていないことがわかります。
また、ユーザの追加もまだしていないため、「ユーザー」の数も0となっています。

手順3:開発グループ(Dev)にパワーユーザ権限(PowerUserAccess)を付与する | attach-group-policy

IAMグループにアクセス権限を付与するには、iam attach-group-policyコマンドを使用します。

  • –group-name:グループ名を指定
  • –policy-arn:付与するポリシーのARN(リソース名)を指定

ポリシーARNはIAMのダッシュボードの画面左の「アクセス管理」→「ポリシー」を選択し、対象のポリシーの詳細から確認することができます。

Image from Gyazo

$ aws iam attach-group-policy --group-name Dev --policy-arn arn:aws:iam::aws:policy/PowerUserAccess

IAMのダッシュボードで確認してみます。

Image from Gyazo

「許可」が定義済みに変更されています。

Image from Gyazo

詳細を確認すると「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のダッシュボードで確認してみます。

Image from Gyazo

Image from Gyazo

「ユーザー」の数が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の操作をしてみるのが是非おすすめです。

コメント

タイトルとURLをコピーしました