← All Articles

SystemsManagerのAutomationでPythonスクリプトを実行する。

Posted on

はじめに

SystemsManagerのAutomationには、 Power Shell と Python のスクリプトを実行できるアクションがあります。

いろいろと活用に夢が広がったので、IAMユーザーを作成するPythonスクリプトを設定して実行してみました。

完成イメージ

先に作成したオートメーションの動作について記載します。

作成するオートメーションは2つの入力パラメータを受け取ります。

項目 項目の説明
UserName 作成するIAMユーザーの名前を入力してください。
AutomationAssumeRole AutomationがIAMを設定できるようなロールを作成して入力してください。

■IAMユーザーを作成するため、オートメーションを実行します。

2つの入力パラメータには

UserNameには hogehoge、

AutomationAssumeRoleには IAMを操作できるロール を設定して実行します。

20210913-1

■ステータスが 成功 になったことを確認します。

20210913-2

■IAMのコンソールに移動して IAMユーザーが作成されていることを確認します。

20210913-3

設定方法

1), オートメーションを実行するためのIAMロールを作成します。

以下のIAMロールを作成してください。

  • IAMユーザーを作成できるポリシーをアタッチしてください。(私は検証なので AdministratorAccess をアタッチしました。)
  • 信頼されたエンティティには ssm.amazonaws.com を設定してください。

2), AWS Systems Manager の ドキュメントに移動して オートメーションを作成します。

3), 作成画面に遷移して、ドキュメント属性の設定をしてください。

以下の内容を設定してください。

項目 設定値
ドキュメントの説明 ## IAMユーザーをつくる
ロールを想定 {{AutomationAssumeRole}}

■入力パラメータ

No パラメータ名 タイプ 必須 説明
1 UserName String Yes 設定するIAMユーザーの名前
2 AutomationAssumeRole String Yes IAMロール

20210913-4

4), ステップ1 の設定をしてください。

以下の内容を設定してください。

項目 設定値
ステップ名 create_iam_user
アクションタイプ スクリプトを実行する
説明 ## IAMユーザーを作成します
Runtime Python3.7
Handler script_handler
Script <下のcodeを入れてください>
入力名 InputPayload
入力値 UserName: ‘{{UserName}}’
import boto3
iam = boto3.client('iam')

def script_handler(events, context):
    try:
        user = iam.create_user(UserName=events["UserName"])
    except Exception as e:
        print(e)

20210913-5

5), 設定が完了したら オートメーションを作成する を実行してください。

20210913-6

6), ドキュメントの自己所有に、作成したドキュメントができていたら完成です。

まとめ

オートメーションを作ってみました。

スクリプトを実行する のアクションは、1 か月 5,000 秒の無料利用枠があるそうなので、 気軽に試してみるのがいいかもしれません。

参考文献

AWS Systems Manager オートメーション

技術SystemsManagerAWSAutomation