Bottlerocket FIPS AMI로 워커 노드를 FIPS 지원 상태로 만들기
Bottlerocket FIPS AMI로 워커 노드를 FIPS 지원 상태로 만들기
FIPS 커널을 가진 Bottlerocket AMI를 사용하여 워커 노드를 FIPS 지원 상태로 만드는 방법을 설명합니다.
출처: 문서
본문
FIPS(Federal Information Processing Standard) Publication 140-3은 민감한 정보를 보호하는 암호화 모듈의 보안 요구 사항을 지정하는 미국 및 캐나다 정부 표준입니다. Bottlerocket은 FIPS 커널을 가진 AMI를 제공하여 FIPS를 준수하기 쉽게 만듭니다.
이 AMI는 FIPS 140-3 검증 암호화 모듈을 사용하도록 사전 구성됩니다. 여기에는 Amazon Linux 2023 Kernel Crypto API Cryptographic Module과 Go Cryptographic Module이 포함됩니다.
Bottlerocket FIPS AMI를 사용하면 워커 노드가 "FIPS 지원(FIPS ready)" 상태가 되지만 자동으로 "FIPS 규정 준수(FIPS-compliant)"가 되지는 않습니다. 자세한 내용은 Federal Information Processing Standard (FIPS) 140-3을 참조하세요.
고려 사항
- 클러스터가 격리된 서브넷을 사용하면 Amazon ECR FIPS 엔드포인트에 접근하지 못할 수 있습니다. 이로 인해 노드 부트스트랩이 실패할 수 있습니다. 네트워크 구성이 필요한 FIPS 엔드포인트에 접근할 수 있도록 허용하는지 확인하세요. 자세한 내용은 AWS PrivateLink 가이드의 리소스 VPC 엔드포인트를 통한 리소스 접근을 참조하세요.
- 클러스터가 PrivateLink가 있는 서브넷을 사용한다면 Amazon ECR FIPS PrivateLink 엔드포인트를 구성했는지 확인하세요. Amazon ECR은 PrivateLink를 통한 FIPS 엔드포인트를 지원합니다. 자세한 내용은 Amazon ECR 인터페이스 VPC 엔드포인트를 참조하세요.
Bottlerocket FIPS AMI로 관리형 노드 그룹 만들기
Bottlerocket FIPS AMI는 워크로드를 지원하기 위해 네 가지 변형으로 제공됩니다.
BOTTLEROCKET_x86_64_FIPSBOTTLEROCKET_ARM_64_FIPSBOTTLEROCKET_x86_64_NVIDIA_FIPSBOTTLEROCKET_ARM_64_NVIDIA_FIPS
Bottlerocket FIPS AMI로 관리형 노드 그룹을 만들려면 생성 과정에서 해당 AMI 유형을 선택하세요. 자세한 내용은 클러스터용 관리형 노드 그룹 생성을 참조하세요. FIPS 지원 변형 선택에 대한 자세한 내용은 권장 Bottlerocket AMI ID 검색을 참조하세요.
지원되지 않는 AWS 리전에서 FIPS 엔드포인트 비활성화
Bottlerocket FIPS AMI는 AWS GovCloud(US) 리전을 포함한 미국에서 직접 지원됩니다. AMI는 사용 가능하지만 직접 지원되지 않는 AWS 리전에서는 시작 템플릿으로 관리형 노드 그룹을 만들어 AMI를 계속 사용할 수 있습니다.
Bottlerocket FIPS AMI는 부트스트랩 중 Amazon ECR FIPS 엔드포인트에 의존하며, 이는 미국 외부에서는 일반적으로 사용할 수 없습니다. Amazon ECR FIPS 엔드포인트를 사용할 수 없는 AWS 리전에서 FIPS 커널로 AMI를 사용하려면 다음 단계로 FIPS 엔드포인트를 비활성화하세요.
- 다음 내용으로 새 구성 파일을 만들거나 기존 구성 파일에 내용을 통합합니다.
[default]
use_fips_endpoint=false
- 파일 내용을 Base64 형식으로 인코딩합니다.
- 시작 템플릿의
UserData에서 TOML 형식으로 다음 인코딩된 문자열을 추가합니다.
[settings.aws]
config = ""
기타 설정은 GitHub의 Bottlerocket 설정 설명(Description of settings)을 참조하세요.
다음은 시작 템플릿의 UserData 예시입니다.
[settings]
motd = "Hello from eksctl!"
[settings.aws]
config = "W2RlZmF1bHRdCnVzZV9maXBzX2VuZHBvaW50PWZhbHNlCg==" # Base64-encoded string.
[settings.kubernetes]
api-server = ""
cluster-certificate = ""
cluster-name = ""
...
사용자 데이터로 시작 템플릿을 만드는 방법에 대한 자세한 내용은 시작 템플릿으로 관리형 노드 사용자 지정을 참조하세요.