Amazon Web Services ブログ
CloudKnox と AWS Control Tower を使用して AWS でのマルチアカウントのアクセス許可管理を自動化
はじめに
CloudKnox は APN アドバンストパートナーです。
AWS Marketplace で利用できる CloudKnox SaaS ソリューションは、AWS Identity and Access Management (IAM) ユーザーとロールに付与されるアクセス許可の継続的なモニタリングとプロファイリングを提供します。CloudKnox を使用すると、セキュリティオペレーションチームとクラウドインフラストラクチャチームは、単一のダッシュボードからすべての AWS アカウントに対して最小権限ポリシーを継続的に作成、監視、適用できます。これにより、クラウドインフラストラクチャにアクセスできるすべての ID に、特定の必須タスクを実行するために必要なアクセス許可のみが付与されます。これには、従業員、サードパーティの請負業者、サービスアカウント、アプリケーション、および Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどのクラウドリソースが含まれます。このブログ投稿で、Maya と私は CloudKnox と AWS Control Tower を統合する新しいソリューションを共有しています。これにより、AWS Control Tower 環境で新しく追加されたすべての AWS アカウントを Account Factory を使用して CloudKnox に自動的に登録できます。この統合により、新しく追加されたすべての AWS アカウントで CloudKnox ベースのアクセス許可管理が自動的に有効になります。これには、最小権限の検出と実施、IAM アクセス許可の権利設定が含まれます。
前提条件
CloudKnox と AWS Control Tower の統合ソリューションを実装する前に、以下の前提条件を完了する必要があります。
- CloudKnox コンソールから CloudKnox アカウントにサインアップします。
- AWS Marketplace で CloudKnox サブスクリプションを作成し、CloudKnox にアクセスするための認証情報を取得します。
- CloudKnox の AWS Marketplace リストに移動し、[Continue to Subscribe] を選択します。契約期間 (12 か月または 36 か月)、自動更新設定を選択し、[Create Contract] を選択します。サブスクリプションを完了するには、選択したオプションを確認し、[Pay now] を選択します。
- これで、CloudKnox コンソールにリダイレクトされて戻ります。手順 1 で登録したアカウントを使用してログインします。メインページで [Deploy] を選択し、手順に従って、CloudKnox 提供の AWS CloudFormation テンプレートを AWS アカウントの CloudKnox Sentry アプライアンスにプロビジョンします。
- CloudKnox API 統合コンソールにログインし、[Generate New Key] を選択します。 生成されたアクセスキー、シークレットキー、サービスアカウント ID と Sentry アプライアンスがデプロイされた AWS アカウント ID を書き留めます。これは、以後の統合で使用します。
ソリューションの概要
AWS Control Tower と CloudKnox との統合は、AWS CloudWatch イベントおよび AWS CloudFormation StackSets による AWS Control Tower ライフサイクルイベントの自動化に基づいています。このソリューションに必要なすべてのコンポーネントのプロビジョニング、セットアップ、統合を完全に自動化する 1 つの AWS CloudFormation テンプレートで構成されます。
このソリューションの AWS CloudFormation テンプレートと詳細な README はこちらで入手できます。このテンプレートは AWS Control Tower 管理アカウントにデプロイされ、以下のコンポーネントが作成されます。
- AWS Control Tower 管理アカウントにある CloudKnox AWS CloudFormation StackSet。これには、CloudKnox 統合ロールを設定するための CloudKnox コンポーネントが組み込まれています。API キーやシークレットなどの CloudKnox コンポーネントに必要なすべてのパラメータは、AWS Secrets Manager に保存されます。
- Amazon CloudWatch Events ルール: AWS Control Tower ライフサイクルイベントに基づいてトリガーされます。
- AWS Lambda ライフサイクル関数: CloudWatch Events ルールのターゲット。
- CloudKnox AWS CloudFormation スタックインスタンスは、AWS Control Tower マネージドアカウントにあります。AWS Control Tower 管理アカウントから新しいアカウントが追加されると、Lambda 関数によって管理アカウントにスタックインスタンスが作成されます。このスタックインスタンスは、管理アカウントにデプロイされた CloudKnox StackSet に基づいています。スタックインスタンス:
- 管理アカウントで CloudKnox 統合 IAM ロールをプロビジョニングします。
- CloudKnox に新しく追加された AWS アカウントを登録する CloudKnox Add Account API を呼び出します。
次のアーキテクチャ図は、AWS Control Tower と CloudKnox 統合のコンポーネントを示しています。
- AWS Control Tower 管理アカウントで:
- 新しい AWS Control Tower アカウントは、AWS Service Catalog の一部である Account Factory コンソールを使用してプロビジョニングされます。
- 新しいアカウントがプロビジョニングされると、AWS Control Tower ライフサイクルイベントによって CloudWatch Events ルールがトリガーされます。
- AWS CloudWatch Events ルールは Lambda 関数をトリガーします。
- AWS CloudFormation StackSet は、AWS Control Tower 管理アカウントで CloudKnox スタックインスタンスを起動します。
- AWS Control Tower マネージドアカウントで:
- 新しい AWS Control Tower アカウントは、AWS Service Catalog の一部である Account Factory コンソールを使用してプロビジョニングされます。
- 新しいアカウントがプロビジョニングされると、AWS Control Tower ライフサイクルイベントによって CloudWatch Events ルールがトリガーされます。
- AWS CloudWatch Events ルールは Lambda 関数をトリガーします。
- AWS CloudFormation StackSet は、AWS Control Tower 管理アカウントで CloudKnox スタックインスタンスを起動します。
段階的なチュートリアル
AWS Control Tower と CloudKnox 統合を設定するには、次の手順に従います。
AWS Control Tower と CloudKnox 統合をセットアップ
- 管理アカウントの AWS CloudFormation コンソールにログインします。
- AWS CloudFormation コンソールから aws-cloudknox-controltower.yaml テンプレートを起動します。コンソールから AWS CloudFormation テンプレートを起動するには、ここで概説する手順に従います。
- ステップ 2 でパラメータを入力するには、アクセスキー、シークレットキー、Sentry アプライアンスがパラメータとしてデプロイされたサービスアカウント ID と AWS アカウント ID を入力します。これらは、このブログ投稿の前提条件セクションの手順 2c でメモしたパラメータです。
統合をテスト
管理アカウントを追加し、ライフサイクルイベントを作成して、統合をテストします。
管理アカウントを追加
- AWS Control Tower 管理アカウントにログインし、AWS Control Tower コンソールを開きます。
- AWS Control Tower 組織に新しい管理アカウントを登録するには、ナビゲーションペインで [Account Factory] を選択します。
- [Account email]、[Display name]、[AWS SSO E メール]、[AWS SSO user name]、[Organizational unit] の値を入力します。
- [Enroll account] を選択します。
アカウントが作成され、AWS Control Tower ライフサイクルイベントがトリガーされるまでに最大 30 分かかる場合があります。
統合をテスト
統合が機能していることを確認するには、次の手順を実行します。
- AWS Control Tower 管理アカウントにログインします。
- Validate that a CloudKnox Integration Role (IAM_R_KNOX_SECURITY_XA IAM role) has been created in the managed account.
- CloudKnox AWS (概要) ダッシュボードを表示します。
- CloudKnox アカウントにログインします。
- 歯車アイコンを選択して、ダッシュボードから [Data Collectors] タブに移動します。CloudKnox データコレクタがこの管理アカウントの [Collecting] 状態になっていることを確認します。
- この新しい AWS アカウントでデータ収集が完了するまでに最大 1 時間かかる場合があります。
- [Dashboard] タブを選択して、CloudKnox コンソールに戻ります。新しく作成された AWS マネージドアカウントのアクセス許可分析を表示するには、特定の AWS アカウント ID を選択します。次のスクリーンショットは、aws-jn-sandbox アカウントを示しています。左側に図、右側に棒グラフがあり、Privilege Creep Index が 11 と低いことを示しています。次のスクリーンショットを参照してください。
まとめ
このブログ投稿では、CloudKnox に AWS Control Tower アカウントを自動的に登録する新しい Marketplace ソリューションについて説明しました。CloudKnox と AWS Control Tower の統合により、CloudKnox のアクセス許可管理機能を自動的に拡張し、マルチアカウント AWS 環境で最小権限の原則を適用できます。このソリューションの詳細については、「AWS Marketplace の AWS Control Tower ソリューション」を参照してください。
著者について
Kanishk は AWS の ISV ソリューションアーキテクチャのリーダーです。この役割で、彼は AWS における管理とガバナンス、セキュリティとコンプライアンス、移行とモダナイゼーションに関連するあらゆる分野において、独立系ソフトウェアベンダーパートナーおよび相互顧客向けクラウドトランスフォーメーションとソリューションアーキテクチャをリードしています。
Maya は CloudKnox の設立エンジニアの 1 人であり、企業がエンタイトルメントを管理するのに役立つ特許取得済み CloudKnox アクティビティベースの認証プラットフォームの構築に携わっています。カスタマーサクセス部長としての現在の役割では、顧客と協力して IAM アクセス許可管理で課題を特定し、解決しています。