SystemsManagerのAutomationでPythonスクリプトを実行する。
Posted on
はじめに
SystemsManagerのAutomationには、 Power Shell と Python のスクリプトを実行できるアクションがあります。
いろいろと活用に夢が広がったので、IAMユーザーを作成するPythonスクリプトを設定して実行してみました。
完成イメージ
先に作成したオートメーションの動作について記載します。
作成するオートメーションは2つの入力パラメータを受け取ります。
| 項目 | 項目の説明 |
|---|---|
| UserName | 作成するIAMユーザーの名前を入力してください。 |
| AutomationAssumeRole | AutomationがIAMを設定できるようなロールを作成して入力してください。 |
■IAMユーザーを作成するため、オートメーションを実行します。
2つの入力パラメータには
UserNameには hogehoge、
AutomationAssumeRoleには IAMを操作できるロール を設定して実行します。

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

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

設定方法
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ロール |

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)
5), 設定が完了したら オートメーションを作成する を実行してください。

6), ドキュメントの自己所有に、作成したドキュメントができていたら完成です。
まとめ
オートメーションを作ってみました。
スクリプトを実行する のアクションは、1 か月 5,000 秒の無料利用枠があるそうなので、
気軽に試してみるのがいいかもしれません。