

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

# AWS Control Tower でドリフトを検出および解決する
<a name="drift"></a>

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

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

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

## ドリフトの検出
<a name="detecting-drift"></a>

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

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

**注記**  
**[設定]** でアカウントの自動登録機能が有効になっている場合、これらの SNS 通知は使用できません。

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

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

**ドリフト通知の重複除外**

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

**例: SCP ドリフトは以下の方法で処理されます**
+ 同じマネージド SCP を複数回変更した場合、初めて変更したときに通知が届きます。
+ マネージド SCP を変更し、ドリフトを修正してから再度変更すると、2 回通知が届きます。

**アカウントドリフトのタイプ**
+ OU 間でのアカウントの移動 (「*[有効なベースラインでの継承ドリフト](governance-drift.md#drift-enabled-baseline)*」と「[有効なコントロールの継承ドリフト](governance-drift.md#drift-enabled-controls)」を参照)
+ アカウントが組織から削除

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

**ポリシードリフトの例**
+ SCP の更新
+ SCP が OU からデタッチされた

詳細については、「[Types of Governance Drift](https://docs.aws.amazon.com/controltower/latest/userguide/governance-drift.html)」を参照してください。

## ドリフトスキャンと ポリシースキャンに関する考慮事項
<a name="scp-invariance-scans"></a>

 AWS Control Tower は、マネージド SCP、RCP、宣言型ポリシーを毎日スキャンして、対応するコントロールが正しく適用され、ドリフトが発生していないことを確認します。これらのリソースを取得してチェックを実行するために、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、RCP、宣言型ポリシーを監査する場合、AWS Control Tower が行う API コールは TPS 制限にカウントされます。これは、AWS Control Tower が管理アカウントを使用してコールを行うためです。

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

**API リクエストレートを超えた場合**
+ AWS Control Tower が上限に達してスロットリングされた場合、監査の実行が一時停止され、後で再開されます。
+ ワークロードが制限に達してスロットリングされた場合、その結果は、ワークロードの構成方法に応じて、わずかな遅延からワークロードの致命的なエラーにまで及ぶ可能性があります。このエッジケースには注意が必要です。

**日次 SCP スキャンは、**

1. 最近アクティブな OU が取得されます。

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

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

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

## すぐに解決すべきドリフトのタイプ
<a name="types-of-drift"></a>

ほとんどのタイプのドリフトは、管理者が解決できます。ただし、AWS Control Tower ランディングゾーンに必須の組織単位を削除したなど、即時解決しなければならないタイプのドリフトもあります。回避すべき重要なドリフトの例を以下に示します。
+ セキュリティ OU を削除しないでください。AWS Control Tower によるランディングゾーンのセットアップ中に元々**セキュリティ**と名付けられていた組織単位は削除しないでください。**削除すると、ランディングゾーンをすぐにリセットするように指示するエラーメッセージが表示されます。リセットが完了するまで、AWS Control Tower で他のアクションを実行することはできません。
+ *必要なロールを削除しないでください。*AWS Control Tower は、IAM ロールのドリフトについてコンソールにログインするときに、特定の AWS Identity and Access Management (IAM) ロールをチェックします。 **これらのロールが見つからないかアクセス可能でない場合は、ランディングゾーンをリセットするように指示するエラーページが表示されます。これらのロールは、`AWSControlTowerAdmin` `AWSControlTowerCloudTrailRole` `AWSControlTowerStackSetRole` です。

  これらのユーザーロールの詳細については、「[AWS Control Tower コンソールを使用するために必要なアクセス許可](additional-console-required-permissions.md)」を参照してください。
+ *すべての追加の OU を削除しない:* AWS Control Tower の運用には少なくとも 1 つの追加の OU が必要ですが、それが**サンドボックス** OU である必要はありません。
+ *共有アカウントを削除しない:* セキュリティ OUs からログアカウントを削除するなど、 AWS Organizations コンソールまたは APIs を使用して Foundational OU から共有アカウントを削除した場合。これらのアカウントを移動すると、修正が必要な**アカウントの移動**ドリフトのタイプが作成されます。このタイプのドリフトを修正するには、ランディングゾーンを更新する必要があります。

**注記**  
ベストプラクティスとして、これらの共有アカウントを Foundational OU 外に移動しないでください。

## リソースへの修復可能な変更
<a name="repairable-changes-to-resources"></a>

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

発生したドリフトを解決する方法の詳細については、「[AWS Control Tower の外部でのリソースの管理](https://docs.aws.amazon.com//controltower/latest/userguide/external-resources.html)」を参照してください。

**AWS Control Tower コンソールの外部で許可される変更**
+ 登録済み OU の名前変更。
+ セキュリティ OU の名前変更。
+ 基礎 OU 以外のメンバーアカウントの名前変更。
+ セキュリティ OU での AWS Control Tower の共有アカウントの名前変更。
+ 基礎以外の OU の削除。
+ 基礎以外の OU からの登録済みアカウントの削除。
+ セキュリティ OU での共有アカウントのメールアドレスの変更。
+ 登録された OU 内のメンバーアカウントのメールアドレスの変更。

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

## ドリフトと新しいアカウントのプロビジョニング
<a name="drift-and-accounts"></a>

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

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