

# Amazon Elastic Container Service のアイデンティティとアクセスのトラブルシューティング
<a name="security_iam_troubleshoot"></a>

次の情報は、Amazon ECS と IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復に役立ちます。

**Topics**
+ [Amazon ECS でアクションを実行する権限がない](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole を実行する権限がありません](#security_iam_troubleshoot-passrole)
+ [自分の AWS アカウント 以外のユーザーに Amazon ECS リソースへのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)
+ [Amazon ECS マネージドインスタンスのインスタンスプロファイルに問題がある](#security_iam_instance-profile)
+ [その他のトラブルシューティングリソース](#security_iam_troubleshoot-additional-errors)

## Amazon ECS でアクションを実行する権限がない
<a name="security_iam_troubleshoot-no-permissions"></a>

アクションを実行する権限がないというエラーが表示された場合は、そのアクションを実行できるようにポリシーを更新する必要があります。

次のエラー例は、`mateojackson` IAM ユーザーがコンソールを使用して、ある `{{my-example-widget}}` リソースに関する詳細情報を表示しようとしたことを想定して、その際に必要な `ecs:{{GetWidget}}` アクセス許可を持っていない場合に発生するものです。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: ecs:{{GetWidget}} on resource: {{my-example-widget}}
```

この場合、`ecs:{{GetWidget}}` アクションを使用して `{{my-example-widget}}` リソースへのアクセスを許可するように、`mateojackson` ユーザーのポリシーを更新する必要があります。

サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。

## iam:PassRole を実行する権限がありません
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して Amazon ECS にロールを渡せるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールやサービスリンクロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

以下の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して Amazon ECS でアクションを実行しようする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与されたアクセス許可が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。

Amazon ECS マネージドインスタンスを使用している時にこのエラーが発生した場合、そのインスタンスロール名が、マネージドポリシーで義務付けられている命名規則に従っていない可能性があります。詳細については、「[Amazon ECS マネージドインスタンスのインスタンスプロファイルに問題がある](#security_iam_instance-profile)」を参照してください。

## 自分の AWS アカウント 以外のユーザーに Amazon ECS リソースへのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください:
+ Amazon ECS がこれらの機能をサポートしているかどうかについては、「[IAM を使用するAmazon Elastic Container Service](security_iam_service-with-iam.md)」を参照してください。
+ 所有している AWS アカウント 全体のリソースへのアクセス権を提供する方法については、*IAM ユーザーガイド* の [所有している別の AWS アカウント へのアクセス権を IAM ユーザーに提供](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) を参照してください。
+ サードパーティの AWS アカウント にリソースへのアクセス権を提供する方法については、「*IAM ユーザーガイド*」の「[サードパーティが所有する AWS アカウント へのアクセス権を付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)」を参照してください。
+ ID フェデレーションを介してアクセスを提供する方法については、*IAM ユーザーガイド* の [外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) を参照してください。
+ クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、*IAM ユーザーガイド* の [IAM でのクロスアカウントのリソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## Amazon ECS マネージドインスタンスのインスタンスプロファイルに問題がある
<a name="security_iam_instance-profile"></a>

`AmazonECSInfrastructureRolePolicyForManagedInstances` マネージドポリシーを使用する場合、インスタンスロール名は `ecsInstanceRole` で始まる必要があります。ポリシーの範囲は `iam:PassRole` から `arn:aws:iam::*:role/ecsInstanceRole*` であるため、名前が一致しない場合、タスクの起動時に認証エラーが発生します。

これは `AWS::IAM::Role` リソースから `RoleName` を省略する場合に CloudFormation に一般的です。その理由は、CloudFormation によってポリシー条件に合致しない `MyStack-InstanceRole-ABC123` のような名前が自動生成されるためです。

この問題を解決するには、次のいずれかを実行します。
+ 名前がマネージドポリシーに合致するように、`AWS::IAM::Role` リソースに `RoleName: ecsInstanceRole` を追加します。
+ インスタンスロール ARN を対象とするインフラストラクチャロールに明示的な `iam:PassRole` インラインポリシーを追加します。

CloudFormation テンプレートと詳細な手順については、「[CloudFormation を使用してインスタンスプロファイルを作成する](managed-instances-instance-profile.md#create-instance-profile-cfn)」を参照してください。

## その他のトラブルシューティングリソース
<a name="security_iam_troubleshoot-additional-errors"></a>

次のページに、エラーコードに関する情報が記載されています。
+  [Amazon ECS の停止したタスクのエラーメッセージ](stopped-task-error-codes.md) 
+  [Amazon ECS のサービスイベントメッセージを表示する](service-event-messages.md) 