

# アクセス拒否エラーメッセージをトラブルシューティングする
<a name="troubleshoot_access-denied"></a>

AWS Identity and Access Management で発生したアクセス拒否エラーを識別し、診断して解決する場合は、以下の情報を参照すると便利です。アクセス拒否エラーは、AWS が認可リクエストを明示的または暗黙的に拒否した場合に表示されます。
+ *明示的な拒否*は、特定の AWS アクションに対する `Deny` ステートメントがポリシーに含まれている場合に発生します。
+ 該当する `Deny` ステートメントがなく、該当する `Allow` ステートメントもない場合に、暗黙的な拒否が発生します。IAM ポリシーはデフォルトで IAM プリンシパルを拒否するため、ポリシーではプリンシパルにアクションの実行を明示的に許可する必要があります。それ以外の場合、ポリシーは暗黙的にアクセスを拒否します。詳細については、「[明示的な拒否と暗黙的な拒否の違い](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md)」を参照してください。

サービスやリソースにリクエストを送信するときに、複数のポリシーがそのリクエストに適用されることがあります。エラーメッセージで指定されたポリシーだけでなく、適用可能なポリシーをすべて確認してください。
+ ポリシータイプが同じである複数のポリシーがリクエストを拒否した場合、アクセス拒否エラーメッセージには評価されたポリシーの番号が指定されません。
+ 複数のポリシータイプが原因で認可リクエストが拒否された場合、AWS は、これらのポリシータイプのうち 1 つだけをエラーメッセージに含めます。

**重要**  
**AWS へのサインインに問題がある場合** ユーザーのタイプに応じて正しい [AWS サインインページ](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html)が表示されていることを確認します。AWS アカウントのルートユーザー (アカウント所有者) の場合は、AWS アカウント の作成時に設定した認証情報を使用して AWS にサインインできます。IAM ユーザーの場合、アカウント管理者から AWS サインイン認証情報を付与してもらうことができます。サポートをリクエストする必要がある場合は、このページのフィードバックリンクを使用しないでください。フォームは、サポート ではなく AWS ドキュメントチームに届きます。代わりに、「[お問い合わせ](https://aws.amazon.com/contact-us/)」ページで **[AWS アカウントにまだログインできない]** を選択してから、表示されているサポートオプションのいずれかを選択します。

## AWS サービスに要求を送信すると "アクセス拒否" が発生する
<a name="troubleshoot_general_access-denied-service"></a>
+ エラーメッセージに、アクセスを拒否するポリシーの種類と [Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) が含まれているかどうかを確認します。このケースでは、指定されたポリシーでこのアクションの拒否ステートメントをチェックします。ポリシータイプは指定されているもののポリシー ARN がない場合は、そのポリシータイプのトラブルシューティングの問題に焦点を当てます。指定されたタイプのポリシーで、このアクションの拒否ステートメントをチェックします。エラーメッセージに、アクセスを拒否するポリシーの種類が記載されていない場合は、このセクションの残りのガイドラインを参考にして、さらにトラブルシューティングを行ってください。
+ リクエストしたアクションとリソースを呼び出すアイデンティティベースのポリシーのアクセス許可を持っていることを確認します。条件が付けられている場合、要求を送信するにはそれらの条件も満たしている必要があります。IAM ユーザー、グループ、ロールのポリシーの表示や修正の詳細については、「[IAM ポリシーを管理する](access_policies_manage.md)」を参照してください。
+ AWS マネジメントコンソール から、アクションを実行する権限がないと通知された場合、管理者に問い合わせ、サポートを依頼する必要があります。管理者からサインイン資格情報またはサインインリンクが提供されました。

  以下のエラー例は、`mateojackson` IAM ユーザーがコンソールを使用して架空の `my-example-widget` リソースに関する詳細情報を表示しようとしているが、架空の `widgets:GetWidget` 許可がないという場合に発生します。

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

  この場合、Mateo は、`my-example-widget` アクションを使用して `widgets:GetWidget` リソースにアクセスできるように、ポリシーの更新を管理者に依頼する必要があります。
+ Amazon S3、Amazon SNS、Amazon SQS などの[リソースベースのポリシー](access_policies_identity-vs-resource.md)をサポートするサービスにアクセスしようとしていますか。その場合は、ポリシーでお客様がプリンシパルに指定されていて、アクセス権限を付与されていることを確認します。アカウント内のサービスにリクエストする場合は、アイデンティティベースのポリシーまたはリソースベースのポリシーを使用して、アクセス許可を付与することができます。別のアカウントのサービスにリクエストする場合は、アイデンティティベースのポリシーとリソースベースのポリシーの両方でアクセス許可を付与する必要があります。リソースベースのポリシーをサポートするサービスを確認するには、「[IAM と連携する AWS のサービス](reference_aws-services-that-work-with-iam.md)」を参照してください。
+ キーバリューのペアを持つ条件がポリシーに含まれている場合は、そのポリシーを慎重に確認します。この例には、[`aws:RequestTag/tag-key`](reference_policies_condition-keys.md) グローバル条件キー、AWS KMS [kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context)、および複数のサービスでサポートされている `ResourceTag/tag-key` 条件キーが含まれます。キー名が複数の結果に一致しないことを確認します。条件キー名では大文字と小文字が区別されないため、`foo` というキーを確認する条件は、`foo`、`Foo`、または `FOO` に一致します。リクエストに複数のキーバリューのペアが含まれていて、キー名の大文字と小文字のみが異なる場合、アクセスは予期せず拒否される可能性があります。詳細については、「[IAM JSON ポリシー要素Condition](reference_policies_elements_condition.md)」を参照してください。
+ [アクセス許可の境界](access_policies_boundaries.md)が設定されている場合は、アクセス許可の境界として使用されているポリシーでリクエストが許可されるかどうかを確認します。リクエストがアイデンティティベースのポリシーでは許可されるが、アクセス許可の境界では許可されない場合、リクエストは拒否されます。アクセス許可の境界は、IAM プリンシパル (ユーザーまたはロール) に付与できるアクセス許可の上限を設定します。リソースベースのポリシーは、アクセス許可の境界では制限されません。アクセス許可の境界は一般向けの機能ではありません。AWS によるポリシーの評価方法の詳細については、「[ポリシーの評価論理](reference_policies_evaluation-logic.md)」を参照してください。
+ 手動でリクエストに署名する ([AWS SDK](https://aws.amazon.com/developer/tools/) を使用しない) 場合は、正確に[リクエストに署名](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)していることを確認します。
+ [Amazon VPC エンドポイントポリシー](https://docs.aws.amazon.com//vpc/latest/privatelink/vpc-endpoints-access.html)を使用していて、AWS CloudTrail にログインしていないアクセス拒否エラーが発生した場合は、VPC エンドポイント所有者アカウントが呼び出し元のアカウントまたはターゲットロールアカウントと異なる可能性があります。

## 一時的な認証情報を使用して要求を送信すると "アクセス拒否" が発生する
<a name="troubleshoot_general_access-denied-temp-creds"></a>
+ まず、一時的な認証情報とは別の理由でアクセスが拒否されていないことを確認してください。詳細については、「[AWS サービスに要求を送信すると "アクセス拒否" が発生する](#troubleshoot_general_access-denied-service)」を参照してください。
+ サービスが一時的セキュリティ認証情報を受け入れることを確認します。「[IAM と連携する AWS のサービス](reference_aws-services-that-work-with-iam.md)」を参照してください。
+ リクエストが正しく署名されており、そのリクエストの形式が整っていることを確認します。詳細については、[ツールキット](https://aws.amazon.com/developer/tools/)ドキュメントまたは「[AWS リソースで一時的な認証情報を使用する](id_credentials_temp_use-resources.md)」を参照してください。
+ 一時的な認証情報が失効していないことを確認します。詳細については、「[IAM の一時的な認証情報](id_credentials_temp.md)」を参照してください。
+ IAM ユーザーまたはロールに正しいアクセス権限があるかどうかを確認します。一時的なセキュリティ認証情報のアクセス許可は IAM ユーザーまたはロールから取得されます。その結果、アクセス許可は、一時的な認証情報を引き受けたロールに付与されているものに制限されます。一時的なセキュリティ認証情報に対するアクセス許可の決定方法の詳細については、「[一時的なセキュリティ認証情報のアクセス許可](id_credentials_temp_control-access.md)」を参照してください。
+ ロールを引き受ける場合は、ロールセッションはセッションポリシーによって制限される場合があります。AWS STS を使用してプログラムで[一時的なセキュリティ認証情報をリクエストする](id_credentials_temp_request.md)場合は、オプションでインラインまたは管理[セッションポリシー](access_policies.md#policies_session)を渡すことができます。セッションポリシーは、ロールの一時認証情報セッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。`Policy` パラメータを使用して単一の JSON インラインセッションポリシードキュメントを渡すことができます。`PolicyArns` パラメータを使用して、最大 10 個の管理セッションポリシーを指定できます。結果として得られるセッションのアクセス許可は、ロールの ID ベースのポリシーとセッションポリシーの共通部分です。または、管理者またはカスタムプログラムから一時的な認証情報が提供されている場合は、アクセスを制限するためのセッションポリシーが含まれている可能性があります。
+ AWS STS フェデレーションユーザーの場合、セッションはセッションポリシーによって制限される場合があります。IAM ユーザーとして AWS にサインインしてフェデレーショントークンをリクエストすることで、フェデレーションユーザーのセッションを作成します。詳細については、「[カスタム ID ブローカーを通じた認証情報のリクエスト](id_credentials_temp_request.md#api_getfederationtoken)」を参照してください。フェデレーショントークンをリクエスト中に ID ブローカーがセッションポリシーに合格した場合、セッションはそれらのポリシーによって制限されます。結果として得られるセッションのアクセス許可は、IAM ユーザーの ID ベースのポリシーとセッションポリシーの共通部分です。セッションポリシーの詳細については、「[セッションポリシー](access_policies.md#policies_session)」を参照してください。
+ ロールを使用してリソースベースのポリシーのあるリソースへアクセスする場合は、ポリシーからロールにアクセス権限が付与されていることを確認します。例えば、次のポリシーではアカウント `MyRole` からの `111122223333` の `amzn-s3-demo-bucket` へのアクセスを許可しています。

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
      "Sid": "S3BucketPolicy",
      "Effect": "Allow",
      "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]},
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
    }]
  }
  ```

------

## Access Troubleshooter
<a name="access-troubleshooter"></a>

**注記**  
Access Troubleshooter は、単一アカウントおよび単一組織のシナリオで、すべてのリージョンのすべての AWS サービスで利用可能になりつつあります。データの豊富さは進化します。

Access Troubleshooter を使用して、アクセス拒否エラーをデバッグおよび解決できます。

Access Troubleshooter の機能は次のとおりです。
+ [リクエストと評価の詳細を表示する](#access-troubleshooter-request-details): プリンシパル、アクション、リソース、コンテキスト、評価結果。
+ [個々の認可評価を表示する](#access-troubleshooter-individual-evaluation): 個々のアクションとリソースペアの認可評価。
+ [すべてのポリシーと個々のステートメントを確認する](#access-troubleshooter-policy-statements): 評価されたすべてのポリシーと個々のステートメント、およびそれぞれの評価結果。

### Access Troubleshooter のアクセス許可
<a name="access-troubleshooter-permissions"></a>

Access Troubleshooter を使用するには、プリンシパルに `iam:TroubleshootAccess` アクセス許可がアタッチされている必要があります。このアクションを許可すると、評価されたすべてのポリシーのコンテキストキーとステートメントを含む、すべての認可コンテキストの詳細をプリンシパルが表示できるようになります。

次のポリシーの例では、必要なアクセス許可を付与します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:TroubleshootAccess",
            "Resource": "*"
        }
    ]
}
```

### Access Troubleshooter の使用
<a name="access-troubleshooter-using"></a>

アクセス拒否エラーを受け取ると、Access Troubleshooter で使用できるリンクと AuthorizationID を含むエラーメッセージが届きます。次の例は、アクセス拒否エラーメッセージを示しています。

```
An error occurred (AccessDenied) when calling the RestoreTableFromBackup operation: User: arn:aws:sts:012345678901:assumedRole/DatabaseDev/RestoreBackupSession is not authorized to perform: dynamodb:RestoreTableFromBackup with an explicit deny in an identity policy. Go to https://console.aws.amazon.com/iam/home#/access-troubleshooter for complete details, or call the iam:GetAuthorizationDetails API with the following authorization id: 67f1576b-af29-4c66-9b2b-10fd67516713
```

適切なアクセス許可がある場合は、コンソールで **[IAM でトラブルシューティング]** を選択し、新しい Access Troubleshooter タブを開くことができます。

または、AuthorizationID を使用して `iam:GetAuthorizationDetails` API を呼び出すこともできます。

```
aws iam get-authorization-details --authorization-id 67f1576b-af29-4c66-9b2b-10fd67516713
```

管理者で、開発者が AuthorizationID を提供する場合は、IAM コンソールに移動して AuthorizationID を入力して、認可コンテキストの詳細を取得できます。

### リクエストと評価の詳細を表示する
<a name="access-troubleshooter-request-details"></a>

Access Troubleshooter は、評価で考慮されたリクエストの詳細を提供します。試行したオペレーションまたは API コール、認可 ID、呼び出しを行ったプリンシパル、アクセスを試みたリソース、評価結果を確認できます。

### 個々の認可評価を表示する
<a name="access-troubleshooter-individual-evaluation"></a>

オペレーションを正常に呼び出すには、依存アクションを実行するための追加のアクセス許可が必要になる場合があります。例えば、DynamoDBで `RestoreTableFromBackup` を実行するには、`dynamodb:BatchWriteItem`、`dynamodb:DeleteItem`、`dynamodb:GetItem`、`dynamodb:PutItem`、`dynamodb:Query`、`dynamodb:Scan`、`dynamodb:UpdateItem` のアクセス許可が必要です。これらのアクションは、アクセスするリソースに対して評価されます。詳細については、「[サービス認可リファレンス](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)」を参照してください。

### すべてのポリシーと個々のステートメントを確認する
<a name="access-troubleshooter-policy-statements"></a>

多くの場合、複数のポリシーが認可に影響し、各ポリシーに複数のステートメントを含めることができます。Access Troubleshooter は、オペレーションの実行時に評価されるすべてのポリシーを一覧表示します。これらのポリシー内の個々のステートメントとそれぞれの評価結果を確認し、問題を効率的に解決するための完全なビューを提供できます。

## アクセス拒否エラーメッセージの例
<a name="access-denied-error-examples"></a>

ほとんどのアクセス拒否のエラーメッセージは、`User user is not authorized to perform action on resource because context` の形式です。この例では、*ユーザー*は、アクセスを拒否されたプリンシパルの ARN、*アクション*はこのポリシーが拒否するサービスアクション、*リソース*はこのポリシーが対象とするリソースの ARN です。*コンテキスト*フィールドには、アクセスを拒否されたポリシータイプについての追加のコンテキストが表示されます。アクセスを拒否したポリシーの ARN が含まれている場合もあります。

ポリシー内の `Deny` ステートメントによって明示的にポリシーが拒否された場合、AWS はアクセス拒否エラーメッセージに `with an explicit deny in a type policy` を含めます。このフレーズでは、次のようにポリシーの ARN を指定することもできます。`with an explicit deny in a type policy: policy ARN`

ポリシーが暗黙的に拒否された場合は、AWS はアクセス拒否エラーメッセージに文字列 `because no type policy allows the action action` を含めます。

**注記**  
AWS のサービスによっては、このアクセス拒否エラーメッセージ形式をサポートしていません。アクセス拒否エラーメッセージの内容は、認可リクエストを行うサービスによって異なる場合があります。

次の例では、アクセス拒否エラーメッセージの形式のタイプを示します。

### サービスコントロールポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-scp-examples-implicit"></a>

1. サービスコントロールポリシー (SCP) のアクションで、`Allow` ステートメントが欠けていないかを確認します。次の例では、`codecommit:ListRepositories` がアクションです。

1. `Allow` ステートメントを追加して、ポリシーを更新してください。詳細については、「*AWS Organizations ユーザーガイド*」の「[SCP の更新](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no service control policy allows the codecommit:ListRespositories action
```

### サービスコントロールポリシーによるアクセスの拒否 – 明示的な拒否
<a name="access-denied-scp-examples-explicit"></a>

1. ポリシー ARN がエラーメッセージで指定されている場合は、指定されたサービスコントロールポリシー (SCP) でアクションの `Deny` ステートメントをチェックします。以下の例では、アクションは `codecommit:ListRepositories` です。

1. エラーメッセージでポリシー ARN が指定されていない場合は、SCP でアクションの `Deny` ステートメントをチェックします。

1. `Deny` ステートメントを削除して、SCP を更新してください。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシーの更新](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy)」を参照してください。

ポリシー ARN を含むエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/service_control_policy/p-examplepolicyid123
```

ポリシー ARN を含まないエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy
```

### リソースコントロールポリシーによるアクセスの拒否 – 明示的な拒否
<a name="access-denied-rcp-examples-explicit"></a>

1. ポリシー ARN がエラーメッセージで指定されている場合は、指定されたリソースコントロールポリシー (RCP) でこのアクションの `Deny` ステートメントをチェックします。以下の例では、アクションは `secretsmanager:GetSecretValue` です。

1. エラーメッセージでポリシー ARN が指定されていない場合は、RCP でアクションの `Deny` ステートメントをチェックします。

1. `Deny` ステートメントを削除して、RCP を更新してください。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP) の更新](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy-rcp)」を参照してください。

ポリシー ARN を含むエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/resource_control_policy/p-examplepolicyid456
```

ポリシー ARN を含まないエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy
```

### VPC エンドポイントポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-vpc-endpoint-examples-implicit.title"></a>

1. 仮想プライベートクラウド (VPC) エンドポイントポリシーのアクションで、`Allow` ステートメントが欠落していないかを確認してください。次の例では、`codecommit:ListRepositories` がアクションです。

1. `Allow` ステートメントを追加して、VPC エンドポイントポリシーを更新します。詳細については、「*AWS PrivateLink ガイド*」の「[Update a VPC endpoint policy](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no VPC endpoint policy allows the codecommit:ListRepositories action
```

### VPC エンドポイントポリシーによるアクセスの拒否 – 明示的拒否
<a name="access-denied-vpc-endpoint-examples-explicit.title"></a>

1. 仮想プライベートクラウド (VPC) エンドポイントポリシーにあるアクションに対する明示的 `Deny` ステートメントがあるのかを確認してください。次の例では、`codedeploy:ListDeployments` がアクションです。

1. `Deny` ステートメントを削除して、VPC エンドポイントポリシーを更新してください。詳細については、「*AWS PrivateLink ガイド*」の「[VPC エンドポイントポリシーを更新する](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a VPC endpoint policy
```

### アクセス許可の境界によりアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-permissions-boundary-examples-implicit"></a>

1. アクセス許可の境界にあるアクションで、`Allow` ステートメントが欠落してないかを確認してください。次の例では、`codedeploy:ListDeployments` がアクションです。

1. IAM ポリシーに `Allow` ステートメントを追加して、アクセス許可の境界を更新してください。詳細については、「[IAM エンティティのアクセス許可境界](access_policies_boundaries.md)」および「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
because no permissions boundary allows the codedeploy:ListDeployments action
```

### アクセス許可の境界によりアクセスの拒否 – 明示的拒否
<a name="access-denied-permissions-boundary-examples-explicit"></a>

1. ポリシー ARN がエラーメッセージで指定されている場合は、指定されたアクセス許可の境界でこのアクションの `Deny` ステートメントをチェックします。以下の例では、アクションは `sagemaker:ListModels` です。

1. ポリシー ARN がエラーメッセージで指定されている場合は、プリンシパルにアタッチされたアクセス許可の境界でこのアクションの `Deny` ステートメントをチェックします。

1. IAM ポリシーから `Deny` ステートメントを削除して、アクセス許可の境界を更新してください。詳細については、「[IAM エンティティのアクセス許可境界](access_policies_boundaries.md)」および「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

ポリシー ARN を含むエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary: arn:aws:iam::123456789012:policy/DeveloperPermissionBoundary
```

ポリシー ARN を含まないエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary
```

### セッションポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-session-policy-examples-implicit"></a>

1. セッションポリシーにあるアクションで、`Allow` ステートメントが欠落していないかを確認してください。次の例では、`codecommit:ListRepositories` がアクションです。

1. `Allow` ステートメントを追加して、セッションポリシーを更新してください。詳細については、「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no session policy allows the codecommit:ListRepositories action
```

### セッションポリシーによるアクセスの拒否 – 明示的拒否
<a name="access-denied-session-policy-examples-explicit"></a>

1. ポリシー ARN がエラーメッセージで指定されている場合は、指定されたセッションポリシーでこのアクションの `Deny` ステートメントをチェックします。以下の例では、アクションは `codedeploy:ListDeployments` です。

1. エラーメッセージでポリシー ARN が指定されていない場合は、セッションポリシーでこのアクションの `Deny` ステートメントをチェックします。

1. `Deny` ステートメントを削除して、セッションポリシーを更新してください。詳細については、「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

ポリシー ARN を含むエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy: arn:aws:iam::123456789012:policy/DeveloperSessionPolicy
```

ポリシー ARN を含まないエラーメッセージ

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy
```

### リソースベースのポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-resource-based-policy-examples-implicit"></a>

1. リソースベースのポリシーにあるアクションで、`Allow` ステートメントが欠落してないかを確認してください。次の例では、`secretsmanager:GetSecretValue` がアクションです。

1. `Allow` ステートメントを追加して、ポリシーを更新してください。詳細については、「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
because no resource-based policy allows the secretsmanager:GetSecretValue action
```

### リソースベースのポリシーによるアクセスの拒否 – 明示的拒否
<a name="access-denied-resource-based-policy-examples-explicit"></a>

1. リソースベースのポリシーにあるアクションで、明示的な `Deny` ステートメントがあるのかを確認してください。次の例では、`secretsmanager:GetSecretValue` がアクションです。

1. `Deny` ステートメントを削除して、ポリシーを更新してください。詳細については、「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource-based policy
```

### ロール信頼ポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-role-trust-policy-examples-implicit"></a>

1. ロール信頼ポリシーにあるアクションで、`Allow` ステートメントが欠落していないかを確認してください。次の例では、`sts:AssumeRole` がアクションです。

1. `Allow` ステートメントを追加して、ポリシーを更新してください。詳細については、「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
because no role trust policy allows the sts:AssumeRole action
```

### ロール信頼ポリシーによるアクセスの拒否 – 明示的拒否
<a name="access-denied-role-trust-policy-examples-explicit"></a>

1. ロール信頼ポリシーにあるアクションで、明示的な `Deny` ステートメントがあるのかを確認してください。次の例では、`sts:AssumeRole` がアクションです。

1. `Deny` ステートメントを削除して、ポリシーを更新してください。詳細については、「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
with an explicit deny in the role trust policy
```

### ID ベースのポリシーによるアクセスの拒否 – 暗黙的な拒否
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. ID にアタッチされた ID ベースのポリシーにあるアクションに対して、`Allow` ステートメントが欠落していないかを確認してください。次の例では、ロール `HR` にアタッチされた `codecommit:ListRepositories` がアクションです。

1. `Allow` ステートメントを追加して、ポリシーを更新してください。詳細については、「[アイデンティティベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories
because no identity-based policy allows the codecommit:ListRepositories action
```

### ID ベースのポリシーによるアクセスの拒否 – 明示的な拒否
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. ポリシー ARN がエラーメッセージで指定されている場合は、指定されたポリシーでこのアクションの `Deny` ステートメントをチェックします。以下の例では、アクションは `codedeploy:ListDeployments` です。

1. エラーメッセージでポリシー ARN が指定されていない場合は、この ID にアタッチされた ID ベースのポリシーでこのアクションの `Deny` ステートメントをチェックします。

1. `Deny` ステートメントを削除して、ポリシーを更新してください。詳細については、「[アイデンティティベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based)」と「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

ポリシー ARN を含むエラーメッセージ

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy: arn:aws:iam::123456789012:policy/HRAccessPolicy
```

ポリシー ARN を含まないエラーメッセージ

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy
```