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 秒の無料利用枠があるそうなので、
気軽に試してみるのがいいかもしれません。