トラブルシューティング - 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 Identity Center の IAM ユーザーまたはユーザーは、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 を使用するには、アカウントの作成後に追加する必要があります。AWS Control Tower には、AWS Control Tower が VPC AWS をプロビジョニングしないように、チュートリアルで示されているように Account Factory を設定しない限り、デフォルトの VPC に代わる独自のデフォルト 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 した からリソースを削除します。(このオプションは、削除していない現在の状態のインスタンスが StackSets にある場合にのみ使用できます)。

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

  • 重要: スタックの保持 オプションを選択すると、 はスタックインスタンスのみ 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 ユーザーが適切なアクセス許可グループに追加されていません。IAM Identity Center ユーザーを AWSAccountFactory (エンドユーザーアクセス用) または AWSServiceCatalogAdmins (管理者アクセス用) のいずれかのアクセス許可グループに追加する必要がある場合があります。

  • 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 と AWS CLI を使用して更新を自動化できます。更新プロセスにアプローチする方法の詳細については、こちらの「動画チュートリアル」を参照してください。 ビデオに示されている UpdateProvisionedProduct API の代わりに ProvisionProduct API を使用できます。

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

AWS Organizations API から返されたレート超過エラー

考えられる原因

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

従うべき手順

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

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

  • HTTP 経由で 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 回繰り返す removing-and-deleting 必要があります。このようなエラーが繰り返し発生するのは、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 とアカウントのセキュリティの連絡先を更新することをお勧めします。