Slide 1

Slide 1 text

AWSアカウントへのログインを一時的に 許可する簡易承認ワークフローを作ってみた 2023年6月29日 【AWS×BTC】AWS LT大会 株式会社セゾン情報システムズ 石丸 司 #aws_lt_saison_btc

Slide 2

Slide 2 text

目次 1.自己紹介 2.はじめに 3.システム構成図 4.運用イメージ 5.改善点 6.おわりに #aws_lt_saison_btc

Slide 3

Slide 3 text

1. 自己紹介 ■氏名:石丸司(いしまるつかさ) ■所属:セゾン情報システムズ ■経歴 2017/4/1 : 新卒入社 2017/7/1~2022/3/31 : 基幹システムのアプリ開発・維持保守 2022/4/1~ : AWSインフラの構築・維持保守 ■最近の活動 JAPAN AWS Top Engineers選出を目指し、資格取得、Qiita投稿・LT登壇などを実施中 Twitter:@tsukasa_aws #aws_lt_saison_btc

Slide 4

Slide 4 text

2. はじめに マルチアカウント環境にて、本番作業で使用する作業用ロール(管理者権限ロール)への アクセス(スイッチロール)管理を手作業で行っているケースが多いのではないでしょうか。 この運用を自動化できないか検討・試作してみましたので、 今回はその内容をご紹介したいと思います。 踏み台アカウント 作業対象アカウント IAMユーザー (作業用IAMロールへ のスイッチロール用) Excelにて 踏み台アカウント IAMユーザーの パスワードを管理 作業用IAMロール (管理者権限) スイッチロール #aws_lt_saison_btc ・・・

Slide 5

Slide 5 text

3. システム構成図 踏み台アカウント 作業対象アカウント 作業用IAMロール (管理者権限ロール) SystemsManager Automation ※ 承認者 開始用Eventbridge Schedule作成 承認ステップ 終了用Eventbridge Schedule作成 Scheduler Scheduler AWS Lambda 踏み台アカウントの Lambdaアクセス用 IAMロール 作業者 ③承認 ②通知 ①実行 ④スケジュール作成 ⑤実行 ⑥スイッチロール ⑦信頼ポリシーを変更 カスタムランブック #aws_lt_saison_btc ※SystemsManager Automationとは AWS リソースのメンテナンス作業を自動化するためのSystems Manager内の機能 Chatbot SNS ※参考にさせて頂いた記事 https://dev.classmethod.jp/articles/workflow-to- add-temporary-privilege-by-ssm-automation/

Slide 6

Slide 6 text

4. 運用イメージ ①(作業者)SlackからSystemsManagerのカスタムランブックを実行 実行コマンドを送信 #aws_lt_saison_btc パラメータ設定 実行済メッセージ

Slide 7

Slide 7 text

4. 運用イメージ ②(承認者)Slackで承認依頼メッセージ確認&承認 承認 #aws_lt_saison_btc 承認画面遷移

Slide 8

Slide 8 text

4. 運用イメージ ③(AWS内部処理)作業用IAMロールの信頼ポリシーを変更 #aws_lt_saison_btc 踏み台アカウント 作業対象アカウント 作業用IAMロール (管理者権限ロール) SystemsManager Automation ※ 承認者 開始用Eventbridge Schedule作成 承認ステップ 終了用Eventbridge Schedule作成 Scheduler Scheduler AWS Lambda 踏み台アカウントの Lambdaアクセス用 IAMロール 作業者 ③承認 ②通知 ①実行 ④スケジュール作成 ⑤実行 ⑥スイッチロール ⑦信頼ポリシーを変更 カスタムランブック Chatbot SNS

Slide 9

Slide 9 text

4. 運用イメージ ④(作業者)踏み台アカウントのIAMユーザーにログイン&スイッチロール ログイン #aws_lt_saison_btc スイッチロール

Slide 10

Slide 10 text

4. 運用イメージ ⑤(作業者)作業完了後に作業対象アカウントからログアウト 入力した終了時刻に自動で 作業用IAMロールの信頼ポリシーを初期化 ⇒スイッチロール不可の状態になる #aws_lt_saison_btc

Slide 11

Slide 11 text

5. 改善点 • 承認者への承認依頼通知をSlackに飛ばす (Chatbotが非対応なので、Lambda or EventBridge + SNS) • 複数の作業者の作業時間が被る場合の考慮 • AWS IAM Identity Center対応(SSOユーザー対応) • CloudFormationテンプレート作成 #aws_lt_saison_btc

Slide 12

Slide 12 text

6. おわりに • 今回ご紹介した事例が少しでもお役にたてれば幸いです。 • SystemsManagerを使用した、様々な運用作業自動化の事例が増 えていくことを願っています。 #aws_lt_saison_btc

Slide 13

Slide 13 text

ご清聴ありがとうございました #aws_lt_saison_btc