LoginSignup
0
0

More than 1 year has passed since last update.

CloudFormationでIAMユーザー作成を自動化

Posted at

QiitaやYouTubeでAWS操作を共有するときに、ユーザー情報を隠すのが面倒くさい・・
じゃあIAMユーザーを使い捨てにしよう!っということでIAMユーザー作成を自動化します。

jsonファイル作成

まず、IAMユーザー作成のjsonファイルを作ります。

createIamUser.json
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Template for creating Initial IAM",
    "Resources": {
        "IAMUserInitialAdmin": {
            "Type": "AWS::IAM::User",
            "DeletionPolicy": "Retain",
            "Properties":{
                "UserName": {"Fn::Join" : [
                    "",
                    ["demo-iniadmin-user-",{"Ref": "AWS::AccountId"}]
                    ]},
                "LoginProfile": {
                    "Password": "pass",
                    "PasswordResetRequired": true
                },
                "ManagedPolicyArns": [
                    "arn:aws:iam::aws:policy/AdministratorAccess"
                ]
            }
        }
    },
    "Outputs": {
        "UserName": {
            "Description": "Information about User name",
            "Value": { "Ref" : "IAMUserInitialAdmin" }
        },
        "LoginURL": {
            "Description": "Information about console login URL",
            "Value": {"Fn::Join" : [
                "",
                ["https://",{"Ref": "AWS::AccountId"},".signin.aws.amazon.com/console"]
                ]}
        }
    }
}

CloudFormationで実行

CloudFormationではスタック作成が実行みたいな感じなので、先程のjsonファイルを使ってスタック作成(実行)します。
image.png
今回はテンプレートファイルを直接アップロードします。
image.png
image.png
スタック名を入力して次へ。
image.png
オプション設定は特なし。
image.png
image.png
レビュー画面で確認して問題なければ、最後の青い枠にチェックを入れてスタック作成。
image.png
image.png
ステータスが作成中になる。
image.png
しばらくすると完了する。
image.png
IAMユーザーが作成されていることを確認!
image.png

実行に失敗したとき

ロールバックと表示される。
image.png
イベントタブでエラーメッセージが確認できる。今回はパスワードルールに引っかかりました^^;
image.png
失敗すると、再度スタックの作り直しになる・・
image.png
※注意点
失敗するとロールバックと出るので、作成されていないと思ったのですが、IAMユーザーが作られていました。
その状態で実行すると、xxxxx(残されたままのリソース) is already exists.というエラーがまた出て、またやり直しになります。
ですので、一旦リソースを確認し削除する必要がありますね。

終わりに

初めてCloudFormationを使ってみましたが、CloudFormationだけで完全自動化はちょっと難しそう。(ソース修正する度にスタック作成しなかんし:frowning2:)
参考記事でもLambdaとか組み合わせていたので、Lambdaやaws cliとのコンボで威力を発揮できるサービスな気がします!

参考

https://qiita.com/toshikitsubouchi/items/acd1954793e36296bdae
https://dev.classmethod.jp/articles/aws-cloudformation-initaial-iam/
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html
https://tech.nri-net.com/entry/cloudformation_pattern

0
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
0
0