세분화된 액세스 제어를 위한 IAM 정책 조건 사용 - Amazon Route 53

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

세분화된 액세스 제어를 위한 IAM 정책 조건 사용

Route 53에서는 IAM 정책을 사용하여 권한을 부여할 때 조건을 지정할 수 있습니다( 참조액세스 제어). 예를 들어, 다음을 수행할 수 있습니다.

  • 단일 리소스 레코드 세트에 대한 액세스를 허용하는 권한을 부여합니다.

  • A 및 레코드와 같은 호스팅 영역의 특정 레코드 유형의 모든 리소스 DNS 레코드 세트에 대한 사용자 액세스를 허용하는 권한을 부여합니다AAAA.

  • 사용자가 이름에 특정 문자열이 포함된 리소스 레코드 세트에 액세스할 수 있도록 권한을 부여합니다.

  • 사용자가 Route 53 콘솔에서 또는 ChangeResourceRecordSets 를 사용할 때 CREATE | UPSERT | DELETE 작업의 하위 집합만 수행하도록 허용하는 권한을 부여합니다API.

  • 사용자가 특정 에서 프라이빗 호스팅 영역을 연결하거나 연결 해제할 수 있는 권한을 부여합니다VPC.

  • 사용자가 특정 에 연결된 호스팅 영역을 나열할 수 있는 권한을 부여합니다VPC.

  • 사용자가 새 프라이빗 호스팅 영역을 생성하고 이를 특정 에 연결할 수 있는 권한을 부여합니다VPC.

  • 사용자가 VPC 연결 권한을 생성하거나 삭제할 수 있는 권한을 부여합니다.

세분화된 권한을 무엇이든 조합하여 권한을 생성할 수도 있습니다.

Route 53 조건 키 값 정규화

정책 조건에 입력하는 값은 다음과 같이 형식을 지정하거나 정규화해야 합니다.

route53:ChangeResourceRecordSetsNormalizedRecordNames의 경우:

  • 모든 문자는 소문자여야 합니다.

  • DNS 이름은 후행 점이 없어야 합니다.

  • a~z, 0~9, -(하이픈), _(밑줄), .(마침표, 레이블 구분 기호) 이외의 문자는 \three-digit 8진수 코드 형태로 이스케이프 코드를 사용해야 합니다. 예를 들어 \052 는 * 문자의 8진수 코드입니다.

route53:ChangeResourceRecordSetsActions의 경우, 값은 다음 중 하나일 수 있으며 대문자여야 합니다.

  • CREATE

  • UPSERT

  • DELETE

route53:ChangeResourceRecordSetsRecordTypes의 경우

  • 값은 대문자여야 하며 Route 53 지원 DNS 레코드 유형일 수 있습니다. 자세한 내용은 지원되는 DNS 레코드 유형 단원을 참조하십시오.

route53:VPCs의 경우:

  • 값은 형식이어야 합니다VPCId=<vpc-id>,VPCRegion=<region>.

  • <vpc-id> 및 값은 VPCId=vpc-123abc 및 와 같은 소문자여야 <region>합니다VPCRegion=us-east-1.

  • 컨텍스트 키와 값은 대/소문자를 구분합니다.

중요

원하는 대로 작업을 허용하거나 제한할 권한을 얻으려면 다음 규칙을 따라야 합니다. VPCIdVPCRegion 요소만 이 조건 키에서 수락되며, 와 같은 다른 AWS 리소스 AWS 계정는 지원되지 않습니다.

IAM 사용 설명서Access Analyzer 또는 정책 시뮬레이터를 사용하여 정책이 예상대로 권한을 부여하거나 제한하는지 확인할 수 있습니다. Route 53 작업을 수행하기 위해 테스트 사용자 또는 역할에 IAM 정책을 적용하여 권한을 검증할 수도 있습니다.

조건 지정: 조건 키 사용

AWS 는 액세스 제어를 지원하는 모든 AWS 서비스에 대해 미리 정의된 조건 키 세트(AWS와이드 조건 키)IAM를 제공합니다. 예를 들어 aws:SourceIp 조건 키를 사용하여 요청자의 IP 주소를 확인한 후 작업을 수행하도록 허용할 수 있습니다. 자세한 내용과 AWS전체 키 목록은 IAM 사용 설명서의 사용 가능한 조건 키 섹션을 참조하세요.

참고

Route 53은 태그 기반 조건 키를 지원하지 않습니다.

다음 표에는 Route 53에 적용되는 Route 53 서비스별 조건 키가 나와 있습니다.

Route 53 조건 키 API 작업 값 유형 설명
route53:ChangeResourceRecordSetsNormalizedRecordNames

ChangeResourceRecordSets

다중 값

의 요청에 있는 DNS 레코드 이름 목록을 나타냅니다ChangeResourceRecordSets. 예상 동작을 가져오려면 IAM 정책의 DNS 이름을 다음과 같이 정규화해야 합니다.

  • 모든 문자는 소문자여야 합니다.

  • DNS 이름은 후행 점이 없어야 합니다.

  • a~z, 0~9, -(하이픈), _(밑줄), .(마침표, 레이블 구분 기호) 이외의 문자는 \three-digit 8진수 코드 형태로 이스케이프 코드를 사용해야 합니다.

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

다중 값

요청의 DNS 레코드 유형 목록을 나타냅니다ChangeResourceRecordSets.

ChangeResourceRecordSetsRecordTypes 는 Route 53 지원 DNS 레코드 유형 중 하나일 수 있습니다. 자세한 내용은 지원되는 DNS 레코드 유형 단원을 참조하십시오. 정책에는 모두 대문자로 입력해야 합니다.

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

다중 값

ChangeResourceRecordSets 요청에서 작업 목록을 나타냅니다.

ChangeResourceRecordSetsActions 값은 다음 중 하나일 수 있습니다(대문자여야 함).

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

AssociateVPCWithHostedZone

DisassociateVPCFromHostedZone

ListHostedZonesByVPC

CreateHostedZone

C reateVPCAssociation권한 부여

D eleteVPCAssociation권한 부여

다중 값

AssociateVPCWithHostedZone, DisassociateVPCFromHostedZone, , DeleteVPCAssociationAuthorization, ListHostedZonesByVPCCreateVPCAssociationAuthorization, CreateHostedZone, 의 요청VPCs에서 의 목록을 “VPCId=<vpc-id>,VPCRegion=<region> 형식으로 나타냅니다.

정책 예: 조건을 사용하여 세분화된 액세스 구현

이 단원의 각 예제에서는 Effect 절을 Allow로 설정하고 허용할 작업, 리소스, 파라미터만 지정합니다. IAM 정책에 명시적으로 나열된 항목에만 액세스할 수 있습니다.

경우에 따라, Effect 절을 Deny로 설정하고 정책의 모든 논리를 반전시켜 거부 기반 정책이 되도록 이러한 정책을 다시 작성할 수도 있습니다. 하지만 허용 기반 정책에 비해 올바르게 작성하기가 어려우므로 거부 기반 정책을 사용하지 않는 것이 좋습니다. 특히 Route 53의 경우 텍스트 정규화가 필요하기 때문에 사용하지 않는 것이 좋습니다.

특정 이름이 있는 DNS 레코드에 대한 액세스를 제한하는 권한 부여

다음 권한 정책은 example.com 및 marketing.example.com의 호스팅 영역 Z12345에서 ChangeResourceRecordSets 작업을 허용하는 권한을 부여합니다. route53:ChangeResourceRecordSetsNormalizedRecordNames 조건 키를 사용해 지정된 이름과 일치하는 레코드로만 사용자 작업을 제한합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com", "marketing.example.com"] } } } ] }

ForAllValues:StringEquals 는 다중 값 키에 적용되는 IAM 조건 연산자입니다. 위 정책의 조건은 의 모든 변경 사항에 DNS 이름이 example.com ChangeResourceRecordSets 있는 경우에만 작업을 허용합니다. 자세한 내용은 IAM 사용 설명서의 여러 키 또는 값이 있는 조건 IAM 연산자 및 조건을 참조하세요. IAM

이름에 특정 접미사를 연결하는 권한을 구현하려면 조건 연산자 StringLike 또는 와 함께 정책에서 IAM 와일드카드(*)를 사용할 수 있습니다StringNotLike. 다음 정책은 작업의 모든 변경에 이름이 “-beta.example.com”로 끝DNS나는 경우 ChangeResourceRecordSets 작업을 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringLike":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["*-beta.example.com"] } } } ] }
참고

IAM 와일드카드는 도메인 이름 와일드카드와 동일하지 않습니다. 와일드카드를 도메인 이름에 사용하는 방법은 다음 예를 참조하세요.

와일드카드가 포함된 도메인 이름과 일치하는 DNS 레코드에 대한 액세스를 제한하는 권한을 부여합니다.

다음 권한 정책은 example.com의 호스팅 영역 Z12345에서 ChangeResourceRecordSets 작업을 허용하는 권한을 부여합니다. route53:ChangeResourceRecordSetsNormalizedRecordNames 조건 키를 사용해 *.example.com과 일치하는 레코드로만 사용자 작업을 제한합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["\\052.example.com"] } } } ] }

\052 는 DNS 이름의 문자 *에 대한 옥탈 코드이며 JSON \는 구문\\을 따르도록 이스케\052이프됩니다.

특정 DNS 레코드에 대한 액세스를 제한하는 권한 부여

다음 권한 정책은 example.com의 호스팅 영역 Z12345에서 ChangeResourceRecordSets 작업을 허용하는 권한을 부여합니다. 세 개의 조건 키 조합을 사용하여 사용자 작업을 제한하여 특정 DNS 이름과 유형의 DNS 레코드만 생성하거나 편집할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com"], "route53:ChangeResourceRecordSetsRecordTypes": ["MX"], "route53:ChangeResourceRecordSetsActions": ["CREATE", "UPSERT"] } } } ] }
지정된 유형의 DNS 레코드만 생성하고 편집할 수 있는 액세스를 제한하는 권한을 부여합니다.

다음 권한 정책은 example.com의 호스팅 영역 Z12345에서 ChangeResourceRecordSets 작업을 허용하는 권한을 부여합니다. route53:ChangeResourceRecordSetsRecordTypes 조건 키를 사용하여 지정된 유형(A 및 )과 일치하는 레코드에서만 사용자 작업을 제한합니다AAAA.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"] } } } ] }
IAM 보안 주체가 작동할 수 VPC 있는 를 지정하는 권한 부여

다음 권한 정책은 vpc-id에서 VPC 지정한 AssociateVPCWithHostedZone 에 대해 ListHostedZonesByVPC, DisassociateVPCFromHostedZone, CreateHostedZone, CreateVPCAssociationAuthorization, 및 DeleteVPCAssociationAuthorization 작업을 허용하는 권한을 부여합니다.

중요

조건 값은 형식이어야 합니다VPCId=<vpc-id>,VPCRegion=<region>. 조건 값에 VPC ARN 를 지정하면 조건 키가 적용되지 않습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "route53:*" ], "Resource": [ "*" ], "Condition": { "ForAllValues:StringLike": { "route53:VPCs": [ "VPCId=<vpc-id>,VPCRegion=<region>" ] } } }, { "Sid": "Statement2", "Effect": "Allow", "Action": "ec2:DescribeVpcs", "Resource": "*" } ] }