FIPS 140-3 규격 노마드 서버 배포하기
FIPS 140-3 규격 노마드 서버 배포하기
연방 정보 처리 표준(Federal Information Processing Standard)은 미국 정부 사용을 위한 암호화 중심의 인증 표준이에요.
fips1403 기능 이름으로 표시된 노마드 엔터프라이즈 빌드는 FIPS 140-3 규정 준수를 위한 내장 지원을 포함해요. FIPS-140-3 규정 준수를 특별히 요구하지 않는 환경에서는 이 노마드 엔터프라이즈 변형을 실행하지 않아야 해요.
이 기능을 사용하려면 노마드 엔터프라이즈의 활성 또는 평가판 라이선스가 있어야 해요. 평가판을 시작하려면 HashiCorp 영업팀에 문의해 주세요.
엔터프라이즈: 이 기능은 노마드 엔터프라이즈를 필요로 해요.
출처: 문서
본문
FIPS 140-3 노마드 엔터프라이즈 사용
FIPS 140-3 빌드의 노마드 엔터프라이즈는 비-FIPS 빌드와 동일하게 동작해요. 노마드가 FIPS 규정 준수 모드로 유지되도록 하는 것은 여러분의 책임이에요. FIPS 규정 준수 운영을 유지하려면 통신이 암호화되도록 TLS를 활성화해야 해요. 노마드는 보안이 불안정한 설정에 대해 몇 가지 유용한 오류 메시지를 표시해요.
전송 암호화는 기본적으로 노마드 엔터프라이즈에서 비활성화되어 있어요. 그 결과 노마드가 민감한 제어 플레인 정보를 전송할 수 있어요. FIPS 규정 준수 설정으로 노마드를 실행할 때 모든 에이전트에 gossip 암호화와 mTLS가 활성화되어 있는지 확인해야 해요. 또한 HKDF가 인증된 프리미티브가 아니므로 TLSv1.3은 FIPS 140-3에서 동작하지 않는다는 점을 유의하세요.
HashiCorp는 NIST 인증 테스트 연구소가 아니며, FIPS 규정 준수 방식으로 노마드 엔터프라이즈를 사용하는 것에 대해 일반적인 지침만 제공할 수 있어요. 자세한 내용은 승인된 감사 기관에 문의할 것을 권장해요.
FIPS 140-3 변형의 노마드는 HashiCorp Releases 페이지에서 제공되는 별도의 바이너리를 사용해요. +ent.fips1403 접미사로 끝나는 릴리스를 사용해 주세요. Linux 바이너리만 사용 가능해요.
사용 제한 (Usage restrictions)
FIPS 140-3과 함께 노마드 엔터프라이즈를 사용할 때 다음 운영 제한을 유의하세요.
마이그레이션 제한 (Migration restrictions)
버전과 관계없이 비-FIPS 빌드의 노마드에서 FIPS 빌드의 노마드로의 인플레이스 마이그레이션은 지원하지 않아요. 지원을 받으려면 새 클러스터 설치가 필요해요.
완전히 새로운 클러스터 설치가 필요하기 때문에 직접 업그레이드와 복제 마이그레이션은 일반적으로 피하는 것이 좋아요. 기존 래핑된 키 자료가 비-FIPS 규정 준수 암호화 모듈로 암호화되어 있고, 모든 노마드 변수(Variables)와 워크로드 아이덴티티(Workload Identities)가 이 비규정 키 자료로 암호화되거나 서명되어 있기 때문이에요. 또한 서비스 ID와 다른 식별자는 비규정 해시 함수에서 파생되었으므로 마이그레이션 중 워크로드 서비스 중단으로 이어질 수 있어요.
따라서 HashiCorp는 기존 클러스터 워크로드를 FIPS 규정 준수 바이너리로 변환한 결과 기술적이든 비규정이든 영향을 받는 워크로드에 대해 지원을 제공할 수 없어요.
대신 기존 클러스터를 그대로 두고, 특정 워크로드를 FIPS 클러스터로 마이그레이션하는 것을 신중하게 고려할 것을 제안해요.
TLS 제한 (TLS restrictions)
노마드 엔터프라이즈의 FIPS 수정 사항에는 지원되는 TLS 암호 스위트와 키 정보에 대한 제한이 포함돼요. TLS1.2 이하에서는 다음 암호 스위트만 허용돼요:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_GCM_SHA384
또한 TLS 신뢰 체인에서는 다음 키 유형만 허용돼요:
- RSA 2048, 3072, 4096, 7680, 8192-bit
- ECDSA P-256, P-384, P-521
기능 제한 (Feature restrictions)
FIPS 모드 바이너리에서는 다음 기능을 사용할 수 없거나 수정된 방식으로 동작해요:
nomad alloc exec및nomad job action명령과 관련 API는 사용할 수 없으며 오류 메시지를 반환해요.- OIDC 인증 방식 구성은 클라이언트 어서션에
x5t키 ID 헤더를 허용하지 않아요.x5t#S256헤더만 허용돼요. md5및sha1HCL2 함수는 작업 명세에서 사용하면 오류를 반환해요.- artifact 블록의
md5와sha1체크섬 함수는 작업 명세에서 사용하면 오류를 반환해요. md5sum함수는 template 블록의 내용에서 사용하면 오류를 반환해요.
제3자 제한 (Third-party restrictions)
노마드는 FIPS-140-3 규정 준수 요구사항을 충족하지 못할 수 있는 제3자 바이너리와 워크로드를 실행하고 외부 API(예: git, Docker, 클라우드 제공자)와 통신해요. 클러스터의 다른 소프트웨어가 규정 준수 상태인지 확인하는 것은 여러분의 책임이에요.
이기종 클러스터 배포 (Heterogeneous cluster deployments)
동일한 노마드 클러스터 내에서 혼합 배포 시나리오는 지원하지 않아요. 지원되지 않는 배포 시나리오의 예는 FIPS와 비-FIPS 노마드 바이너리를 혼합하는 경우예요. 전체 클러스터의 노드는 단일 바이너리 또는 단일 배포 유형을 사용해야 해요.
시스템의 구성 요소가 FIPS 규정을 준수하지 않으므로 이기종 클러스터를 실행하는 것은 FIPS에서 허용되지 않아요. 비-FIPS와 FIPS 노드나 서버를 조인하려는 시도는 실패할 수 있어요. 비-FIPS와 FIPS 클러스터 간 연합은 지원되지 않으며 실패할 수 있어요.
기술 세부사항
노마드의 FIPS 140-3 Linux 제품은 공식 Go 1.26+ 툴체인의 Go Cryptographic Module 버전 1.0.0을 사용하며, 여기에는 FIPS 검증된 암호화 모듈이 포함돼요.
여러분의 노마드 엔터프라이즈 빌드에 FIPS 지원이 포함되어 있는지 확인하려면 version 명령 출력에 fips1403 문자열이 포함되어 있는지 확인해 주세요. 예를 들어:
Nomad v2.0.5+ent.fips1403
또한 시작 시 에이전트의 배너에 다음 메시지가 나타나요.
Fips Mode: FIPS-140-3 enabled (version: v1.0.0)
FIPS 암호화 모듈 검증
FIPS 140-3 Linux 바이너리가 Go Cryptographic Module을 사용하도록 올바르게 구성되었는지 검증하려면 바이너리에서 go version -m을 실행해 빌드 메타데이터를 얻어요.
$ go version -m ./nomad | grep FIPS
build GOFIPS140=v1.0.0-c2097c7c
Linux와 Windows 비-FIPS 빌드 모두에서 검색 출력은 결과가 없어요.
인증 (Certification)
노마드 엔터프라이즈 FIPS 규정 준수는 아직 독립적으로 인증되지 않았어요.