2017-11-28 30 views
1

이 문서를 가정 허용 :AWS 정책 :이 같은 정책을 사용해야 route53에서 업데이트를 특정 레코드 호스팅 영역

{ 
    "Version": "2017-11-27", 
    "Statement":[ 
     { 
     "Effect":"Allow", 
     "Action": [ 
      "route53:ChangeResourceRecordSets" 
     ], 
     "Resource": [ 
      "arn:aws:route53:::hostedzone/<ZONE_ID>" 
     ] 
    ] 
} 

나는 매우 안전 정책이 필요합니다.

arn에 특정 리소스 레코드 집합 (영역의 레코드 하나)을 추가 할 수 없습니다. 을 사용하여 ChangeResourceRecordSets API 호출로 변경해야하는 레코드를 확인할 수 있습니다. 내가 틀리지 않는 경우.

이것은 공개 도메인 영역에서 하나의 레코드 만 자동으로 업데이트 할 때 필요합니다. 자동 업데이트를위한 _acme-challenge.ldap.example.com. 레코드가 인증서를 암호화합니다. 내 목표를 달성하는 데 acme.sh을 사용할 수 있다는 것을 알고 있습니다. 그러나 나는 이것을하기 위해 내 자신 만의 간단한 스크립트를 작성하고 싶다.

답변

3

조건을 사용하여 ChangeResourceRecordSets API 호출로 어떤 레코드를 변경해야하는지 확인할 수 있습니다. 내가 틀리지 않는 경우.

나는 당신이 틀릴 수도 있다고 생각합니다.

Amazon Route 53에는 IAM 정책에서 사용할 수있는 서비스 별 [조건] 컨텍스트 키가 없습니다.

http://docs.aws.amazon.com/IAM/latest/UserGuide/list_route53.html

는 또한, global condition keys 중 어느 것도 적용 보이지 않는다.

그러나 이것에 대한 해결책이 있다고 생각합니다.

_acme-challenge.ldap.example.com 도메인의 두 번째 공용 호스트 된 영역을 만듭니다. 아마 "네가 생각하는 것 같아.하지만 그건 도메인이 아니야!" 그러나 관련 의미에서, 그것은 실제로 여전히 도메인입니다.

Route 53은이 새로운 호스트 된 영역에 4 개의 새 네임 서버를 할당합니다. 해당 서버를 기록해 두십시오.

다시 원래 영역에 _acme-challenge.ldap.example.comNS의 레코드를 만듭니다. 이 레코드를 생성하는 데 사용할 값은 Route 53이 새 호스트 된 영역에 한 줄에 하나씩 할당 된 네 개의 네임 서버입니다. 두 영역 중 하나에서 기존 NS 레코드를 변경하지 마십시오.

위임이라고합니다.이 특정 하위 도메인에 대한 권한을 다른 호스트 된 영역에 위임합니다. 부모 도메인을 처리하는 것과는 다른 4 개의 Route 53 서버 세트가 자동으로 할당됩니다.

이제 새 호스트 영역의 루트에 새 레코드를 만들 수 있으며 _acme-challenge.ldap.example.com에 대한 DNS 쿼리를 수행하면 반환되는 대답은 새로운 호스트 된 영역의 응답이됩니다.

이제 스크립트에 새 영역의 레코드를 수정할 수있는 권한 만 부여하면 부모 영역에서 아무런 권한도 부여하지 않아서 아무것도 수정할 수 없게됩니다.

+0

"글로벌 조건 키가 적용되지 않는 것 같습니다." 특히 키를 사용하거나 특정 노드를 지정하는 보호. 그러나 글로벌 조건을 사용하고 예를 들어 IPAdress로 제한 할 수 있습니까? – vskubriev

+0

예, 조건 키를 사용하여 자격 증명 자체의 사용을 제한 할 수 있습니다. 다른 서비스의 경우에는 조건 키를 사용하여 액세스되는 리소스를보다 세부적으로 제어 할 수 있습니다. 여기서 생각한 바를 가정했습니다. 이것이 EC2 또는 Lambda에서 사용되는 경우 정적 자격 증명이 아닌 IAM 역할을 사용하는 것이 좋습니다. –