共有 AWS Cloud Map 名前空間を使用した Amazon ECS Service Connect のトラブルシューティング - Amazon Elastic Container Service

共有 AWS Cloud Map 名前空間を使用した Amazon ECS Service Connect のトラブルシューティング

次の情報を使用して、共有 AWS Cloud Map 名前空間と Service Connect の問題をトラブルシューティングします。エラーメッセージの検索の詳細については、「Amazon ECS のトラブルシューティング」を参照してください。

アクセス許可の問題に関連するエラーメッセージは、アクセス許可が欠落していることが原因で、または名前空間へのアクセスが取り消された場合に表示されます。

重要

Service Connect が名前空間で適切に動作するには、AWSRAMPermissionCloudMapECSFullPermission マネージドアクセス許可を使用して名前空間を共有する必要があります。

エラーメッセージは、次のいずれかの形式で表示されます。

<OperationName> オペレーションを呼び出すときにエラー (ClientException) が発生しました: ユーザー: arn:aws:iam::<account-id>:user/<user-name> にはリソース: <ResourceArn> に対して <ActionName> を実行するための権限が付与されていません: これは、リソースベースのポリシーで <ActionName> アクションが許可されていないためです

この形式のエラーメッセージは、次のシナリオにおいて生成される可能性があります。

クラスターの作成または更新の失敗

これらの問題は、CreateClusterUpdateCluster などの Amazon ECS オペレーションが AWS Cloud Map アクセス許可が欠落しているために失敗した場合に発生します。このオペレーションには、次の AWS Cloud Map アクションに対するアクセス許可が必要です。

  • servicediscovery:GetNamespace

リソース共有の招待がコンシューマーアカウントで承諾され、Service Connect 設定で正しい名前空間 ARN が使用されていることを確認します。

サービスの作成または更新の失敗

これらの問題は、CreateServiceUpdateService などの Amazon ECS オペレーションが AWS Cloud Map アクセス許可が欠落しているために失敗した場合に発生します。このオペレーションには、次の AWS Cloud Map アクションに対するアクセス許可が必要です。

  • servicediscovery:CreateService

  • servicediscovery:GetNamespace

  • servicediscovery:GetOperation (新しい AWS Cloud Map サービスを作成する場合)

  • servicediscovery:GetService (AWS Cloud Map サービスが既に存在する場合)

リソース共有の招待がコンシューマーアカウントで承諾され、Service Connect 設定で正しい名前空間 ARN が使用されていることを確認します。

ListServicesByNamespace オペレーションが失敗する

この問題は、Amazon ECS ListServicesByNamespace オペレーションが失敗した場合に発生します。このオペレーションには、次の AWS Cloud Map アクションに対するアクセス許可が必要です。

  • servicediscovery:GetNamespace

この問題を解決するには。

  • コンシューマーアカウントに servicediscovery:GetNamespace アクセス許可が付与されていることを確認します。

  • 名前ではなく API を呼び出す場合は、名前空間 ARN を使用します。

  • リソース共有がアクティブであり、招待が承諾されていることを確認します。

ユーザー: <iam-user> は、ID ベースのポリシーで明示的に拒否されたリソース: <ResourceArn> に対して <ActionName> を実行することを承認されていません。

この形式のエラーメッセージは、次のシナリオにおいて生成される可能性があります。

サービスの削除が失敗し、DRAINING 状態のままになる

この問題は、名前空間へのアクセスが取り消されたことで servicediscovery:DeleteService アクセス許可がなくなり、それが原因で Amazon ECS DeleteService オペレーションが失敗する場合に発生します。サービスは最初は正常に削除されたように見えますが、DRAINING 状態でスタックします。このエラーメッセージは Amazon ECS サービスイベントとして表示されます。

この問題を解決するには、名前空間所有者が名前空間をコンシューマーアカウントと共有して、サービスの削除を完了できるようにする必要があります。

サービスのタスクが実行に失敗する

この問題は、アクセス許可が欠落しているためにタスクが開始されない場合に発生します。このエラーメッセージは、停止したタスクエラーとして表示されます。詳細については、「Amazon ECS の停止したタスクのエラーを解決する」を参照してください。

タスクを実行するには、次の AWS Cloud Map アクションが必要です。

  • servicediscovery:GetOperation

  • servicediscovery:RegisterInstance

コンシューマーアカウントに必要なアクセス許可が付与されており、共有名前空間にアクセスできることを確認します。

タスクがクリーンに停止しないか、DEACTIVATING または DEPROVISIONING の状態のままになる

この問題は、アクセス許可が欠落しているためにシャットダウン中にタスクが AWS Cloud Map サービスから登録解除できなかったことが原因で発生します。エラーは、DescribeTasks API を使用して取得できるタスクアタッチメントに statusReason として表示されます。詳細については、「Amazon Elastic Container Service API リファレンス」の「DescribeTasks」を参照してください。

タスクを停止するには、次の AWS Cloud Map アクションが必要です。

  • servicediscovery:DeregisterInstance

  • servicediscovery:GetOperation

共有名前空間へのアクセスが取り消された場合、名前空間へのアクセスが復元されるまでタスクは DEACTIVATING または DEPROVISIONING の状態のままになる可能性があります。名前空間所有者に名前空間へのアクセスの復元をリクエストします。