メインコンテンツへスキップ
このページの内容は Azure AKS デプロイメントにのみ適用されます。FIPS コンプライアンスの構成は、Virtual Machine デプロイメントには適用されません。

概要

Federal Information Processing Standard (FIPS) 140-2 への準拠は、特定の米国政府機関および規制対象業界での導入において求められます。Vantage の導入で FIPS 準拠を有効にするには、インフラストラクチャの作成およびインストール時に特定の構成変更を行う必要があります。

標準デプロイメントとの主な違い

コンポーネント標準デプロイメントFIPS 対応デプロイメント
Redis バージョン6.2 以降6.2〜7.0.7 のみ
ファイル共有の種類SMBNFS
AKS ノードプールStandardFIPS 対応
ストレージ アクセスパブリックまたはプライベート仮想ネットワークのみ(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

構成 Parameters

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: [email protected]

smtp:
  host: X.X.X.X
  login: null
  password: ""
  port: 587
  useSSL: false

mailFrom: [email protected]

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無効)