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

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

トラブルシューティング

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

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

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

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

  • AWS CloudFormation StackSet 失敗。

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

実行するアクション

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

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

実行するアクション

AWS Control Tower を起動する前に、 AWS 必要なセキュリティトークンサービス (STS) エンドポイントリージョンをすべて有効にしてください

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

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

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

Unable to access Control Tower

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

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

実行する手順

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

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

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

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

  • SNS 通知を有効化した

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

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

その他の一般的な失敗の原因:
  • プロビジョニングされた製品プランを作成した場合 (リソースの変更を表示するため)、アカウントのプロビジョニングが無期限に [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 つの回復手順を実行する必要があります。まず、Account Factory でプロビジョニングされた製品をコンソールから終了する必要があります。 AWS Service Catalog 次に、 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 には、デフォルトの VPC AWS に代わる独自のデフォルト VPC があります。ただし、ウォークスルーで示した方法でAccount Factory を設定しない限り、つまり AWS Control Tower は VPC をまったくプロビジョニングしません。この場合、アカウントに VPC はありません。デフォルト VPC を使用する場合は、 AWS そのデフォルトの 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 は以前のlanding zone バージョンにロールバックしません。landing zone が不確定な状態になっている場合があります。その場合は、サポートにお問い合わせください AWS 。

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

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

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

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

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

landing zone 更新は、ランlanding zone 設定と同じ前提条件を満たす必要があります。更新する前に、リリース前のチェックを確認してください。

AWS Config リソースはセキュリティ OU アカウントにあります。

AuditLog AWS Config のアーカイブアカウントにはリソースを追加しないでください。landing zone 更新プロセスは、これらのリソースが存在する状態では完了できません。これらの制限は、アカウントを登録したり、初めてlanding zone を設定したりする場合と同様です。詳細については、「AWS Config 既存のリソースがあるアカウントの登録」を参照してください。

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

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

AWS Service Catalog プロビジョニング済みプロダクトページに、次のようなエラーメッセージが表示される場合があります。

AWSControlTowerExecution role can't be assumed on the account.

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

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

  1. AWS Support に連絡してアカウントを再度開き、プロビジョニングされた製品を削除してから、アカウントを再度閉じます。

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

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

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

と記載されている失敗エラー AWS Config

AWS Control Tower AWS Config AWS がサポートするリージョンでが有効になっている場合、事前チェックが失敗したためにエラーメッセージが表示されることがあります。の根本的な動作が原因で、メッセージでは問題を十分に説明していないように見える場合があります。 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 Config AWS アカウントでサービスが有効になると、設定レコーダーと配信チャネルが既定の名前で作成されます。 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 ユーザーを、(エンドユーザーアクセス用) または AWSAccountFactoryAWSServiceCatalogAdmins(管理者アクセス用) のいずれかの権限グループに追加する必要がある場合があります。

  • 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 が管理する OU 内の個々のアカウントが更新されるまで、どのリージョンで作成した新しいアカウントにも新しく適用された探偵コントロールは有効になりません。既存のアカウントにある既存の検出コントロールはまだ有効です。

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

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 とアカウントを更新する場合」を参照してください。

複数の個別のアカウントをプログラムで更新するには、からの API AWS Service Catalog と AWS CLI を使用して更新を自動化できます。更新プロセスにアプローチする方法の詳細については、こちらの「動画チュートリアル」を参照してください。 動画で紹介されている UpdateProvisionedProductAPI を ProvisionProductAPI に置き換えることができます。

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

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

考えられる原因

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

従うべき手順

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

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

  • HTTP 経由で API を直接呼び出す場合: 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 Support

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

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