Cloud Automatorハンズオンセミナーの環境準備を自動化した話

AWS運用自動化サービス「Cloud Automator」

はじめに

当社で提供しておりますAWS運用自動化ツールのCloud Automatorはハンズオンセミナーを定期的に開催をしており、おかげさまで毎回好評を頂いております。このハンズオンにおいては、

  • AWSアカウント
    • VPC
    • EC2インスタンス
    • IAM
  • Cloud Automatorアカウント

を参加者にご利用頂きますため、事前に参加者数分の環境を準備する必要があります。
AWSアカウント内のリソースの構築については、CloudFormationのスタックセットを自動化しており、以下の記事でその取り組みを紹介しました。
CloudFormation スタックセットで複数のAWS環境構築を一気に行う

構築した環境を当日参加者に利用頂くため、その環境を操作するIAMのクレデンシャル情報等を取得頂く必要があります。これらを当日スムーズに取得頂くため、当日参加者にダウンロード頂くようにしています。
ダウンロード頂く資材をBoxに期限付きパスワードでアップロードし、そのURLをBitlyで短縮し、参加者にそのURLを配布しています。環境準備作業全体の流れのイメージを以下図に示します。

今回、以下図の赤枠部分の自動化を試みましたので、その取り組みを簡単に紹介します。
※本自動化の取り組みは当社インターンシップの活動の成果の一部をまとめたものになります。

自動化の試み

クレデンシャル情報の取得

複数のAWSアカウントのIAMユーザーのクレデンシャル情報を取得する必要があります。クレデンシャル情報を取得するための認証情報をAWSアカウント数分、手元に保存しておくのはセキュリティ上の懸念があるため、STSのAssumeRoleを用いて各AWSアカウントのIAMユーザーの認証情報を生成/取得します。

Python(Boto 3)では以下のように書けます。

※先日、認証情報のIAMロール対応をリリース致しましたため、本工程は今後修正予定です

Boxへのアップロード

取得したクレデンシャル情報を含む資材のファイルをBoxにアップロードし、期限付きパスワードを設定します。
こちらもプログラム(Python)で自動化します。BoxのPython SDKを用いると以下のように書けます。

BitlyでURL短縮

最後にBitlyでBoxにアップロードしたファイルの公開URLを短縮化します。
BoxにもカスタムURLの機能が提供されているのですが、API経由での実行はサポートされていなかったため、Bitlyを用います。

こちらは以下のように書けます。

おわりに

今回、Cloud Automatorハンズオンセミナーの環境準備の自動化の取り組みをご紹介しました。
今後もハンズオンセミナーの開催を予定しておりますので、是非チェックしてみてください!

AWS運用自動化サービス「Cloud Automator」