이 페이지는 Azure AKS 배포에만 적용됩니다. FIPS 규정 준수 설정은 가상 머신 배포에는 적용되지 않습니다.
Federal Information Processing Standard(FIPS) 140-2 규정 준수는 특정 미국 정부 기관 및 규제 대상 산업 환경에서의 배포에 필수적입니다. Vantage 배포에서 FIPS 규정 준수를 활성화하려면 인프라 생성 및 설치 과정에서 특정 구성을 변경해야 합니다.
| Component | 표준 배포 | FIPS 활성화된 배포 |
|---|
| Redis Version | 6.2 이상 | 6.2 ~ 7.0.7만 지원 |
| File Share Type | SMB | NFS |
| AKS Node Pools | Standard | FIPS 활성화 |
| Storage Access | 스토리지 액세스: 퍼블릭 또는 프라이빗 | 스토리지 액세스: (NFS의 경우) 가상 네트워크 전용 |
FIPS 준수를 위해 Redis 버전은 6.2 이상 7.0.7 이하여야 합니다(그보다 최신 버전은 허용되지 않습니다). 버전 7.0.8 이상은 FIPS 배포에서 지원되지 않습니다.
FIPS가 활성화된 경우 SMB 공유 대신 Network File System(NFS) 공유가 사용됩니다:
- NFS 공유에 대한 스토리지 계정을 공용 IP 주소에서의 액세스를 허용하도록 구성할 수 있습니다
- 하지만 공용 IP 주소에서 NFS 공유를 마운트할 수는 없습니다
- 스토리지 계정에서 신뢰하는 가상 네트워크 내에 있는 머신에서만 NFS 공유에 연결할 수 있습니다
FIPS 규정을 준수하는 배포를 위한 Azure 인프라를 생성할 때 ARM 템플릿 배포에 enableFIPS=true Parameter를 추가합니다.
az deployment group create --name aks-cluster \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Cluster.Manual.json \
--parameters kubernetesClusterName=<cluster_name> \
--parameters enableFIPS=true
FIPS가 활성화된 클러스터를 생성한 후 다음 명령을 실행하여 NFS 공유를 사용하는 공유 스토리지 계정에 연결합니다:
# Get the principal ID of the AKS cluster
export principalId=$(az aks show --name <cluster_name> -g <resource_group_name> \
-o tsv --query identity.principalId)
# Get the subnet scope
export scope=$(az aks show --name <cluster_name> -g <resource_group_name> \
-o tsv --query agentPoolProfiles[*].vnetSubnetId | uniq)
# 클러스터가 스토리지에 액세스할 수 있도록 역할 할당 생성
az role assignment create --role "Contributor" \
--assignee-principal-type ServicePrincipal \
--assignee-object-id $principalId \
--scope $scope
az deployment group create --name storage \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/StorageAccounts.Template.json \
--parameters kubernetesClusterName=<cluster_name> \
--parameters enableFIPS=true
다음 Parameter를 설정하여 FIPS 지원을 사용하도록 합니다:
Azure Government Cloud에 배포하는 경우, k8s_fips_enabled 바로 뒤에 s3endpointSuffix Parameter를 추가합니다:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
Azure Government Cloud에 배포할 때에만 s3endpointSuffix를 추가하십시오. 일반적인 Azure 상용 클라우드 배포의 경우에는 해당 Parameter를 포함하지 마십시오.
env: vantage
poc: false
domain: yourdomain.gov
product_host: "vantage.{{ domain }}"
loadbalancer:
external_ip: X.X.X.X
container_registry_host: "registry.yourdomain.gov"
container_registry_user: "service"
container_registry_password: "password"
container_registry_name: "{{ container_registry_host }}/vantage"
techcore:
use_gpu_workers: false
use_nn_extraction_training_workers: false
logging:
enabled: true
elasticsearch:
enabled: false
file:
enabled: true
platform_admin_email: admin@yourdomain.gov
smtp:
host: X.X.X.X
login: null
password: ""
port: 587
useSSL: false
mailFrom: noreply@yourdomain.gov
database:
type: sqlserver
host: X.X.X.X
username: login
password: password
encrypt: true # Recommended for FIPS
s3storage:
skills:
accessKey: skills_storage_account_name
secretKey: skills_storage_account_key
processing:
accessKey: processing_storage_account_name
secretKey: processing_storage_account_key
temporary:
accessKey: temporary_storage_account_name
secretKey: temporary_storage_account_key
sharedfolder:
accessKey: sharedfolder_storage_account_name
secretKey: sharedfolder_storage_account_key
resourcegroup: your_resource_group
archive:
accessKey: archive_storage_account_name
secretKey: archive_storage_account_key
# Redis 클러스터 - FIPS의 경우 버전 6.2~7.0.7이어야 함
redis:
ips: ['172.16.10.101', '172.16.10.102', '172.16.10.103', '172.16.10.104', '172.16.10.105', '172.16.10.106']
port: 6379
password: redispassword
ssl: true # Recommended for FIPS
reporting:
enabled: false
id_reading:
enabled: false
# FIPS Configuration
k8s_fips_enabled: true
# Uncomment for Azure Government Cloud only:
# s3endpointSuffix: core.usgovcloudapi.net
배포 후 AKS 노드에서 FIPS가 활성화되어 있는지 확인합니다:
# 노드 정보 가져오기
kubectl get nodes -o wide
# 노드에서 FIPS 상태 확인 (먼저 노드에 연결)
cat /proc/sys/crypto/fips_enabled
# 출력: 1 (FIPS 활성화) 또는 0 (FIPS 비활성화)