AWS Control Tower でドリフトを検出して解決する - AWS Control Tower

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Control Tower でドリフトを検出して解決する

ドリフトの特定と解決は、AWSControl Tower 管理アカウント管理者の通常のオペレーションタスクです。ドリフトを解決することで、ガバナンス要件のコンプライアンスを確保できます。

ランディングゾーンを作成すると、ランディングゾーンとすべての組織単位 (OUs)、アカウント、リソースは、選択したコントロールによって適用されるガバナンスルールに準拠しています。ユーザーおよび組織のメンバーがランディングゾーンを使用する際、コンプライアンスステータスが変更されることがあります。一部の変更は偶発的になされますが、時間的制約のある操作上のイベントに対応するために意図的になされる場合もあります。

ドリフト検出は、ドリフトを解決するために変更や設定更新が必要になるリソースを識別するのに役立ちます。

ドリフトの検出

AWS Control Tower はドリフトを自動的に検出します。ドリフトを検出するには、AWSControl Tower が に対して読み取り専用APIの呼び出しを実行できるように、AWSControlTowerAdminロールに管理アカウントへの永続的なアクセスが必要です AWS Organizations。これらのAPI呼び出しは AWS CloudTrail イベントとして表示されます。

Drift は、監査アカウントで集計された Amazon Simple Notification Service (Amazon SNS) 通知に表示されます。各メンバーアカウントの通知は、ローカル Amazon SNSトピックと Lambda 関数にアラートを送信します。

AWS Security Hub サービス管理標準: AWS Control Tower の一部であるコントロールの場合、ドリフトは AWS Control Tower コンソールのアカウントアカウントの詳細ページ、および Amazon SNS通知に表示されます。

メンバーアカウント管理者は、特定のアカウントのSNSドリフト通知をサブスクライブできます (ベストプラクティスとして、サブスクライブする必要があります)。例えば、 aws-controltower-AggregateSecurityNotificationsSNSトピックはドリフト通知を提供します。AWS Control Tower コンソールは、ドリフトが発生したときに管理アカウント管理者に表示されます。ドリフトの検出と通知のSNSトピックの詳細については、「ドリフト防止と通知」を参照してください。

ドリフト通知の重複除外

同じタイプのドリフトが同じリソースセットで複数回発生する場合、AWSControl Tower は最初のドリフトインスタンスに対してのみSNS通知を送信します。AWS Control Tower が、このドリフトインスタンスが修正されたことを検出した場合、それらの同じリソースでドリフトが再発生した場合にのみ、別の通知を送信します。

例: アカウントドリフトとSCPドリフトは、次の方法で処理されます。
  • 同じマネージドSCPを複数回変更すると、最初に変更したときに通知が届きます。

  • マネージド を変更しSCP、ドリフトを修正してから再度変更すると、2 つの通知を受け取ります。

  • アカウントが同じ送信元と送信先の間でOUs複数回移動された場合、まずドリフトを修復することなく、アカウントがそれらの間でOUs複数回移動した場合でも、単一の通知が送信されます。

アカウントドリフトのタイプ
  • アカウントが 間で移動されました OUs

  • アカウントが組織から削除

注記

アカウントを 1 つの OU から別の OU に移動しても、以前の OU のコントロールは削除されません。移動先 OU で新しいフックベースのコントロールを有効にすると、古いフックベースのコントロールがアカウントから削除され、新しいコントロールに置き換わります。SCPs および AWS Config ルールで実装されたコントロールは、アカウントが を変更したときに常に手動で削除する必要がありますOUs。

ポリシードリフトのタイプ
  • SCP 更新済み

  • SCP OU にアタッチ

  • SCP OU からデタッチされました

  • SCP アカウントにアタッチ

詳細については、「ガバナンスドリフトのタイプ」を参照してください。

ドリフトの解決

検出は自動で行われますが、ドリフトを解決するステップはコンソールを使用して行う必要があります。

  • [Landing zone settings] (ランディングゾーン設定) ページでは、さまざまなタイプのドリフトを解決できます。バージョンセクションのリセットボタンを選択して、これらのタイプのドリフトを解決できます。

  • OU のアカウント数が 1000 未満の場合は、組織ページまたは OU の詳細ページで OU の再登録 を選択することで、Account Factory がプロビジョニングしたアカウントのSCPドリフトを解決できます。

  • 個々のアカウントを更新移動されたメンバーアカウントすることで、 などのアカウントドリフトを解決できる場合があります。詳細については、「コンソールでアカウントを更新する」を参照してください。

ランディングゾーンバージョンでドリフトを解決するアクションを実行すると、2 つの動作が可能です。
  • 最新のランディングゾーンバージョンを使用している場合、リセットを選択してから確認 を選択すると、ドリフトしたランディングゾーンリソースは保存された AWS Control Tower 設定にリセットされます。ランディングゾーンのバージョンは変わりません。

  • 最新バージョンでない場合は、更新 を選択する必要があります。ランディングゾーンは最新のランディングゾーンバージョンにアップグレードされます。ドリフトはこのプロセスの一環として解決されます。

ドリフトとSCPスキャンに関する考慮事項

AWS Control Tower は、SCPs毎日 マネージドをスキャンして、対応するコントロールが正しく適用され、ドリフトしていないことを確認します。を取得し、それらのチェックSCPsを実行するには、AWSControl Tower は AWS Organizations 管理アカウントのロールを使用してユーザーに代わって を呼び出します。

AWS Control Tower スキャンでドリフトが検出されると、通知が送信されます。AWS Control Tower はドリフト問題ごとに 1 つの通知のみを送信するため、ランディングゾーンが既にドリフト状態にある場合、新しいドリフト項目が見つからない限り、追加の通知は受信されません。

AWS Organizations は、各 APIsを呼び出す頻度を制限します。この制限は、1 秒あたりのトランザクション (TPS) で表され、TPS制限 スロットリングレート 、またはAPIリクエストレート と呼ばれます。AWS Control Tower が を呼び出しSCPsて を監査すると AWS Organizations、AWSControl Tower が行うAPI呼び出しはTPS制限にカウントされます。これは、AWSControl Tower が管理アカウントを使用して呼び出しを行うためです。

まれに、サードパーティーのソリューションや作成したカスタムスクリプトを通じて、同じ APIsを繰り返し呼び出すと、この制限に達することがあります。例えば、ユーザーと AWS Control Tower が同じ時刻 (1 秒以内) に同じ AWS Organizations APIs を呼び出し、TPS制限に達すると、後続の呼び出しはスロットリングされます。つまり、これらのコールは Rate exceeded のようなエラーを返します。

API リクエストレートを超えた場合
  • AWS Control Tower が制限に達してスロットリングされた場合、監査の実行を一時停止し、後で再開します。

  • ワークロードが制限に達してスロットリングされた場合、その結果は、ワークロードの構成方法に応じて、わずかな遅延からワークロードの致命的なエラーにまで及ぶ可能性があります。このエッジケースには注意が必要です。

毎日のSCPスキャンは、 で構成されます。
  1. 最近アクティブな を取得しますOUs。

  2. 登録された OU ごとに、OU にアタッチされている AWS Control Tower によってSCPs管理されているすべての を取得します。マネージドSCPsには、 で始まる識別子がありますaws-guardrails

  3. OU で有効な予防コントロールごとに、コントロールのポリシーステートメントが OU の管理対象 に存在することを確認しますSCPs。

OU には 1 つ以上の管理 がありますSCPs。

すぐに解決するドリフトのタイプ

ほとんどのタイプのドリフトは、管理者が解決できます。AWS Control Tower ランディングゾーンに必要な組織単位の削除など、いくつかのタイプのドリフトをすぐに解決する必要があります。回避すべき重要なドリフトの例を以下に示します。

  • Security OU を削除しないでください。AWSControl Tower によって設定されたランディングゾーン中に、もともと Security という名前の組織単位を削除しないでください。削除すると、ランディングゾーンをすぐにリセットするよう指示するエラーメッセージが表示されます。リセットが完了するまで、AWSControl Tower で他のアクションを実行することはできません。

  • 必要なロールを削除しない: AWS Control Tower は、ロールドリフト のためにコンソールにログインするときに、特定の AWS Identity and Access Management (IAM) ロールをチェックします。 IAM これらのロールが欠落しているかアクセスできない場合、ランディングゾーンをリセットするよう指示するエラーページが表示されます。これらのロールは、AWSControlTowerAdmin AWSControlTowerCloudTrailRole AWSControlTowerStackSetRole です。

    これらのユーザーロールの詳細については、「AWS Control Tower コンソールを使用するために必要なアクセス許可」を参照してください。

  • すべての追加 を削除しないでくださいOUs。AWSControl Tower によって設定されたランディングゾーン中にもともと Sandbox という名前の組織単位を削除した場合、ランディングゾーンはドリフト状態になりますが、AWSControl Tower は引き続き使用できます。AWS Control Tower を運用するには、少なくとも 1 つの追加 OU が必要ですが、サンドボックス OU である必要はありません。

  • 共有アカウントを削除しない: セキュリティ OU からログ記録アカウントを削除するなどOUs、Foundation から共有アカウントを削除すると、ランディングゾーンはドリフト状態になります。AWS Control Tower コンソールの使用を続ける前に、ランディングゾーンをリセットする必要があります。

リソースへの修復可能な変更

以下は、解決可能なドリフト を作成するものの、許可されている AWS Control Tower リソースの変更のリストです。これらの許可されたオペレーションの結果は AWS Control Tower コンソールで表示できますが、更新が必要になる場合があります。

結果のドリフトを解決する方法の詳細については、AWS「Control Tower の外部でのリソースの管理」を参照してください。

AWS Control Tower コンソール外で許可される変更
  • 登録済み OU の名前変更。

  • セキュリティ OU の名前変更。

  • 根拠のない のメンバーアカウントの名前を変更しますOUs。

  • Security OU の AWS Control Tower 共有アカウントの名前を変更します。

  • 基礎以外の OU の削除。

  • 基礎以外の OU からの登録済みアカウントの削除。

  • セキュリティ OU での共有アカウントのメールアドレスの変更。

  • 登録された OU 内のメンバーアカウントのメールアドレスの変更。

注記

間のアカウントの移動OUsはドリフトと見なされ、解決する必要があります。

ドリフトと新しいアカウントのプロビジョニング

ランディングゾーンがドリフト状態にある場合、AWSControl Tower のアカウント登録機能は機能しません。この場合、AWSService Catalog を使用して新しいアカウントをプロビジョニングする必要があります。手順については、AWS Service Catalog Account Factory でアカウントをプロビジョニングする を参照してください。

特に、ポートフォリオの名前変更など、Service Catalog を使用してアカウントに特定の変更を加えた場合、[Enroll account] (アカウントの登録) 機能は動作しません。