AWSのサービスを利用する上で…
金融システムの運用保守や情報システム部門のIT支援などを経て、現在は顧客へのAWS導入・移行の提案、構築などを担当。社内向けの勉強会、技術支援などを実施し、AWSエンジニアの育成にも挑戦中。好きな食べ物はカレーと餃子。
執筆・監修者ページ/掲載記事:6件
みなさん、AWS CLI使ってますか?
こんにちは。エンジニアの中井です。
AWSのマネジメントコンソール上での操作は、ほぼ全てAPIとCLIが用意されています。
(参考)AWSよくある質問「マネジメントコンソールは、AWS CLI および API と同じ機能を共有していますか?」
運用自動化の第一歩として、CLIを使おうぜ!みたいな雰囲気もあったりしますね。
というわけで、IAMユーザー作成をCLIでやってみましょう。
5ステップでできます、って感じですね。
※「ユーザーは、自動的に IAMUserChangePassword ポリシーを取得」という内容に注目
事前に用意しておいた2つのグループへ追加します。
あまりIAMユーザーにはタグ付けはしませんが、試しに組織と場所を追加してみます。
確認画面が出ます。
作成結果として、アクセスキー、シークレットアクセスキー、パスワードが表示&ダウンロードできます。
いきなりですが、上記手順のすべてのコマンドです。
AWS CLI
aws iam create-user --user-name ******** --tags Key=department,Value=******** Key=location,Value=********** aws iam create-access-key --user-name ******** aws iam create-login-profile --user-name ******** --password '************' --password-reset-required aws iam attach-user-policy --user-name ******** --policy-arn arn:aws:iam::aws:policy/IAMUserChangePassword aws iam add-user-to-group --user-name ******** --group-name ******** aws iam add-user-to-group --user-name ******** --group-name ********
GUIだとまとめて色々と設定できるんですが、ユーザー作成はcreate-userだけでは、まったく完結しません・・・
AWS CLI
aws iam create-user --user-name ******** --tags Key=department,Value=******** Key=location,Value=********
アクセスキーは専用のコマンドが用意されてます。
AWS CLI
aws iam create-access-key --user-name ********
ここでアクセスキーが出力されます。
出力結果
{ "AccessKey": { "UserName": "********", "AccessKeyId": "AKIA****************", "Status": "Active", "SecretAccessKey": "****************************************", "CreateDate": "2020-07-09T07:59:08+00:00" } }
パスワードはcreate-login-profileで設定します。
attach-user-policyで、GUIの「ユーザーは、自動的に IAMUserChangePassword ポリシーを取得」相当を設定します。
CLIだと上記のcreate-login-profile –password-reset-requiredだけでは、パスワードの変更ができないんですね。罠です。
AWS CLI
aws iam create-login-profile --user-name ******** --password '************' --password-reset-required aws iam attach-user-policy --user-name ******** --policy-arn arn:aws:iam::aws:policy/IAMUserChangePassword
グループの追加です。add-user-to-groupコマンドでは、一度に1つのグループしか設定できないので、複数グループの時はその分コマンドを実行する必要があります。
AWS CLI
aws iam add-user-to-group --user-name ******** --group-name ******** aws iam add-user-to-group --user-name ******** --group-name ********
これでGUIと同等の設定ができました。
いかがでしたか?
例えば、100名分のIAMユーザー作成なんかは、GUIではやり切れませんよね(そもそもそういった要件がおかしい)。
ちょっと頑張ってCLIを調べれば、なんとかやれそうな気がしますよね。
また、ポチポチGUIから実施している操作ですが、それぞれの設定はCLIでやってみると、意外と細かくCLIが分割されてます。
AWSの中身がこうなってるんだな~という気づきにもなりますね。
さて、今回のIAMユーザー作成ですが、どのCLIを使うかはちゃんとドキュメントに記載があります。
(参考)AWSユーザーガイド「IAM ユーザーの作成(AWS CLI)」
が、実際のコマンドはCLIの方のドキュメントを見ろということになってます。
実際にドキュメントを見て、すんなりと書けるやつもあれば、例えば複数タグの書き方なんかは、書いてあるようで書いてなくて、ちょっとつまづいたりします。
(参考)AWS CLI Command Reference
というわけで、まずはAWSのドキュメントを見てみて、あとはトライアンドエラーでやってくしか無さそう(無かった)です。