SystemsManagerの変更マネージャ(Change Manager)を使って、IAMユーザーをIAMグループに追加する作業をワークフローにしてみた

記事タイトルとURLをコピーする

はじめに

こんにちは、技術三課の三木宏昭です。
今年はラニーニャ現象が継続しそう、と聞いていたので厳しい寒さになると覚悟はしてましたが、
やはりとても寒い12月ですね。

埼玉県は年末年始に氷点下となりそうで、初日の出を見ようとすると寒さ対策は必須になりそうです。

とはいえ、家の中は暖房のおかげで快適に過ごせています。暖房があってよかった。
今日は暖房の効いた部屋から、re:Invent中に発表されたChange Managerについて書きます。

re:Inventとは

re:InventとはAWSの年次イベントです。
様々な新機能・新サービスの紹介や各種サービスの活用方法、顧客事例の紹介などが行われます。

今年はオンライン開催という事で視聴者上限もなく、気軽に参加することが出来ます。
12月の開催期間は終わりましたが、1月にも開催予定です!
参加はこちらから!

AWS - re:Invent

多くのセッションが英語ではありますが、私の見たセッションはどれも資料が分かりやすく、勉強になるものばかりでした。
「面白そうだな」「勉強になりそうだな」「使えそうだな」と感じましたら、ぜひ参加してみてください!
(英語のセッションが多くはありますが、資料は分かりやすく作られてますので、気後れせずに一度参加してみる事を強くお勧めします。)

変更マネージャを使ってみた

Change Managerの概要については弊社ブログの下記記事にまとまっておりますので、まずはご参照ください。

blog.serverworks.co.jp

なお、このブログでは日本語のマネジメントコンソール表記に準じて、「変更マネージャ」という名称で記載します。

今回のテーマ

今回のテーマは「指定したIAMユーザーを、特定のIAMグループに追加する」作業をワークフローにしてみます。 イメージとしては以下の通りです。

やりたいこと

  • 管理者権限が付与されたIAMグループ(Operationグループ)に、IAMユーザーを追加する

準備

変更Managerを使うために、まずはいくつか準備をします。
準備で必要なのは以下2ステップです。

  1. IAMロールの設定
  2. 変更マネージャの設定(初期設定)

1. IAMロールの設定

後述するドキュメントを実行するためのIAMロールを作成します
IAMを開き、左ペインの「ロール」を選択し、画面左上の「ロールの作成」を押下 f:id:swx-miki:20201222143759p:plain

信頼されたエンティティはSystems Managerを選択 f:id:swx-miki:20201222143848p:plain

ポリシーは「AmazonSSMAutomationRole」と「IAMFullAccess」を選択します
f:id:swx-miki:20201224234620p:plain f:id:swx-miki:20201224234637p:plain

適当な名前を付けて、ロールを作成します f:id:swx-miki:20201224234718p:plain

後で利用するので、ロールのARNはどこかに控えておいてください f:id:swx-miki:20201224225717p:plain

2. 変更マネージャの設定

Systems Managerの左ペインから「変更マネージャ」を選び、セットアップを押下します f:id:swx-miki:20201222145222p:plain

その後、「設定」タブを選んで、編集ボタンを押下 f:id:swx-miki:20201222145305p:plain

ユーザID管理の選択で、左側の「AWS identity and Access Management (IAM)」を押下

f:id:swx-miki:20201222143241p:plain
IAMを選択

「テンプレートレビューワーの通知」の設定で、「SNSトピックを作成」を選択し、名前を入力して「通知を追加」を押下します f:id:swx-miki:20201224231845p:plain

最後に右下の「保存」を押下します f:id:swx-miki:20201224231918p:plain

以上で、使用する為の準備は完了です

作成

このステップで、変更マネージャで実行するドキュメントと、変更マネージャテンプレートを構築します。

3. ドキュメントの作成

ここから、Systems Manager上の操作になります。
Systems Managerの左ペインから「ドキュメント」を選択し、右上の「オートメーションを作成する」を押下。 f:id:swx-miki:20201222180337p:plain

名前とドキュメントの説明を入力します。 f:id:swx-miki:20201224222116p:plain

「ロールを想定」に、先ほど控えておいたロールのARNをはりつけます。 f:id:swx-miki:20201228094926p:plain

「入力パラメータ - オプション」を開いて、パラメータ名に「UserName」を設定します。
このパラメータを入れる事で、ユーザが申請する際に自分のユーザ名を設定できるようになります。 f:id:swx-miki:20201228095023p:plain

入力のServiceは「iam」、APIは「AddUserToGroup」を設定します。
このAPIに関するドキュメントはこちらですf:id:swx-miki:20201224222514p:plain

APIの引数である「UserName」と「GroupName」を設定します。
UserNameは2つ上で設定したUserNameを利用したいため、 {{UserName}} と設定。
GroupNameは、追加対象グループ名である「operation」を直接記載します。 f:id:swx-miki:20201224233606p:plain

ここまで出来たら、右下の「オペレーションを作成する」を押下して、完了します。 f:id:swx-miki:20201224222822p:plain

4.テンプレートの編集

Systems Managerの変更マネージャの画面で、「テンプレート」タブを選択し、「AWS-HelloWorldChangeTemplate」を押下します。

f:id:swx-miki:20201222164408p:plain
テンプレート名を押下。もしくはテンプレートを選択した状態で右上の「詳細を表示」

右上の「アクション」から「テンプレートを複製」を選択。 f:id:swx-miki:20201222164344p:plain

名前と説明を入力します。 f:id:swx-miki:20201224223555p:plain

テンプレートタイプは「標準変更テンプレート」、ランブックは「1つのランブックを選択」、ランブックには先ほど作成したランブック「AddIAMUserToOperationGroup」を設定。 f:id:swx-miki:20201224223034p:plain

テンプレート情報はお好みで入力。 f:id:swx-miki:20201224232414p:plain

承認者を追加するため、「承認者を追加」ボタンを押下し、「テンプレートに指定された承認者」を選びます。 f:id:swx-miki:20201224223302p:plain

適切な承認者を選択します(今回はadministratorを選びます)。 f:id:swx-miki:20201224223403p:plain

承認者はAdministratorのみで良いので、デフォルト入力値は削除しておきます。 f:id:swx-miki:20201224224819p:plain

SNSトピックは前の手順で作成したものを選択し、「通知を追加」を押します。 f:id:swx-miki:20201228100612p:plain

そのほかの項目は変更せずに、右下の「保存してプレビュー」を押下します。

以上で、テンプレートの作成は完了です!

動作検証

実施前の確認

現在、operationグループには誰も所属していない状態です。 f:id:swx-miki:20201224224118p:plain

myuserで実行!

myuserでAWSにログインします。 f:id:swx-miki:20201224232131p:plain

その後、変更マネージャの「テンプレート」画面で対象のテンプレート(AddIAMUserToOperationGroupTemplate)を選択し、右上の「リクエストを作成」を押下。 f:id:swx-miki:20201224223944p:plain

変更申請の名前とリクエスト情報を入力します(リクエスト情報は、1つ前で設定した「テンプレート情報」が反映されています)。 f:id:swx-miki:20201224232549p:plain

他の項目は変えず、右下の「次へ」を押下。 f:id:swx-miki:20201228100751p:plain

ランブックのパラメータでユーザ名を設定し、「次へ」を押下。 f:id:swx-miki:20201224225048p:plain

次の画面で内容を確認して、右下の「承認のために送信」を押下。 f:id:swx-miki:20201224230033p:plain

申請が送信された画面が表示されたら申請完了! f:id:swx-miki:20201224230108p:plain

申請を承認

今度はAdministratorでログインして、変更マネージャの「リクエスト」を開くと、先ほど申請したものが表示されるので、選択します。 f:id:swx-miki:20201224232233p:plain

すると、申請内容が表示されるので、内容を確認して右上の「承認」を押下します。 f:id:swx-miki:20201224232703p:plain

コメント入力画面に、承認コメントを記載します。 f:id:swx-miki:20201224232731p:plain

少し待つと、ステータスが「スケジュール済み」に代わります。 f:id:swx-miki:20201224234155p:plain

数分後、ステータスが成功に代わりました。 f:id:swx-miki:20201224234833p:plain

結果確認

operationグループに、myuserが追加されました! f:id:swx-miki:20201224234952p:plain

おわりに

いかがだったでしょうか。
ドキュメント(オートメーション)はAWS APIだけでなく、LambdaやStep Functionsを呼び出すこともできます。
気になった方は、ぜひ試してみてください。

三木 宏昭 (執筆記事の一覧)

クラウドインテグレーション部 技術1課

紅茶と親子丼とAWSが好き

2021年の目標:毎日リングフィットアドベンチャーのコントローラーを持つ

2021 APN ALL AWS Certifications Engineers