Upgrade to Pro — share decks privately, control downloads, hide ads and more …

組織統制に欠かせない!CloudFormationStackSetsのお話

 組織統制に欠かせない!CloudFormationStackSetsのお話

西内渓太

October 01, 2024
Tweet

More Decks by 西内渓太

Other Decks in Technology

Transcript

  1. 1 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 氏名:西内

    渓太 ◼ 経歴 • 兵庫県出身 • 2017年4月 日系SIer企業に新卒入社 • 2022年11月~ NRIネットコム入社 AWSを活用した顧客システムの構築支援業務に従事 その他、NRI Netcom TECH&DESIGN STUDYにてサービスアップデート紹介etc. • 2024 Japan AWS All Certifications Engineers(の予定) ◼ 好きなAWSサービス AWS Organizations、AWS CloudFormation StackSets ◼ 保有AWS資格 Data Engineer – Associate以外 自己紹介 組織統制に欠かせない!CloudFormation StackSetsのお話 宣材写真(本開いてるVer.)
  2. 2 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSets

    皆さんは使ったことがあるでしょうか?案件で使っているでしょうか? CloudFormation StackSetsとは? 組織統制に欠かせない!CloudFormation StackSetsのお話 引用元:StackSets の概念 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html
  3. 3 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsとは?

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 公式ドキュメントによると・・・ スタックセットでは、1 つの CloudFormation テンプレートを使用して、複数のリージョンの AWS アカウント にスタックを作成できます。 スタックセットの CloudFormation テンプレートは、各スタック内のすべてのリソースを定義します。 スタックセットを作成する際、使用するテンプレートに加え、そのテンプレートで必要なパラメータや機能を指定します。 引用元:StackSets の概念 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html ◼ 具体例 AWS Organizations Management account Template Account Stack Account Stack Stack ap-northeast-1 Stack us-east-1 AWS Organizations Management account Template Account
  4. 5 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ けどその前に、AWSにおける組織統制とは? それらを解決してくれるのが によるAWSの組織統制です! AWS Organizations AWSをシングルアカウントで運用していく中で生じる課題例 ①無関係のリソースを操作してしまうリスクがある ②PJ等の単位で請求額を把握したい ③ユーザ別に操作可能な対象や操作内容を制御したい などなど…
  5. 6 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ AWS Organizationsによるマルチアカウント運用によって先述の課題を解決できます AWS Organizations Management account Organizational unit (A Project) Organizational unit (B Project) Account (検証用) Account (本番用) Account (本番用) Account (検証用) 上記に加えて… ・アカウントを任意の単位でまとめることが可能(Organizational unit, 以下OU) ・Organizational Unitごとに操作制限を敷くことが可能(SCP) ・AWS Config, Amazon GuardDuty等を一元管理 ①無関係のリソースを操作してしまうリスクがある ⇒アカウントを用途や環境別に分けることでリソースの不正操作を防止 ③ユーザ別に操作可能な対象や操作内容を制御したい ⇒各アカウントで権限別にIAMロールを作成してスイッチする ②PJ等の単位で請求額を把握したい ⇒アカウントを用途や環境別に分けることで請求内容の分別が可能に
  6. 7 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ CloudFormation StackSetsを組織統制で使うメリット ~その1~ CloudFormation(IaC)のメリットを享受できる ・コード管理のためGit等のツールで変更履歴管理やチーム内での共有が容易にできる ・リソースの作成や復元、他環境への展開に正確性および一貫性を持たせることが可能 ・同一リソースの再現を迅速に行える などなど… EC2のコンソールに移動して、インスタンスを作成ボタンを押して、 インスタンスタイプはt2.microを選んで… 非IaCでリソースを作る場合
  7. 8 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ CloudFormation StackSetsを組織統制で使うメリット ~その2~ 一つのテンプレート内容を複数のアカウント・リージョンに展開することが出来る Account Stack Template ap-northeast-1 Stack us-east-1 複数アカウントに展開する場合 ※アカウントを指定して展開することも可能 複数リージョンに展開する場合 AWS Organizations Management account Template Account Stack Account Stack
  8. 9 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ CloudFormation StackSetsを組織統制で使うメリット ~その3~ 自動でStackの展開を行うことが出来る AWS Organizations Organizational unit Management account Template Account Stack Account Stack 新規 発行 対象のOU内で アカウントの新規発行が検知された場合、 自動でStackを作成してくれる 自動デプロイをアクティブ化
  9. 10 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsが組織統制に重要な理由

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 以上を踏まえたユースケース 全てのアカウントに同一設定 のConfigとSecurity Hubを 展開したい… とある会社のCCoEに所属するAさん AWS Organizations Management account Template Account Stack Account Stack ※セキュリティサービスの委任については割愛 AWS Security Hub AWS Security Hub AWS Config AWS Config CloudFormation StackSetsで解決! 新規発行アカウントにも自動で展開! AWS Security Hub
  10. 12 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 AWS Organizations Management account Template Organizational unit (開発用) Account Organizational unit (検証用) Account Organizational unit (本番用) Account 環境別にOUを区切ったOrganizationsを想定 この場合、どのようにテンプレートを展開していくでしょうか…? ◼ 注意点その1 ~一度に全アカウントへ展開してよいのか?~
  11. 13 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その1 ~一度に全アカウントへ展開してよいのか?~ AWS Organizations Management account Template Organizational unit (開発用) Account Stack Organizational unit (検証用) Account Stack Organizational unit (本番用) Account Stack テンプレートが意図せず、 本番にも展開されてしまう!
  12. 14 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その1 ~一度に全アカウントへ展開してよいのか?~ AWS Organizations Management account Template Organizational unit (開発用) Account Stack Organizational unit (検証用) Account Stack Organizational unit (本番用) Account Stack じゃあ、段階的にデプロイ すればよいのでは…? ① ② ③
  13. 15 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account Template Organizational unit A Account Stack Organizational unit B Account Stack 左記のような環境を想定。 ・OUは2つ ・StackSetsの自動デプロイは有効化済み
  14. 16 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account New Template Organizational unit A Account New Stack Organizational unit B Account Stack テンプレートを更新してOU Aに展開
  15. 17 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account New Template Organizational unit A Account New Stack Organizational unit B Account Stack New Account この状態で新規アカウントを作成した場合、 新旧どっちのStackが作られるでしょうか…? ?
  16. 18 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account New Template Organizational unit A Account New Stack Organizational unit B Account Stack New Account New Stack 最新のテンプレートでStackが作成されます!! OU Bは新旧Stackが混在した状態
  17. 19 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account New Template Organizational unit A Account New Stack Organizational unit B Account Stack New Account New Stack さらに、こっちのStackはStackSetsのテンプレート と異なる状態になる どれが最新テンプレートと同じで、 どれが違うのか分からなくなってしまう…
  18. 20 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFormation StackSetsを使うにあたっての注意点

    組織統制に欠かせない!CloudFormation StackSetsのお話 ◼ 注意点その2 ~このアカウントのStack、いつのテンプレート内容か分からない問題~ AWS Organizations Management account New Template Organizational unit A Account New Stack Organizational unit B Account Stack New Account New Stack 段階的にデプロイするのも必ずしも良いとは 限らない…
  19. 23 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account 再び3環境ごとにOUを分けた組織を想定。 StackSetsは自動デプロイ有効化を前提とする。
  20. 24 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account Template for OU A Stack Stack Stack OU A用のStackSetsを作成して、 OU Aの全てのアカウントに展開。 (OU Aでテンプレート問題ないか動作検証・様子見)
  21. 25 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account Template for OU A Template for OU B Stack Stack OU Aで問題ないことを確認したら、 同様にOU B用のStackSetsを作成して、 OU Bの全アカウントに展開。 ※テンプレートの内容はOU Aのものと同じ
  22. 26 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account Template for OU A Template for OU B Template for OU C Stack Stack Stack OU Cも同様に…(以下略)
  23. 27 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account NewTemplate for OU A Template for OU B Template for OU C Stack NewStack Stack テンプレート更新時も段階的に展開していく
  24. 28 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account NewTemplate for OU A NewTemplate for OU B Template for OU C NewStack NewStack Stack テンプレート更新時も段階的に展開していく
  25. 29 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account NewTemplate for OU A NewTemplate for OU B Template for OU C NewStack Stack NewAccount と、ここでOU Cで新たなアカウントが発行! NewStack
  26. 30 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account NewTemplate for OU A NewTemplate for OU B Template for OU C NewStack Stack NewAccount NewStack Stack 他OUのテンプレート更新は影響ないので、 テンプレートとStackで差異が生じない。
  27. 31 Copyright(C) NRI Netcom, Ltd. All rights reserved. 私のチームの展開方法 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ◼ 一度に展開しきれる単位でStackSetsを作成する という考え方 AWS Organizations Management account Organizational unit A Account Organizational unit B Account Organizational unit C Account NewTemplate for OU A NewTemplate for OU B NewTemplate for OU C NewStack NewStack NewAccount NewStack NewStack 更新時は一度に行うことで、 テンプレートとStackの差異を無くす
  28. 32 Copyright(C) NRI Netcom, Ltd. All rights reserved. まとめ 組織統制に欠かせない!CloudFormation

    StackSetsのお話 ⚫CloudFormation StackSetsは、複数アカウントへ同一リソースを展開するときに大変便利 ⚫組織全体で同一のセキュリティサービスを導入したいときは相性◎ ⚫一方で、展開を行う際は順序などを慎重に考える必要がある ⚫StackSetsをOUごとに分けて作成して展開する、という方法も一つの案としてご参考にしてみてください