Terraform 상태를 공개 인터넷에서 분리하세요 (... 노트

Terraform 상태를 공개 인터넷에서 분리하세요 (VPN을 구축하지 않고)

Terraform 상태 파일은 클라우드 관리에서 가장 민감한 아티팩트로, 인프라 맵과 잠재적으로 평문 비밀을 포함합니다. 기본적으로 액세스 키로만 보호되는 공개 엔드포인트가 있는 클라우드 스토리지에 상주합니다. 이 키가 손상되면 공격자는 전체 인프라에 즉시 액세스할 수 있습니다. 특히 인증 공급업체는 귀하의 것을 관리하기 전에 자체 왕국을 확보해야 합니다. 이들의 프로덕션 상태 계정은 공개 네트워크를 통해 액세스할 수 없도록 하여 3단계 접근 방식으로 보안을 유지해야 합니다. 첫 번째 과제인 "닭과 달걀" 문제는 원격 상태가 이미 백엔드를 필요로 하는데, 이 백엔드 자체가 Terraform으로 관리되는 인프라이기 때문에 발생합니다. 이는 2단계 부트스트랩으로 해결됩니다. 첫째, 로컬 상태가 기본 스토리지 계정과 네트워크를 생성하고, 둘째, 백엔드가 원격으로 전환되어 상태를 마이그레이션합니다. 두 번째 함정은 "도달 문제"로, 공개 액세스를 비활성화하여 스토리지 계정을 보호하면 가상 네트워크 외부의 CI 파이프라인 및 사용자로부터 연결이 끊어집니다. 일반적인 솔루션인 VPN 게이트웨이는 비싸고 복잡합니다. 대신 컨테이너의 제로 트러스트 커넥터가 ID 인식 메시에 참여하여 승인된 엔터티가 메쉬를 통해 비공개 엔드포인트에 안전하게 액세스할 수 있도록 합니다. 이를 통해 상시 인프라, VPN 또는 점프 박스의 필요성이 제거됩니다. 세 번째 과제는 다단계 잠금 프로세스를 포함합니다. 초기 Terraform 적용에서 계정을 비공개로 만들려고 하면 비공개 경로가 존재하기 전에 Terraform이 잠기게 됩니다. 따라서 잠금은 네트워크, 비공개 엔드포인트 및 커넥터가 작동한 후에만 실행되는 별도의 후속 단계입니다. 이 최종 명령은 공개 네트워크 액세스를 비활성화하여 계정을 비공개 메쉬를 통해서만 액세스할 수 있도록 합니다. 이러한 조치를 보완하기 위해 정적 자격 증명이 제거됩니다. CI 파이프라인은 워크로드 ID 페더레이션을 사용하여 인증하고 빠르게 만료되는 OIDC 토큰을 받아 액세스합니다. Terraform 자체는 영구 액세스 키가 아닌 상태 작업을 위해 임시 디렉터리 토큰을 사용합니다. 이 접근 방식은 공격자가 액세스 권한을 얻더라도 사용된 자격 증명이 일시적이고 쓸모없도록 보장합니다. 궁극적으로 상태 파일 유출은 암호화 침해가 아닌 공개 액세스와 손상된 키에서 비롯되는 경우가 많습니다. 공개 엔드포인트를 제거하면 주요 공격 벡터가 제거되어 메쉬 액세스 없이는 유출된 키가 효과가 없게 됩니다. 이러한 포괄적인 보안에 대한 약속은 회사의 제품 철학을 반영하여 최고 등급 고객뿐만 아니라 모든 고객에게 강력한 보안 기능을 제공합니다.