トラブルシューティング - AWS Control Tower

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

トラブルシューティング

AWS Control Tower の使用中に問題が発生した場合は、次の情報を使用して、当社のベストプラクティスに従って解決できます。発生した問題が次の情報の範囲外である場合、または解決を試みた後にも持続する場合は、AWS Support にお問い合わせください。

ランディングゾーンの起動の失敗

ランディングゾーンの起動の失敗の一般的な原因:

  • 確認メールメッセージへの応答の欠如。

  • AWS CloudFormation StackSet の失敗。

確認メールメッセージ: 管理アカウントが作成後 1 時間未満である場合、追加のアカウントを作成すると、問題が発生することがあります。

実行するアクション

この問題が発生した場合は、E メールを確認してください。確認メールが着信し、応答を待機していることがあります。または、1 時間待ってから、もう一度試すことをお勧めします。問題が解決しない場合は、AWS Support までお問い合わせください。

StackSets の失敗: ランディングゾーンの起動失敗のもう 1 つの考えられる原因は、 AWS CloudFormation StackSet の失敗です。AWS Control Tower が管理しているすべてのリージョンの管理アカウントで AWS セキュリティトークンサービス (STS) AWS リージョンを有効にする必要があります。有効にしないと、スタックセットは起動されません。

実行するアクション

AWS Control Tower を起動する前に、必要なすべての AWS Security Token Service (STS) エンドポイントリージョンを必ず有効にしてください。

AWS Control Tower がサポート AWS リージョン する のリストを表示するには、「」を参照してくださいAWS リージョンと AWS Control Tower の連携方法

ランディングゾーンが最新ではないエラー

ランディングゾーンを最近更新していない場合は、AWS Control Tower へのアクセスを回復しようとしたときにエラーが発生することがあります。以下のようなエラーメッセージが表示されることがあります。

Unable to access Control Tower

アカウントは長い間非アクティブになっています。非アクティブのため、AWS Control Tower にアクセスするにはランディングゾーンを更新する必要があります。

ただし、ランディングゾーンの更新が失敗する可能性があります。

実行する手順

組織の管理アカウントにサインインし、ルートユーザーとしてサインインします。IAM ユーザーまたは AWS Identity Center のユーザーは AWS Control Tower 管理者権限を持ち、AWSControlTowerAdmins グループに属している必要があります。その場合は、更新を再試行してください。

新しいアカウントのプロビジョニングに失敗する

この問題が発生した場合は、以下の一般的な原因を確認します。

アカウントのプロビジョニングフォームに入力した際に、次を行った可能性があります。
  • tagOptions を指定した

  • SNS 通知を有効化した

  • プロビジョニング済み製品の通知を有効化した

これらのオプションを指定せずに、アカウントのプロビジョニングを再試行してください。詳細については、「AWS Service Catalog Account Factory でアカウントをプロビジョニングする 」を参照してください。

その他の一般的な失敗の原因:
  • プロビジョニングされた製品プランを作成した場合 (リソースの変更を表示するため)、アカウントのプロビジョニングが無期限に [In progress] (進行中) 状態のままになることがあります。

  • AWS Control Tower の他の設定変更が進行中に Account Factory で新しいアカウントを作成しようすると、作成は失敗します。例えば、OU にコントロールを追加するプロセスの進行中にアカウントをプロビジョニングしようとすると、Account Factory にエラーメッセージが表示されます。

AWS Control Tower で前のアクションのステータスを確認するには
  • AWS [CloudFormation] > [StackSets] に移動します。

  • AWS Control Tower と関連する各スタックセットをチェックします (プレフィックス: 「AWSControlTower」)。

  • まだ実行中の AWS CloudFormation StackSets オペレーションを探します。

アカウントのプロビジョニングに 1 時間以上かかる場合は、プロビジョニングプロセスを終了し、もう一度試してください。

既存のアカウントを登録できない

既存の AWS アカウントを 1 回登録しようとしたときに登録が失敗した場合、2 回目に試行すると、スタックセットが存在することを示すエラーメッセージが表示されることがあります。続行するには、プロビジョニングされた製品を Account Factory から削除する必要があります。

最初の登録が失敗した原因が、アカウントに AWSControlTowerExecution ロールを作成し忘れていたことである場合は、表示されるエラーメッセージで、ロールを作成するように指示されます。ただし、ロールを作成しようとすると、AWS Control Tower がロールを作成できなかったという別のエラーメッセージが表示されることがあります。このエラーは、プロセスが部分的に完了しているために発生します。

この場合、既存のアカウントの登録に進む前に、2 つの回復手順を実行する必要があります。まず、 AWS Service Catalog コンソールを使用して Account Factory でプロビジョニングされた製品を終了する必要があります。次に、 AWS Organizations コンソールを使用して、OU からアカウントを手動で移動し、ルートに戻す必要があります。その後、アカウントに AWSControlTowerExecution ロールを作成し、[Enroll account] (アカウントの登録) フォームに再度入力します。

登録に失敗するもう 1 つの原因として、アカウントに既存の AWS Config リソースがあることが考えられます。その場合は、「既存の AWS Config リソースを持つアカウントを登録する」を参照して、既存のリソースを変更する方法の手順を確認してください。

Account Factory アカウントを更新できない

アカウントの状態が矛盾している場合、Account Factory または から正常に更新することはできません AWS Service Catalog。

ケース 1: 以下のようなエラーメッセージが表示されることがあります。

AWS Control Tower could not baseline VPC in the managed account because of existing resource dependencies.

一般的な原因: AWS Control Tower は、初期プロビジョニング中に常に AWS デフォルト VPC を削除します。アカウントに AWS デフォルト VPC を使用するには、アカウントの作成後に VPC を追加する必要があります。AWS Control Tower には、 AWS のデフォルト VPC に代わる独自のデフォルト VPC があります。ただし、チュートリアルで示されているように Account Factory を設定しない限り、AWS Control Tower によって VPC はまったくプロビジョニングされません。この場合、アカウントに VPC はありません。 AWS デフォルト VPC を使用する場合は、その VPC を再追加する必要があります。

ただし、AWS Control Tower は AWS デフォルトの VPC をサポートしていません。その種の VPC をデプロイすると、アカウントは Tainted 状態になります。その状態にある場合、アカウントを更新することはできません AWS Service Catalog。

実行するアクション: 追加したデフォルト VPC を削除する必要があります。これによりアカウントを更新できるようになります。

注記

Tainted 状態になると、未更新のアカウントは属する先の OU でコントロールを有効にできないという問題が発生する場合があります。

ケース 2: 以下のようなエラーメッセージが表示されることがあります。

AWS Control Tower detects that your enrolled account has been moved to a new organizational unit.

一般的な原因: アカウントを登録済みの OU から別の OU に移動しようとしましたが、古い AWS Config ルールは残ります。アカウントが不整合な状態になっています。

実行するアクション:

アカウントの移動が意図されていた場合:
  • Service Catalog のアカウントを終了します。

  • もう一度アカウントを登録してください。

  • コンテキスト/影響: デプロイされた AWS Config ルールが、送信先 OU によって指定された設定と一致しません。

  • AWS Config ルールが以前の OU から残ると、意図しない支出が発生する可能性があります。

  • リソース名の競合により、アカウントを再登録または更新しようとすると失敗します。

アカウントの移動が意図されていなかった場合:
  • アカウントを元の OU に戻します。

  • Service Catalog からアカウントを更新します。

  • 起動パラメータに、アカウントの元の OU を入力します。

  • コンテキスト/インパクト: アカウントが元の OU に戻らない場合、アカウントの状態は新しい OU によって指示されたコントロールと一致しません。

  • アカウントの更新は、以前の OU に関連付けられた AWS Config ルールが削除されないため、有効な修復ではありません。

ランディングゾーンを更新できない

更新が失敗しても、AWS Control Tower は以前のランディングゾーンバージョンにロールバックしません。ランディングゾーンが不確定な状態になる場合があります。その場合は、 AWS サポートにお問い合わせください。

ランディングゾーンの更新は、いくつかの理由で失敗することがあります。

  • 前提条件が満たされていない

  • AWS Config リソースが特定のアカウントに存在する

  • 閉鎖されたアカウントが存在する

前提条件が満たされていない

ランディングゾーンの更新時には、ランディングゾーンの設定時と同じ前提条件を満たす必要があります。更新の前に、起動前チェックを確認してください。

AWS Config リソースがセキュリティ OU アカウントに存在する

監査およびログアーカイブアカウントに AWS Config リソースを追加しないでください。ランディングゾーンの更新プロセスは、これらのリソースが存在する状態では完了できません。これらの制限は、アカウントを登録したり、ランディングゾーンを初めて設定したりする場合の制限と似ています。詳細については、「既存の AWS Config リソースを持つアカウントを登録する」を参照してください。

閉鎖されたアカウントが存在する

アカウントが [Closed] (閉鎖) または [Suspended] (一時停止) 状態の場合は、ランディングゾーンを更新しようとすると問題が発生する可能性があります。ランディングゾーンの更新を実行する前に、クローズされたすべてのアカウントのプロビジョニング済み製品を削除する必要があります。

AWS Service Catalog プロビジョニングされた製品ページに、次のようなエラーメッセージが表示されることがあります。

AWSControlTowerExecution role can't be assumed on the account.

一般的な原因: プロビジョニング済み製品を削除せずにアカウントを一時停止しました。

実行するアクション: このエラーが表示された場合は、次の 2 つのオプションがあります。

  1. AWS サポートに連絡してアカウントを再度開き、プロビジョニング済み製品を削除してから、アカウントを再度閉鎖します。

  2. アカウント閉鎖のために孤立した StackSets からリソースを削除します。(このオプションは、削除しない [Current] (最新) 状態のインスタンスが StackSets にある場合にのみ使用できます。)

StackSets からリソースを削除するには、閉鎖したアカウントごとにこれを行います。
  • AWS Control Tower の各 StackSets にアクセスし、閉鎖したアカウントのすべてのリージョンから StackInstances を削除します。

  • 重要: [Retain Stack] (スタックの保持) オプションを選択すると、StackSet はスタックインスタンスのみを削除します。StackSet は閉鎖したアカウントからロールを引き受けることができないため、AWSControlTowerExecution ロールを引き受けようとした場合は失敗し、エラーメッセージが表示されます。

が言及する失敗エラー AWS Config

AWS Control Tower でサポートされている AWS リージョンで AWS Config が有効になっている場合、事前チェックが失敗したため、エラーメッセージが表示されることがあります。メッセージは、根本的な動作が原因で、問題を適切に説明していないように見える場合があります AWS Config。

次のいずれかに類似したエラーメッセージが表示される場合があります。
  • AWS Control Tower cannot create an AWS Config delivery channel because one already exists. To continue, delete the existing delivery channel and try again
.

  • AWS Control Tower cannot create an AWS Config configuration recorder because one already exists. To continue, delete the existing delivery channel and try again
.

一般的な原因: AWS アカウントで AWS Config サービスを有効にすると、デフォルトの命名を使用して設定レコーダーと配信チャネルが作成されます。コンソールから AWS Config サービスを無効にすると、設定レコーダーや配信チャネルは削除されません。これらは CLI を使用して削除するか、AWS Control Tower で使用できるように変更する必要があります。AWS Control Tower でサポートされているいずれかのリージョンで AWS Config サービスが有効になっている場合、このエラーが発生する可能性があります。

アカウントに既存の AWS Config リソースがある場合は、「既存の AWS Config リソースを持つアカウントを登録する」を参照して、既存のリソースを変更する手順を確認してください。

実行するアクション: サポートされているすべてのリージョンで、設定レコーダーと配信チャネルを削除します。 AWS Config を無効にするだけでは不十分です。設定レコーダーと配信チャネルは CLI を使用して削除する必要があります。CLI から設定レコーダーと配信チャネルを削除した後、もう一度 AWS Control Tower の起動とアカウントの登録を試すことができます。

プロビジョニング済み製品をデプロイしようとしている場合は、再試行する前にプロビジョニング済み製品を削除する必要があります。そうしないと、以下のようなエラーメッセージが表示されることがあります。

  • An error occurred (InvalidParametersException) when calling the ProvisionProduct operation: A stack named Stackname already exists.

メッセージでは、Stackname がスタック名を指定します。

設定レコーダーと配信チャネルのステータスを判断するために使用できる AWS Config CLI コマンドの例を次に示します。

表示コマンド:

  • aws configservice describe-delivery-channels

  • aws configservice describe-delivery-channel-status

  • aws configservice describe-configuration-recorders

  • The normal response is something like "name": "default"

削除コマンド:

  • aws configservice stop-configuration-recorder --configuration-recorder-name NAME-FROM-DESCRIBE-OUTPUT

  • aws configservice delete-delivery-channel --delivery-channel-name NAME-FROM-DESCRIBE-OUTPUT

  • aws configservice delete-configuration-recorder --configuration-recorder-name NAME-FROM-DESCRIBE-OUTPUT

詳細については、 AWS Config ドキュメントを参照してください。

起動パスが見つからないというエラー

新しいアカウントを作成しようとすると、次のようなエラーメッセージが表示されることがあります。

No launch paths found for resource: prod-dpqqfywxxxx

このエラーメッセージは AWS Service Catalog、AWS Control Tower でのアカウントのプロビジョニングに役立つ統合サービスである によって生成されます。

一般的な原因:

  • ルートとしてログインしている可能性があります。AWS Control Tower では、ルートユーザーとしてログインしている場合のアカウントの作成はサポートされていません。

  • IAM Identity Center ユーザーが適切なアクセス許可グループに追加されていません。場合によっては、AWSAccountFactory (エンドユーザーアクセス用) または AWSServiceCatalogAdmins (管理者アクセス用) のいずれかのアクセス許可グループに IAM Identity Center ユーザーを追加する必要があります。

  • IAM ユーザーとして認証されている場合は、AWS Service Catalog ポートフォリオに追加して、適切なアクセス許可を付与する必要があります。

  • この問題は、正しい権限を持っているが、AWS Control Tower ドリフトが検出され、ドリフトの修復が必要な場合にも発生します。ほとんどの種類のドリフトを修復するには、[ランディングゾーン設定] ページで [リセット] を選択します。

許可不足のエラーを受け取った

特定の AWS Organizationsで特定の作業を実行するために必要な許可がアカウントにない可能性があります。次の種類のエラーが発生した場合は、IAM や IAM Identity Center の許可など、すべての許可領域をチェックして、それらの場所から許可が拒否されていないことを確認します。

You have insufficient permissions to perform AWS Organizations API actions.

試行するアクションが作業に必要で、関連する制限が見つからない場合は、システム管理者または AWS Support にお問い合わせください。

検出コントロールがアカウントで有効になっていない

最近 AWS Control Tower のデプロイを新しい AWS リージョンに拡張した場合、新しく適用された検出コントロールは、AWS Control Tower によって管理される OUs 内の個々のアカウントが更新されるまで、どのリージョンで作成した新しいアカウントにも有効になりません。既存のアカウントにある既存の検出コントロールはまだ有効です。

アカウントを更新する前に検出コントロールを有効にしようとすると、次のようなエラーメッセージが表示されることがあります。

AWS Control Tower can't enable the selected control on this OU. AWS Control Tower cannot apply the control on the OU ou-xxx-xxxxxxxx, because child accounts have dependencies that are missing. Update all child accounts under the OU, then try again.

実行するアクション: アカウントの更新。

AWS Control Tower コンソールからアカウントを更新するには、「AWS Control Tower の OU とアカウントを更新する場合」を参照してください。

複数の個々のアカウントをプログラムで更新するには、 の APIs AWS Service Catalog と CLI AWS を使用して更新を自動化できます。更新プロセスにアプローチする方法の詳細については、こちらの「動画チュートリアル」を参照してください。 動画で説明されている ProvisionProduct API の代わりに UpdateProvisionedProduct API を使用できます。

それでもアカウントで検出コントロールが有効にならない場合は、AWS Support にお問い合わせください。

AWS Organizations API によって返されるレート超過エラー

考えられる原因

AWS Control Tower が毎日のスキャンを実行して SCP がドリフトしているかどうかを確認している間、ワークロードが実行されていました。

従うべき手順

API スロットリングまたは rate exceeded エラーが発生した場合は、次の手順を試してください。

  • ワークロードを別のタイミングで実行します。(AWS Control Tower が監査スキャンを実行するタイミングを確認するには、リージョン別の AWS Control Tower SCP 不変スキャンのスケジュールを参照してください。)

  • HTTP 経由で API APIs を直接呼び出す場合: AWS SDK を使用すると、失敗したアクションが自動的に再試行されます。

  • Service Quotas と AWS Support を通じて制限の引き上げをリクエストします。

Elastic Beanstalk での API スロットリングのトラブルシューティング手順の例については、https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-api-throttling-errors/ を参照してください。

ある AWS Control Tower ランディングゾーンから別の AWS Control Tower ランディングゾーンに Account Factory アカウントを直接移動できない

警告

このプラクティスは、対象となるアカウント登録の前提条件を満たしていません。なぜなら、対象となるアカウントは同じ AWS 組織全体に属していなければならず、各組織にはランディングゾーンが 1 つしかない可能性があるためです。このアクションを実行しようとして、複数のエラーメッセージが表示された場合には、次の情報が参考になる可能性があります。

Account Factory を使用してプロビジョニングしたアカウントを、別の管理アカウントの下にある AWS Control Tower が管理する別のランディングゾーンに移動するには、すべての IAM ロールとそのアカウントに関連付けられているスタックを元の OU から削除する必要があります。これらのリソースを、アカウントがデプロイされているすべてのリージョンから削除します。

注記

リソースを削除する最善の方法は、元の OU でアカウントのプロビジョニングを解除してから、リソースを移動させることです。

リソースを削除しないと、新しい OU への登録は失敗します。1 つ以上のエラーメッセージが表示されることがあり、アカウントがデプロイされたすべてのリージョンから残りのロールとスタックが削除されるまで、同様のエラーメッセージが表示され続けます。

エラーメッセージが表示されるたびに、新しい OU からアカウントを削除し、エラーメッセージの対象となる古いリソースを削除してから、アカウントを新しい OU に戻す必要があります。削除と削除のこのプロセスは、残りのすべてのリソース、アカウントがデプロイされたすべてのリージョンについて、10 回または 20 回繰り返す必要があります。このようなエラーが繰り返し発生するのは、IAM ロールの削除を防止する SCP を使用して OU にアカウントがプロビジョニングされたためです。再試行する前に、アカウントのリソースをすべて削除することで、回復プロセスを短縮できます。

以下の例は、削除されていないロールとスタックが残っている場合に表示される可能性のある失敗に関するメッセージの種類を示しています。ほとんどの場合、古いリソースが残っている限り、アカウントを登録しようとするたびに、これらのメッセージのいずれかが表示されます。

この例では、リソース ID 文字列の値が変更されています。これらの値は、表示されるエラーメッセージでは同じにはなりません。次の例に示すようなメッセージが表示されます。

  • AWS Control Tower cannot create the IAM role aws-controltower-AdministratorExecutionRole because the role already exists. To continue, delete the existing IAM role and try again.

  • AWS Control Tower cannot create the IAM role aws-controltower-ConfigRecorderRole because the role already exists. To continue, delete the existing IAM role and try again.

  • AWS Control Tower cannot create the IAM role aws-controltower-ForwardSnsNotificationRole because the role already exists. To continue, delete the existing IAM role and try again.

または、次のようなスタックセットの失敗に関するエラーメッセージが表示されることがあります。

  "Error\":\"StackSetFailState\", \"Cause\":\"StackSetOperation on AWSControlTowerBP-BASELINE-CLOUDWATCH with id 8aXXXXf5-e0XX-4XXa-bc4XX-dXXXXXee31 has reached SUCCEEDED state but has 1 NON-CURRENT stack instances; here is the summary :{ StackSet Id: AWSControlTowerBP-BASELINE-CLOUDWATCH:40XXXbf2-Xead-46a1-XXXa-eXXXXecb2ee2, Stack instance Id: arn:aws:cloudformation:eu-west-1:1X23456789XX: stack/StackSet-AWSControlTowerBP-BASELINE-CLOUDWATCH-4feXXXXXX-ecXX-XXc6-bXXX-4ae678/4feXXXXXX-ecX-4ae123458, Status: OUTDATED, Status Reason: ResourceLogicalId:ForwardSnsNotification, ResourceType:AWS::Lambda::Function, ResourceStatusReason:aws-controltower-NotificationForwarder already exists in stack arn:aws:cloudformation:eu-west-1:1X23456789XX: stack/StackSet-AWSControlTowerBP-BASELINE-CLOUDWATCH-4feXXXXXX-ecXX-XXc6-bXXX-4ae678/4feXXXXXX-ecX-4ae123458.

残りのリソースをすべて最初の OU から削除すると、アカウントを新しい OU に招待したり、プロビジョニングしたり、登録したりできるようになります。

AWS サポート

既存のメンバーアカウントを別のサポートプランに移動する場合は、ルートアカウントの認証情報を使用して各アカウントにサインインし、プランを比較して、希望するサポートレベルを設定できます。

サポートプランを変更するときは、MFA とアカウントのセキュリティの連絡先を更新することをお勧めします。