AWS Control Tower でドリフトを検出および解決する - AWS Control Tower

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

AWS Control Tower でドリフトを検出および解決する

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

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

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

ドリフトの検出

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

ドリフトは、監査アカウントに集約された Amazon Simple Notification Service (Amazon SNS) 通知に表示されます。各メンバーアカウントの通知を介して、アラートがローカルの Amazon SNS トピック、および Lambda 関数に送信されます。

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

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

ドリフト通知の重複除外

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

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

  • マネージド SCP を変更し、ドリフトを修正してから再度変更すると、2 回通知が届きます。

  • アカウントが最初にドリフトを修復せずに同じ送信元と送信先の OUs 間で複数回移動された場合、アカウントがそれらの OUs 間で複数回移動した場合でも、1 つの通知が送信されます。

アカウントドリフトのタイプ
  • OU 間でのアカウントの移動

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

注記

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

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

  • SCP が OU にアタッチされた

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

  • SCP がアカウントにアタッチされた

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

ドリフトの解決

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

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

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

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

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

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

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

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

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

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

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

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

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

日次 SCP スキャンは、
  1. 最近アクティブになった OUsの取得。

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

  3. OU で有効な予防コントロールごとに、コントロールのポリシーステートメントが OU のマネージド SCP に存在することを確認します。

OU には、マネージド SCP が 1 つ以上ある場合があります。

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

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

  • セキュリティ OU を削除しないでください。AWS Control Tower によるランディングゾーンのセットアップ中に元々セキュリティと名付けられていた組織単位は削除しないでください。削除すると、ランディングゾーンをすぐにリセットするように指示するエラーメッセージが表示されます。リセットが完了するまで、AWS Control Tower で他のアクションを実行することはできません。

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

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

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

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

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

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

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

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

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

  • 基礎 OU 以外のメンバーアカウントの名前変更。

  • セキュリティ OU での AWS Control Tower の共有アカウントの名前変更。

  • 基礎以外の OU の削除。

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

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

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

注記

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

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

ランディングゾーンがドリフト状態である場合、AWS Control Tower 内の [Enroll account] (アカウントの登録) 機能は動作しません。その場合、AWS Service Catalog を使用して新しいアカウントをプロビジョニングする必要があります。手順については、「Account Factory AWS Service Catalog によるアカウントのプロビジョニング 」を参照してください。

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