[レポート] コンプライアンスの構成を確保する方法 #MGT303 #reinvent

本記事は、AWS re:Invent 2019 の「MGT303-R1 How to ensure configuration compliance」についてレポートします。

セッション情報

スピーカー

  • Sid Gupta - Principal Product Manager, AWS Config, Amazon Web Services
  • MaSonya Scott - Principal Business Development Mgr, Amazon Web Services
  • Manish Mohite - SVP, Global Head Cloud, Jefferies Group

セッション概要

In this session, we dig into how to govern and monitor your expanding AWS services and accounts using AWS management and governance features and services such as AWS Config rules, AWS CloudFormation drift detection, and AWS Systems Manager State Manager. We also describe how these features and services help you maintain compliance within your AWS stack at scale.

このセッションでは、AWS Configルール、AWS CloudFormationドリフト検出、AWS Systems Manager State ManagerなどのAWS管理およびガバナンス機能とサービスを使用して、拡大するAWSサービスとアカウントを管理および監視する方法を掘り下げます。 また、これらの機能とサービスがAWSスタック内で大規模にコンプライアンスを維持するのにどのように役立つかについても説明します。

レポート

アジェンダ

  • イントロダクション
  • 課題
  • ベストプラクティス
  • 顧客ユースケース
  • 要約
  • Q&A

課題

ビルダーとセントラルクラウドのニーズのバランスをとる

  • ビルダー: 俊敏性を保つ
    • AWSのスピードと俊敏性で革新する
  • Cloud IT: ガバナンスを確立する
    • 集中管理で大規模に管理

コンプライアンスの課題

  • コンプライアンスに対処
  • 利害関係者の教育
  • 監査結果を報告

ベストプラクティス

ビジネスの俊敏性とガバナンスの制御

ガバナンスとセキュリティのどちらかではなくどちらも必要。クラウド設計へのコンプライアンスの事前設定が必要。

ベストプラクティスの4つのアプローチ

  1. 標準の確立
  2. 構成の設計
  3. プロダクトのローンチ
  4. リソース管理

標準の確立

各環境(Sandbox, Development, Staging, Production)のベースラインコンプライアンス要件を特定する

構成の設計

  • イミュータブルなテンプレートの開発
  • 環境に合わせて構成を調整する
  • Configルールの有効化
  • CloudTrailの有効化

プロダクトのローンチ

AWS Service Catalogによるプロビジョニングのシンプル化。AWS Service Catalogを使用すると、組織は組織のセキュリティおよび運用ポリシーを反映するAWSインフラストラクチャとアプリケーションをデプロイおよび管理できます。これにより組織はコンプライアンスを管理し、開発者は俊敏性を失うことはありません。

AWS Service Catalog - 構成有効化機能

  • タグオプション
    • 製品のタグの関連付けと標準化
  • StackSets
    • 複数のアカウントとリージョンにまたがる製品を起動
  • ITSM Connectors (IT Service Management)
    • Atlassian Jira Service DeskやServiceNowでAWS製品をプロビジョニング

製品の起動

  • Service Catalog管理者
    • 製品のコレクションを作成
    • セキュリティ、ガバナンス、デプロイコントロールを設定
  • 開発者
    • 管理者の作成した製品リストから起動

コンプライアンスの確保 - 予防管理

  • プロビジョニング前の予防的コントロール
    • AWS CloudFormation
    • AWS Service Catalog
  • プロビジョニング後の発見的コントロール
    • AWS Systems Manager
    • AWS Config

Jira Service Deskのデモ

  1. 開発者がJira Service DeskからService Catalogを検索
  2. Webサーバインスタンスをリクエスト
  3. 承認待ちのステータスに遷移
  4. 承認
  5. インスタンスが起動

リソース管理

ベストプラクティス

  • 発見的コントロールの確認事項
    • リソースはベストプラクティスに基づいて構成されているか
    • リソースは内部ポリシーとコンプライアンス基準(PCI、HIPAAなど)に準拠しているか?

リソースを管理するために知っておくこと

  • アカウントに現在リソースが存在するか?
  • リソースの最新の構成状態は何か?
  • リソース間に関係があるか?
  • 構成の変更は過去に発生したか?
  • アカウントのリソースがコンプライアンスポリシーに違反しているか?

短く言うとクラウドにリアルタイムの構成監査員が必要。

オートスケーリングやスポットインスタンスのような短い時間存在するリソースもチェックすることが重要。監査にもリアルタイム性がクラウドでは求められている。AWS Configが役に立つ。

AWS Config

  • アカウント内のリソースを検出するネイティブのエージェントレスAWS機能
  • 構成の変更を追跡し、履歴を保持します(最大7年)
  • コンプライアンスポリシーに対する構成変更の評価(AWS Configルールを使用)
  • アカウントおよびリージョン全体のリソース構成およびコンプライアンスステータスの集約ビューを提供
  • 独自のCMDBと統合 (ServiceNowなど)

AWS Config = 継続的設定監査(Continuous Configuration Auditor)

機能
  • 設定ルールによる自動修復
    • 準拠していないリソースを自動的に修正 (Systems Manager Automation Document)
    • ポート22を開放しているセキュリティグループを修正など
  • コンフォーマンスパック
    • 組織全体の展開とコンプライアンスのレポートを簡素化
    • ルールをまとめて組織に展開可能
  • カスタム構成アイテム
    • AWS Configで非AWS設定データを管理可能。オンプレミスのActive DirectoryやGitHubなど。

ここで2つのデモが行われました。

1つはコンフォーマンスパックの機能で、yamlで定義されたルールをアップロードして適用するというものでした。

2つ目はカスタム構成アイテムのデモで、ActiveDirectoryのパスワードが無期限になっているユーザを検知すると言うものです。Lambdaの中でActiveDirectoryを検査し、AWS ConfigのAPIを呼び出して結果を登録しています。AWS Configの画面で準拠していないユーザの一覧が確認できました。

カスタマーユースケースの紹介

Jefferies

ジェフリーズは、米国に本社を置く最大の独立系フルサービスグローバルインベスメントバンキング企業であり、アメリカ、ヨーロッパ、アジアで発明バンキング、アドバイザリー、販売およびトレーディング、調査および資産管理サービスを提供しています。

  • 世界中の30以上の都市にあるオフィス
  • 世界で3,700人の従業員
  • 総資産410億ドル
  • Jefferies Financial Group Incの完全子会社 (NYSE: JEF)

セキュリティ制御/構成コンプライアンス戦略 - Amazon S3 での例

  • アカウントレベルでのS3公開ブロック
  • S3バケットポリシーでTLSの強制
  • KMS-CMKでRestの暗号化強制
  • バケットとオブジェクトにアクセスできるユーザーにIP制限を適用
  • S3プライベートリンクを有効化
  • S3へのアクセスにVPCエンドポイントの制限を強制
  • S3アクセスの最小限のIAMロール
  • オブジェクトレベルロギング
  • サーバアクセスロギング
  • バージョン管理の有効化
  • CloudTrailのオブジェクトレベルのログデータをSplunkに送信
  • Splunkに向けられたデータと異常検出をアラートで分類
  • Account Region Locks

AWS Config と AWS Service Catalog のベースアーキテクチャ

中央アカウントでポートフォリオを作成し、子アカウントに共有コンプライアンスを維持している。

ServiceNowと接続

ServiceNowと接続することによりワークフローを実現

  • 開発者とエンドユーザーのセルフサービスを有効
  • クラウドリソースをリクエスト
  • 承認ワークフローを構成
  • 変更管理で変更を自動的に記録

Jefferies まとめ

ネイティブAWSサービスを使用することで対処できる。

  • スケールするセキュリティ
  • 予防的コントロール
  • 発見的コントロール
  • 監査レポート

まとめ

結果

  • 多くの専門分野チームによる本番システムの提供
  • 運用効率を改善
  • サービステンプレートの提示
  • 全体的な採用と促進のための一貫したフレームワーク
  • コンプライアンスを実施
  • 顧客満足度の向上

やってほしいこと

  • 学び、好奇心を持つ (Learn and Be Curious)
    • AWS Answers Configuration Management - https://tinyurl.com/sj79ky2
    • AWS Service Catalog
      • リファレンスアーキテクチャ - https://tinyurl.com/wezhpzq
      • ITSM connectors - https://tinyurl.com/qqmuqyj
    • AWS Config
      • サンプルコンフォーマンスパックテンプレート - https://tinyurl.com/unszffl
      • GitHub for AD Connector - https://tinyurl.com/voybh2w (記事執筆時点でリポジトリはありませんでした)
  • フィードバックの提供
  • 準拠したワークロードを本番環境に導入しましょう!

さいごに

AWS Service Catalog、AWS Configを利用してコンプライアンスにリアルタイムに準拠する方法を学びました。使いこなすには精進が必要ですが...