

# 액세스 거부 오류 메시지 문제 해결
<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는 오류 메시지에 이러한 정책 유형 중 하나만 포함됩니다.

**중요**  
**에 로그인하는 데 문제가 있나요?AWS** 사용자 유형에 맞는 올바른 [AWS 로그인 페이지](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html)에 있는지 확인합니다. AWS 계정 루트 사용자(계정 소유자)인 경우 AWS 계정을 생성할 때 설정한 보안 인증을 사용하여 AWS에 로그인할 수 있습니다. IAM 사용자인 경우 계정 관리자가 AWS 로그인 자격 증명을 제공할 수 있습니다. 지원을 요청해야 하는 경우 이 페이지의 피드백 링크를 사용하지 않도록 하세요. 양식은 지원가 아닌 AWS 설명서 팀에서 접수합니다. 대신 [Contact Us](https://aws.amazon.com/contact-us/)(문의처) 페이지에서 **Still unable to log into your AWS account**(여전히 계정에 로그인할 수 없음)을 선택한 다음 사용 가능한 지원 옵션 중 하나를 선택합니다.

## 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 Management Console에서 작업을 수행할 권한이 없다는 메시지를 반환하는 경우 관리자에게 문의하여 도움을 받아야 합니다. 관리자가 로그인 자격 증명 또는 로그인 링크를 제공했습니다.

  다음 예제 오류는 `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}}` 리소스에 액세스하도록 허용하는 정책을 업데이트하라고 관리자에게 요청합니다.
+ [리소스 기반 정책](access_policies_identity-vs-resource.md)을 지원하는 서비스(예: Amazon S3, Amazon SNS 또는 Amazon SQS)에 액세스하려 하나요? 그러한 경우 정책에서 사용자를 위탁자로 지정하고 액세스 권한을 부여하는지 확인하세요. 자신의 계정 내에서 서비스를 요청하는 경우 자격 증명 기반 정책이나 리소스 기반 정책에서 요청자에게 권한을 부여할 수 있습니다. 다른 계정에서 서비스를 요청하는 경우 자격 증명 기반 정책 및 리소스 기반 정책 모두에서 요청자에게 권한을 부여해야 합니다. 리소스 기반 정책을 지원하는 서비스를 보려면 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.
+ 정책에 키 값 페어가 있는 조건이 포함된 경우 이를 주의하여 검토하세요. [`aws:RequestTag/{{tag-key}}`](reference_policies_condition-keys.md) 글로벌 조건 키, AWS KMS [`kms:EncryptionContext:{{encryption_context_key}}`](https://docs.aws.amazon.com/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) 섹션을 참조하세요.
+ [AWS IAM으로 작업하는 서비스](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개까지 관리형 세션 정책을 지정할 수 있습니다. 결과적으로 얻는 세션의 권한은 사용자 또는 역할의 자격 증명 기반 정책의 교집합과 세션 정책입니다. 또는 관리자 또는 사용자 프로그램에서 임시 자격 증명을 제공한 경우 세션 정책에 포함되어 액세스를 제한했을 수 있습니다.
+ AWS STS 페더레이션 사용자 위탁자인 경우 세션이 세션 정책에 의해 제한될 수 있습니다. IAM 사용자로 AWS에 로그인하고 페더레이션 토큰을 요청하여 페더레이션 사용자 세션을 생성합니다. 자세한 내용은 [사용자 지정 ID 브로커를 통해 자격 증명 요청](id_credentials_temp_request.md#api_getfederationtoken) 섹션을 참조하세요. 사용자 또는 사용자의 자격 증명 브로커가 연동 토큰을 요청하는 동안 세션 정책을 전달한 경우 세션이 이러한 정책에 의해 제한됩니다. 결과적으로 얻는 세션의 권한은 IAM 사용자 자격 증명 기반 정책의 교집합과 세션 정책입니다. 세션 정책에 대한 자세한 정보는 [세션 정책](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/*"]
    }]
  }
  ```

------

## 액세스 거부 오류 메시지 예제
<a name="access-denied-error-examples"></a>

대부분의 액세스 거부 오류 메시지는 `User {{user}} is not authorized to perform {{action}} on {{resource}} because {{context}}` 형식으로 나타납니다. 이 예에서 {{user}}는 액세스가 거부된 위탁자의 ARN이고, {{action}}은 정책에서 거부하는 서비스 작업이고, {{resource}}는 정책이 작용하는 리소스의 ARN입니다. {{context}} 필드는 액세스가 거부된 정책 유형에 대한 추가 컨텍스트를 제공합니다. 경우에 따라 액세스를 거부한 정책의 ARN도 포함됩니다.

정책에 `Deny` 문이 포함되어 있어 정책이 액세스를 명시적으로 거부하는 경우 AWS는 액세스 거부 오류 메시지에 `with an explicit deny in a {{type}} policy`라는 구절을 포함합니다. 이 구문은 `with an explicit deny in a {{type}} policy: {{policy ARN}}`과 같이 정책의 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` 문을 추가하여 SCP를 업데이트합니다. 자세한 내용은 *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:ListRepositories action
```

### 서비스 제어 정책으로 인한 액세스 거부 - 명시적 거부
<a name="access-denied-scp-examples-explicit"></a>

1. 오류 메시지에 정책 ARN이 제공된 경우 지정된 서비스 제어 정책(SCP)에서 작업에 대한 `Deny` 문을 확인합니다. 이 예시에서 작업은 `codecommit:ListRepositories`입니다.

1. 오류 메시지에 정책 ARN이 제공되지 않은 경우 SCP에서 작업에 대한 `Deny` 문을 확인합니다.

1. `Deny` 문을 제거하여 SCP를 업데이트합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [서비스 제어 정책(SCP) 업데이트](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. Virtual Private Cloud(VPC) 엔드포인트 정책에서 작업에 대한 누락된 `Allow` 문을 확인합니다. 다음 예제에서 작업은 `codecommit:ListRepositories`입니다.

1. `Allow` 문을 추가하여 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: codecommit:ListRepositories
because no VPC endpoint policy allows the codecommit:ListRepositories action
```

### VPC 엔드포인트 정책으로 인한 액세스 거부 - 명시적 거부
<a name="access-denied-vpc-endpoint-examples-explicit.title"></a>

1. Virtual Private Cloud(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
```

### 자격 증명 기반 정책으로 인한 액세스 거부 - 암시적 거부
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. 자격 증명에 연결된 자격 증명 기반 정책에서 작업에 대한 누락된 `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
```

### 자격 증명 기반 정책으로 인한 액세스 거부 - 명시적 거부
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. 오류 메시지에 정책 ARN이 제공된 경우 지정된 정책에서 작업에 대한 `Deny` 문을 확인합니다. 이 예시에서 작업은 `codedeploy:ListDeployments`입니다.

1. 오류 메시지에 정책 ARN이 제공되지 않은 경우 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
```