메인 콘텐츠로 건너뛰기
이 페이지는 Azure AKS 배포에만 적용됩니다. FIPS 규정 준수 설정은 가상 머신 배포에는 적용되지 않습니다.

개요

Federal Information Processing Standard(FIPS) 140-2 규정 준수는 특정 미국 정부 기관 및 규제 대상 산업 환경에서의 배포에 필수적입니다. Vantage 배포에서 FIPS 규정 준수를 활성화하려면 인프라 생성 및 설치 과정에서 특정 구성을 변경해야 합니다.

표준 배포와의 주요 차이점

Component표준 배포FIPS 활성화된 배포
Redis Version6.2 이상6.2 ~ 7.0.7만 지원
File Share TypeSMBNFS
AKS Node PoolsStandardFIPS 활성화
Storage Access스토리지 액세스: 퍼블릭 또는 프라이빗스토리지 액세스: (NFS의 경우) 가상 네트워크 전용

요구 사항

Redis 버전 제한

FIPS 준수를 위해 Redis 버전은 6.2 이상 7.0.7 이하여야 합니다(그보다 최신 버전은 허용되지 않습니다). 버전 7.0.8 이상은 FIPS 배포에서 지원되지 않습니다.

NFS 공유 관련 고려 사항

FIPS가 활성화된 경우 SMB 공유 대신 Network File System(NFS) 공유가 사용됩니다:
  • NFS 공유에 대한 스토리지 계정을 공용 IP 주소에서의 액세스를 허용하도록 구성할 수 있습니다
  • 하지만 공용 IP 주소에서 NFS 공유를 마운트할 수는 없습니다
  • 스토리지 계정에서 신뢰하는 가상 네트워크 내에 있는 머신에서만 NFS 공유에 연결할 수 있습니다

FIPS 적용 인프라 생성

FIPS 규정을 준수하는 배포를 위한 Azure 인프라를 생성할 때 ARM 템플릿 배포에 enableFIPS=true Parameter를 추가합니다.

FIPS를 사용하는 AKS 클러스터 생성

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

NFS 공유 액세스 구성

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

FIPS를 사용하여 스토리지 계정 만들기

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

env_specific.yml

다음 Parameter를 설정하여 FIPS 지원을 사용하도록 합니다:
k8s_fips_enabled: true

Azure Government Cloud

Azure Government Cloud에 배포하는 경우, k8s_fips_enabled 바로 뒤에 s3endpointSuffix Parameter를 추가합니다:
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
Azure Government Cloud에 배포할 때에만 s3endpointSuffix를 추가하십시오. 일반적인 Azure 상용 클라우드 배포의 경우에는 해당 Parameter를 포함하지 마십시오.

FIPS 전체 구성 예제

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 비활성화)