특정 *하위*도메인의 레코드만 편집할 수 있도록 Cloudflare API 토큰을 만드는 방법이 있나요?

특정 *하위*도메인의 레코드만 편집할 수 있도록 Cloudflare API 토큰을 만드는 방법이 있나요?

여러 도메인, 하위 도메인 및 회사에 Let's Encrypt를 사용하고 싶습니다. 모든 컴퓨터에 설치되어 오래 지속되는 와일드카드 인증서를 구입하는 대신 수명이 짧은 특정 인증서를 사용하는 것이 목표입니다. 이는 하나의 시스템이 손상될 경우 노출을 방지하기 위한 것입니다.

불행하게도 일부 서버는 서비스 중단을 겪을 수 없습니다(즉, HTTP acme 챌린지 기능 없음). 따라서 마지막 옵션은 DNS 챌린지입니다. 이를 위해서는 DNS 공급자(이 경우 Cloudflare)에 대한 API 토큰이 필요합니다.

그러나 글로벌 API 토큰을 시스템에 배치하여 손상되면 공격자가 해당 도메인 전체에 대한 DNS에 대한 전체 액세스 권한을 부여하게 됩니다. 이것이 바로 와일드카드 인증서를 사용하지 않음으로써 완화하고 싶은 것입니다.

Cloudflare를 사용하면 권한이 낮은 토큰을 만들 수 있지만 루트 수준 도메인보다 더 세분화되지는 않습니다. 다시 말하지만, 본질적으로 와일드카드 인증서와 동일한 액세스/관심사항입니다.

이 문제에 대한 해결책을 제시한 사람이 있나요?

답변1

이 요구 사항에 대해 내가 과거에 취한 접근 방식은 다음과 같습니다.믿다Let's Encrypt 문서의 축복을 받은 것은 _acme-challenge서로 다른 액세스 제어 구성을 가진 하나 이상의 다른 영역에 있는 이름에 대해 유효성을 검사하려는 이름의 하위 도메인을 CNAME하는 것입니다.

예를 들어, 일부 서비스가 에 대해서만 인증서를 생성하도록 허용하려는 경우 bobservice.example.com다른 도메인에 대해 별도의 영역을 만든 bobservice.example다음 CNAME을 _acme-challenge.bobservice.com에 만들 수 있습니다 _acme-challenge.bobservice.example. 그러면 챌린지 토큰이 의 TXT 레코드에 배치되고 _acme-challenge.bobservice.exampleLE는 CNAME을 따르며 이름이 검증됩니다.

물론, 다른 옵션은 Cloudflare 사용에서 완전히 전환하는 것입니다. Cloudflare 서비스에는 제한된 범위의 자격 증명과 같은 유용한 기능이 부족하고 인터넷 쓰레기에게 서비스를 제공한다는 아주 작은 문제도 있기 때문입니다.

답변2

불행하게도 일부 서버는 서비스 중단을 겪을 수 없습니다(즉, HTTP acme 챌린지 기능 없음). 따라서 마지막 옵션은 DNS 챌린지입니다.

귀하의 시나리오에 맞는 또 다른 옵션이 있습니다.웹루트 플러그인. 이를 통해 Let's Encrypt 클라이언트에 서버의 웹 루트 경로를 알려주고 HTTP 챌린지 파일을 해당 위치에 저장합니다. 이 접근 방식은 웹 서버를 전혀 손상시키지 않으며 가동 중지 시간도 발생하지 않습니다.

답변3

내 솔루션은 내부 네트워크에 상주하고 완전히 잠겨 있으며 글로벌 API 키를 보유하는 서비스를 구축하는 것입니다. 이 서비스는 이 키를 사용하여 다양한 하위 도메인에 대한 인증서를 생성/갱신합니다. 하위 도메인 인증서를 사용하는 서버에는 새 인증서나 갱신된 인증서를 검색하기 위해 이 내부 서비스에 대해 발급할 수 있는 도메인별 토큰이 있습니다.

관련 정보