

# 자격 증명 기반 정책 및 리소스 기반 정책
<a name="access_policies_identity-vs-resource"></a>

정책은 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. 리소스에 대한 액세스를 제한하는 권한 정책을 생성할 때 *자격 증명 기반 정책* 또는 *리소스 기반 정책*을 선택할 수 있습니다.

**자격 증명 기반 정책**은 IAM 사용자, 그룹 또는 역할에 연결됩니다. 이러한 정책으로 자격 증명이 수행할 수 있는 작업(권한)을 지정할 수 있습니다. 예를 들어, John이라는 IAM 사용자에게 Amazon EC2 `RunInstances` 작업을 수행하도록 허용하는 정책을 연결할 수 있습니다. 이 정책은 John이 `MyCompany`이라는 Amazon DynamoDB 테이블에서 항목을 가져오도록 허용되었다는 내용도 명시할 수 있습니다. 또한 John에게 자신의 IAM 보안 자격 증명을 관리하도록 허용할 수도 있습니다. 자격 증명 기반 정책은 [관리형 권한 또는 인라인 권한](access_policies_managed-vs-inline.md)이 될 수 있습니다.

**리소스 기반 정책**은 리소스에 연결됩니다. 예를 들어, 리소스 기반 정책을 Amazon S3 버킷, Amazon SQS 대기열, VPC 엔드포인트, AWS Key Management Service 암호화 키, Amazon DynamoDB 테이블 및 스트림에 연결할 수 있습니다. 리소스 기반 정책을 지원하는 서비스 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

리소스 기반 정책을 사용하면 이러한 리소스에 액세스할 수 있는 대상 및 해당 대상이 리소스에서 수행할 수 있는 작업을 지정할 수 있습니다. 해당 신뢰 영역(신뢰할 수 있는 조직 또는 계정) 외의 계정 내 보안 주체가 역할을 수임하는 권한이 있는지 자세히 알고 싶다면, [IAM Access Analyzer란 무엇일까요?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)를 참조하세요. 리소스 기반 정책은 인라인만 있고 관리형은 없습니다.

**참고**  
*리소스 기반* 정책은 *리소스 수준* 권한과 다릅니다. 이 주제에서 설명한 바와 같이 리소스 기반 정책을 리소스에 직접 연결할 수 있습니다. 리소스 수준 권한이란 [ARN](reference_identifiers.md#identifiers-arns)을 사용하여 정책에서 개별 리소스를 지정하는 기능을 말합니다. 리소스 기반 정책은 일부 AWS 서비스에서만 지원됩니다. 리소스 기반 정책 및 리소스 수준 권한을 지원하는 서비스 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

자격 증명 기반 정책 및 리소스 기반 정책이 동일한 계정 내에서 상호 작용하는 방법을 알아보려면 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.

정책이 계정 간에 상호 작용하는 방식을 알아보려면 [Cross-account policy evaluation logic](reference_policies_evaluation-logic-cross-account.md) 섹션을 참조하세요.

이러한 개념에 대한 이해도를 높이려면 다음 그림 섹션을 참조하세요. `123456789012` 계정의 관리자는 *자격 증명 기반 정책*을 `John`, `Carlos` 및 `Mary` 사용자에게 연결합니다. 이 정책의 일부 작업은 특정 리소스에서 수행할 수 있습니다. 예를 들어 사용자 `John`는 `Resource X`에 대해 일부 작업을 수행할 수 있습니다. 이는 자격 증명 기반 정책에서 *리소스 수준 권한*입니다. 관리자는 또한 *리소스 기반 정책*을 `Resource X`, `Resource Y` 및 `Resource Z`에 추가했습니다. 리소스 기반 정책을 통해 해당 리소스에 액세스할 수 있는 사용자를 지정할 수 있습니다. 예를 들어 `Resource X`의 리소스 기반 정책은 `John` 및 `Mary` 사용자 목록을 표시하고 리소스에 대한 읽기 권한을 허용합니다.

![\[자격 증명 기반 정책과 리소스 기반 정책\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/Types_of_Permissions.diagram.png)


`123456789012` 계정의 예를 사용하면 다음 사용자가 나열된 작업을 수행할 수 있습니다.
+ **John** - John은 `Resource X`에서 나열 및 읽기 작업을 수행할 수 있습니다. John은 사용자에 대한 자격 증명 기반 정책과 `Resource X`에 대한 리소스 기반 정책을 통해 이 권한을 부여 받습니다.
+ **Carlos** - Carlos는 `Resource Y`에서 나열, 읽기 및 쓰기 작업을 수행할 수 있지만 `Resource Z`에 대한 액세스는 거부됩니다. Carlos의 자격 증명 기반 정책을 통해 `Resource Y`에서 나열 및 읽기 작업을 수행할 수 있습니다. `Resource Y` 리소스 기반 정책을 사용하면 Carlos에게 쓰기 권한도 허용됩니다. 그러나 자격 증명 기반 정책을 통해 `Resource Z`에 대한 액세스가 허용되더라도 `Resource Z` 리소스 기반 정책으로 인해 해당 액세스가 거부됩니다. 명시적 `Deny`는 `Allow`를 재정의하므로 Carlos의 `Resource Z`에 대한 액세스가 거부됩니다. 자세한 내용은 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.
+ **Mary** - Mary는 `Resource X`, `Resource Y` 및 `Resource Z`에 대해 나열, 읽기 및 쓰기 작업을 수행할 수 있습니다. Mary의 자격 증명 기반 정책을 통해 리소스 기반 정책보다 더 많은 리소스에 대해 더 많은 작업을 수행할 수 있지만 액세스를 거부하는 정책은 없습니다.
+ **Zhang** - Zhang에게는 `Resource Z`에 대한 모든 액세스 권한이 있습니다. Zhang은 자격 증명 기반 정책이 없지만 `Resource Z` 리소스 기반 정책을 사용하면 리소스에 대한 전체 액세스 권한을 가질 수 있습니다. Zhang은 `Resource Y`에서 나열 및 읽기 작업을 수행할 수도 있습니다.

자격 증명 기반 정책과 리소스 기반 정책은 모두 권한 정책이며 함께 평가됩니다. 권한 정책만 적용되는 요청의 경우 AWS는 먼저 모든 정책에서 `Deny`를 확인합니다. 이 정책이 존재하는 경우 요청이 거부됩니다. 그런 다음 AWS는 각 `Allow`를 확인합니다. 적어도 하나의 정책 설명이 요청의 작업을 허용하는 경우 요청이 허용됩니다. `Allow`가 자격 증명 기반 정책인지 리소스 기반 정책인지는 중요하지 않습니다.

**중요**  
이 논리는 요청이 하나의 AWS 계정에서 이루어진 경우에만 적용됩니다. 하나의 계정에서 다른 계정으로 요청한 경우 `Account A`의 요청자는 `Account B`의 리소스에 대한 요청을 허용하는 자격 증명 기반 정책을 가지고 있어야 합니다. 또한 `Account B`의 리소스 기반 정책은 `Account A`의 요청자가 리소스에 액세스할 수 있도록 허용해야 합니다. 두 계정 모두에 작업을 허용하는 정책이 있어야 합니다. 그렇지 않으면 요청이 실패합니다. 크로스 계정 액세스에 대해 리소스 기반 정책을 사용하는 방법에 대한 자세한 정보는 [IAM의 크로스 계정 리소스 액세스](access_policies-cross-account-resource-access.md) 섹션을 참조하세요.

특정 권한이 있는 사용자는 해당 권한에 연결된 권한 정책이 있는 리소스를 요청할 수 있습니다. 이 경우 AWS는 해당 리소스에 대한 액세스 권한을 부여할지 여부를 결정할 때 두 권한 세트를 모두 평가합니다. 정책이 평가되는 방식에 대한 자세한 정보는 [정책 평가 로직](reference_policies_evaluation-logic.md) 섹션을 참조하세요.

**참고**  
Amazon S3는 자격 증명 기반 정책 및 리소스 기반 정책(*버킷 정책이라고 함*)을 지원합니다. 또한 Amazon S3는 IAM 정책 및 권한과 무관한, *액세스 제어 목록(ACL)*으로 알려진 권한 메커니즘을 지원합니다. IAM 정책을 Amazon S3 ACL과 함께 사용할 수 있습니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [액세스 제어](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html)를 참조하세요.