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

AWS Control Tower でのドリフトの検出および解決

ドリフトの特定と解決は、AWS Control Tower マスターアカウント管理者の通常の運用タスクです。

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

変更によりコンプライアンスが複雑になる可能性があります。ドリフト検出は、ドリフトを解決するために変更や設定更新が必要になるリソースを識別するのに役立ちます。ドリフトを解決することで、ガバナンス規制のコンプライアンスを確保できます。

ドリフトの検出

ドリフトは AWS Control Tower によって自動的に検出されます。これは、監査アカウントに集約される Amazon SNS 通知に表示されます。各メンバーアカウントの通知を介して、アラートがローカルの Amazon SNS トピック、および Lambda 関数に送信されます。

メンバーアカウント管理者は、特定のアカウントの SNS ドリフト通知にサブスクライブできます (ベストプラクティスとしてもサブスクライブをお勧めします)。ドリフトが発生すると、AWS Control Tower コンソールからマスターアカウント管理者に通知されます。

ドリフトの解決

検出は自動で行われますが、ドリフトを解決するステップはコンソールを使用して行う必要があります。[設定] ページでは、さまざまなタイプのドリフトを解決できます。ページの [バージョン] セクションにある [修復] ボタンが選択可能な場合、[修復] を選択して一部のタイプのドリフトを修復できます。ドリフトが発生していない場合、[修復] ボタンがグレー表示されます。

ほとんどのタイプのドリフトは、管理者が解決できます。ただし、AWS Control Tower ランディングゾーンに必須の組織単位を削除したなど、即時修復しなければならないタイプのドリフトもあります。主なドリフトの例を以下に示します。

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

  • コンソールにログインすると、AWS Control Tower によって IAM ロールドリフトについて特定の IAM ロールがチェックされます。これらのロールが見つからないかアクセス可能でない場合は、ランディングゾーンを修復するように指示するエラーページが表示されます。これらのロールは AWSControlTowerAdminAWSControlTowerCloudTrailRoleAWSControlTowerStackSetRole です。

  • AWS Control Tower によるランディングゾーンの設定中にもともと [Custom (カスタム)] という名前の組織単位を削除した場合、ランディングゾーンはドリフト状態になりますが、AWS Control Tower は引き続き使用できます。AWS Control Tower を操作するには、Core 以外の OU を 1 つ以上求められますが、それが Custom OU である必要はありません。

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

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

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

AWS Control Tower コンソールの外側で許可される変更

  • Core 以外の OU の名前を変更します。

  • Core OU の名前を変更します。

  • Core 以外の OU (メンバー) アカウントの名前を変更します。

  • Core (共有) アカウントの名前を変更します。

  • Core 以外の OU を削除します。

  • Core 以外の OU (メンバー) アカウントを削除します。

  • Core (共有) アカウントの E メールアドレスを変更します。

  • Core 以外の OU (メンバー) アカウントの E メールアドレスを変更します。

注記

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

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

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

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

ガバナンスドリフトのタイプ

組織およびメンバーアカウントが変更および更新されると、ガバナンスドリフトが発生します。AWS Control Tower で検出できるガバナンスドリフトのタイプは次のとおりです。

移動されたメンバーアカウント

このタイプのドリフトは、メンバーアカウント、監査アカウント、またはログアーカイブアカウントが 1 つの AWS Control Tower OU から別の AWS Control Tower OU に移動されたときに発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

{ "Message" : "AWS Control Tower has detected that your managed account 'account-email@amazon.com (012345678909)' has been moved from organizational unit 'Custom (ou-0123-eEXAMPLE)' to 'Core (ou-3210-1EXAMPLE)'. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/move-account'", "MasterAccountId" : "012345678912", "OrganizationId" : "o-123EXAMPLE", "DriftType" : "AccountMovedBetweenOrganizationalUnits", "RemediationStep" : "Update Account Factory Provisioned Product", "AccountId" : "012345678909", "SourceId" : "012345678909", "DestinationId" : "ou-3210-1EXAMPLE" }

解決策

このようなドリフトが発生した場合は、以下の方法で解決できます。

  • Account Factory でプロビジョニングされたアカウント – Account Factory でアカウントを更新することで、ドリフトを解決できます。詳細については、「Account Factory アカウントの更新と移行」を参照してください。

  • 共有アカウント – Landing Zone を更新することで、監査またはログアーカイブアカウントの移動によるドリフトを解決できます。詳細については、「ランディングゾーンを更新する」を参照してください。

追加されたメンバーアカウント

このタイプのドリフトは、AWS Control Tower メンバーアカウントが AWS Control Tower OU に追加されたときに発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed account 'account-email@amazon.com (012345678909)' has been added to organization o-123EXAMPLE. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/add-account'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""AccountAddedToOrganization"", ""RemediationStep"" : ""Update Account Factory Provisioned Product"", ""AccountId"" : ""012345678909"" }"

解決

このようなドリフトが発生した場合は、Account Factory でアカウントを更新することで解決できます。詳細については、「Account Factory アカウントの更新と移行」を参照してください。

アカウントと OU のドリフトの解決の詳細については、「AWS Control Tower の外部でのリソースの管理」を参照してください。

削除されたメンバーアカウント

このタイプのドリフトは、AWS Control Tower メンバーアカウントが AWS Control Tower OU から削除されたときに発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed account 012345678909 has been removed from organization o-123EXAMPLE. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/remove-account'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""AccountRemovedFromOrganization"", ""RemediationStep"" : ""Add account to Organization and update Account Factory provisioned product"", ""AccountId"" : ""012345678909"" }"

解決

このタイプのドリフトが発生すると、AWS Control Tower は通知を受け取り、自動更新を行います。削除されたメンバーアカウントが引き続き表示される場合は、Landing Zone を修復することでドリフトを解決できます。また、Account Factory でアカウントを更新し、Account Factory 更新ウィザードから別の登録済み OU にアカウントを追加することで、ドリフトを解決することもできます。詳細については、「Account Factory アカウントの更新と移行」を参照してください。

アカウントと OU のドリフトの解決の詳細については、「AWS Control Tower の外部でのリソースの管理」を参照してください。

注記

AWS Service Catalog では、Account Factory でプロビジョニングされた製品のうちアカウントを表すものは、削除対象として更新されません。代わりに、プロビジョニングされた製品は TAINTED として表示され、エラー状態になります。クリーンアップするには、AWS Service Catalog に移動し、プロビジョニングされた製品を選択してから、[Terminate (削除)] を選択します。

計画外のマネージド SCP の更新

このようなドリフトは、AWS CLI または AWS SDK の 1 つを使用して Organizations コンソールまたはプログラムでガードレールの SCP が更新されたときに発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed service control policy 'aws-guardrails-012345 (p-tEXAMPLE)', attached to the managed organizational unit 'Core (ou-0123-1EXAMPLE)', has been modified. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/update-scp'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""ServiceControlPolicyUpdated"", ""RemediationStep"" : ""Update Control Tower Setup"", ""OrganizationalUnitId"" : ""ou-0123-1EXAMPLE"", ""PolicyId"" : ""p-tEXAMPLE"" }"

解決

このようなドリフトが発生した場合は、Landing Zone を更新することで解決できます。詳細については、「ランディングゾーンを更新する」を参照してください。

管理された OU にアタッチされた SCP

このようなドリフトは、SCP が AWS Control Tower コンソール外部の OU にアタッチされた場合に発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed service control policy 'aws-guardrails-012345 (p-tEXAMPLE)' has been attached to the managed organizational unit 'Custom (ou-0123-1EXAMPLE)'. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/scp-detached-ou'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""ServiceControlPolicyAttachedToOrganizationalUnit"", ""RemediationStep"" : ""Update Control Tower Setup"", ""OrganizationalUnitId"" : ""ou-0123-1EXAMPLE"", ""PolicyId"" : ""p-tEXAMPLE"" }"

解決

このようなドリフトが発生した場合は、Landing Zone を更新することで解決できます。詳細については、「ランディングゾーンを更新する」を参照してください。

管理された OU からデタッチされた SCP

このようなドリフトは、SCP が AWS Control Tower コンソール外部の OU からデタッチされた場合に発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed service control policy 'aws-guardrails-012345 (p-tEXAMPLE)' has been detached from the managed organizational unit 'Custom (ou-0123-1EXAMPLE)'. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/scp-detached'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""ServiceControlPolicyDetachedFromOrganizationalUnit"", ""RemediationStep"" : ""Update Control Tower Setup"", ""OrganizationalUnitId"" : ""ou-0123-1EXAMPLE"", ""PolicyId"" : ""p-tEXAMPLE"" }"

解決

このようなドリフトが発生した場合は、Landing Zone を更新することで解決できます。詳細については、「ランディングゾーンを更新する」を参照してください。

メンバーアカウントにアタッチされた SCP

このようなドリフトは、SCP が Organizations コンソールのアカウントにアタッチされた場合に発生する可能性があります。ガードレールとその SCP は、AWS Control Tower コンソールを使用して OU と OU のすべてのメンバーアカウントで有効にすることができます。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed service control policy 'aws-guardrails-012345 (p-tEXAMPLE)' has been attached to the managed account 'account-email@amazon.com (012345678909)'. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/scp-detached-account'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""ServiceControlPolicyAttachedToAccount"", ""RemediationStep"" : ""Update Control Tower Setup"", ""AccountId"" : ""012345678909"", ""PolicyId"" : ""p-tEXAMPLE"" }"

解決

このようなドリフトが発生した場合は、Landing Zone を更新することで解決できます。詳細については、「ランディングゾーンを更新する」を参照してください。

管理された OU の削除

このタイプのドリフトは、AWS Control Tower OU が AWS Control Tower コンソールの外部で削除された場合に発生する可能性があります。以下に、このタイプのドリフトが検出されたときの Amazon SNS 通知の例を示します。

"{ ""Message"" : ""AWS Control Tower has detected that the managed organizational unit 'Custom (ou-0123-1EXAMPLE)' has been deleted. For more information, including steps to resolve this issue, see 'https://docs.aws.amazon.com/console/controltower/delete-ou'"", ""MasterAccountId"" : ""012345678912"", ""OrganizationId"" : ""o-123EXAMPLE"", ""DriftType"" : ""OrganizationalUnitDeleted"", ""RemediationStep"" : ""Delete managed organizational unit in Control Tower"", ""OrganizationalUnitId"" : ""ou-0123-1EXAMPLE"" }"

解決

このタイプのドリフトが発生すると、通常、AWS Control Tower は登録済み OU のリストを自動的に更新できます。削除された OU が表示されている場合、中央のクラウド管理者は AWS Control Tower コンソールにサインインし、[Organizational units (組織単位)] のリストからその OU を削除する必要があります。

アカウントと OU のドリフトの解決の詳細については、「AWS Control Tower の外部でのリソースの管理」を参照してください。