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

MedPeer SREチームによるAWSアカウント運用効率化 / Improving effi...

reireias
November 17, 2021

MedPeer SREチームによるAWSアカウント運用効率化 / Improving efficiency of AWS account operations by MedPeer SRE team

2021/11/17 に行われた下記AWSイベントの登壇資料です。

なぜあの会社は少人数でもシステム運用ができるのか?
〜工夫を凝らし効率的に運用しているお客様事例祭り
https://awsonlineseminar.splashthat.com/

reireias

November 17, 2021
Tweet

More Decks by reireias

Other Decks in Technology

Transcript

  1. 自己紹介 名前 侘美 怜(たくみ さとし) アカウント @reirei_As reireias 略歴 2013年

    富士ゼロックスに入社 BtoBのSaaSプロダクトの開発 オンプレからAWSへの移行 2019年 メドピアに入社 SREチーム所属 たまにRailsエンジニア
  2. Terraform CloudによるCI/CDパイプライン Terraform Cloud HashiCorp社のTerraformマネージドサービス https://www.terraform.io/cloud 機能 • Terraformのstateの管理機能 •

    Terraformのplan(変更の差分の表示)やapply(変更の反映)の実行環境 • Terraformモジュールのレジストリ ◦ IAMロール、通知系のLambda関数、会社のIPなどの定数、等をモジュールとして登録し活用中
  3. Terraform CloudによるCI/CDパイプライン Terraform Cloud GitHub Pull Request作成 merge plan実行 apply実行

    各種リソース Trigger Trigger Apply Read こんなCI/CDパイプラインが実現可能 ※ Terraform Cloud以外のツールでも同様のパイプラインは構築可能
  4. Terraform CloudによるCI/CDパイプライン メリット③:apply忘れやエラー放置の撲滅 Before • PRマージしたけどapply忘れてました • applyエラーになったけど後で直します →放置 After

    • 自動apply(※)による担保 • 一覧で表示されるのでエラーに気付ける ※ ちなみに、確認画面をはさんで apply という設定も可能
  5. Log Account Root Account セキュリティの可視化 CloudFormation Config Organizations Service Account

    1 Config Service Account N Config ・ ・ ・ 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート
  6. Service Account 1 Root Account セキュリティの可視化 CloudFormation Config Organizations Service

    Account 1 Config Service Account N Config 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート ・ ・ ・ CloudFormation StackSetsにより Organizations配下の全アカウントへの AWS Configの設定 AWS ConfigのOrganization Config Rule機能で全アカウントにルールを設定
  7. Log Account Root Account セキュリティの可視化 CloudFormation Config Organizations Service Account

    1 Config Service Account N Config 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート ・ ・ ・ Configのスナップショットログ を1つのS3バケットに集約
  8. Log Account Root Account セキュリティの可視化 CloudFormation Config Organizations Service Account

    1 Config Service Account N Config 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート Athena + QuickSightで集計 と分析 ・ ・ ・
  9. Log Account Root Account セキュリティの可視化 CloudFormation Config Organizations Service Account

    1 Config Service Account N Config ・・ ・ 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート ダッシュボードや月イチのレポートメールでセ キュリティ対策状況をチェック ダッシュボードのサンプル
  10. Log Account Root Account セキュリティの可視化 CloudFormation Config Organizations Service Account

    1 Config Service Account N Config ・・ ・ 作成 & ルール設定 Bucket ログ保存 Athena QuickSight SRE レポート より詳細が気になる方はこちらのテックブログへ AWS Config + Athena + QuickSightによる複数AWSアカウント横 断でのセキュリティ状態の可視化 - メドピア開発者ブログ https://tech.medpeer.co.jp/entry/2021/10/01/090000
  11. tfsecの導入とDependabotの活用 セキュリティ対策の工数削減として役立ったTips • tfsec ◦ https://github.com/aquasecurity/tfsec ◦ Terraformのコードを解析して潜在的なセキュリティ問題を警告してくれるツール ◦ AWSには一度作成すると修正が難しいリソースもあるので有用

    • DependabotによるAWS Providerの更新PR作成 ◦ GitHubに組み込まれているツールで、リポジトリ内のライブラリのセキュリティアラートや更新の PR などを発行してくれる ◦ Terraformのプロバイダーやモジュールにも対応しているので、 AWS Providerを最新に保つのが楽
  12. セキュリティ可視化 + tfsecによる効果 Before • 実装時期や実装者によってセキュリティ対策はまばら • セキュリティに関する社内ルールはあるが、どのアカウントでどれくらい守られてい るかチェックが難しい After

    • 静的解析と実際のリソースをチェックすることでセキュリティを担保 • 可視化 することで、定量的にセキュリティ対策状況を把握できる • 改善すべき対象が浮き彫りに
  13. Service Account A IAMユーザーの運用方法 intra Account 開発者 IAMユーザー IAMロール 各種リソース

    操作 Service Account B IAMロール 各種リソース 操作 Assume Role • 開発者用のIAMユーザーは1アカウントに 集約 • どのIAMロールにAssume Role可能かも ここで制御 ・ ・
  14. Service Account A IAMユーザーの運用方法 intra Account 開発者 IAMユーザー IAMロール 各種リソース

    操作 Service Account B IAMロール 各種リソース 操作 Assume Role • 各AWSアカウントを操作する際は Assume Roleして操作 ・ ・
  15. Service Account A IAMユーザーの運用方法 intra Account 開発者 IAMユーザー IAMロール 各種リソース

    操作 Service Account B IAMロール 各種リソース 操作 Assume Role • 各AWSアカウント上のIAMロールは Terraformのモジュールでadminや readonlyなどいくつかのパターンを用意 ・ ・
  16. アクセスキーの発行のための仕組み 開発者 SRE Terraform 提出 実装 IAMアクセスキー 発行 apply 暗号化

    利用 output ㊙ 復号 公開鍵 秘密鍵 IAMアクセスキー 暗号化された アクセスキー ① 開発者がPGP鍵を生成し、公開鍵を SREに提出。
  17. アクセスキーの発行のための仕組み 開発者 SRE Terraform 提出 実装 IAMアクセスキー 発行 apply 暗号化

    利用 output ㊙ 復号 公開鍵 秘密鍵 IAMアクセスキー 暗号化された アクセスキー ② PGP鍵を指定しIAMアクセスキー作成を実装。
  18. アクセスキーの発行のための仕組み 開発者 SRE Terraform 提出 実装 IAMアクセスキー 発行 apply 暗号化

    利用 output ㊙ 復号 公開鍵 秘密鍵 IAMアクセスキー 暗号化された アクセスキー ③ applyすると、作成されたIAMアクセスキーがPGP公開鍵で暗号化される。
  19. アクセスキーの発行のための仕組み 開発者 SRE Terraform 提出 実装 IAMアクセスキー 発行 apply 暗号化

    利用 output ㊙ 復号 公開鍵 秘密鍵 IAMアクセスキー 暗号化された アクセスキー ④ SREは暗号化されたIAMアクセスキーを開発者に伝達し、開発者は復号する。
  20. アクセスキーの発行のための仕組み 開発者 SRE Terraform 提出 実装 IAMアクセスキー 発行 apply 暗号化

    利用 output ㊙ 復号 公開鍵 秘密鍵 IAMアクセスキー 暗号化された アクセスキー SREが生のIAMアクセスキーを目撃することなく、 強制的にIAMアクセスキーを発行できた! ↓ ローテーションに必要な工数を大幅削減