> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cumplimiento de FIPS

> Configure el cumplimiento de FIPS 140-2 para ABBYY Vantage autoalojado en Azure AKS: versiones de Redis, recursos compartidos NFS, pools de nodos habilitados para FIPS y reglas de almacenamiento.

<Note>
  Esta página se aplica solo a implementaciones de **Azure AKS**. La configuración de cumplimiento de FIPS no se aplica a implementaciones de máquinas virtuales.
</Note>

<div id="overview">
  ## Descripción general
</div>

El cumplimiento de la Norma Federal de Procesamiento de Información (FIPS) 140-2 es obligatorio para determinadas implementaciones gubernamentales de US y de sectores regulados. Para habilitar el cumplimiento de FIPS en su implementación de Vantage, se requieren cambios de configuración específicos durante la creación de la infraestructura y la instalación.

<div id="key-differences-from-standard-deployment">
  ## Diferencias clave con la implementación estándar
</div>

| Componente                             | Implementación estándar | Implementación con FIPS habilitado |
| -------------------------------------- | ----------------------- | ---------------------------------- |
| Versión de Redis                       | 6.2 o posterior         | Solo de 6.2 a 7.0.7                |
| Tipo de recurso compartido de archivos | SMB                     | NFS                                |
| Pools de nodos de AKS                  | Estándar                | Habilitados para FIPS              |
| Acceso al almacenamiento               | Público o privado       | Solo red virtual (para NFS)        |

<div id="requirements">
  ## Requisitos
</div>

<div id="redis-version-restriction">
  ### Restricción de versión de Redis
</div>

<Warning>
  Para cumplir con FIPS, Redis debe tener una versión entre **6.2 y 7.0.7** (no superior). Las versiones 7.0.8 y posteriores no son compatibles con implementaciones con FIPS.
</Warning>

<div id="nfs-share-considerations">
  ### Consideraciones sobre los recursos compartidos NFS
</div>

Cuando FIPS está habilitado, se usan recursos compartidos de Network File System (NFS) en lugar de recursos compartidos SMB:

* La configuración de la cuenta de almacenamiento del recurso compartido NFS puede permitir el acceso desde direcciones IP públicas
* Sin embargo, **no puede montar** recursos compartidos NFS desde una dirección IP pública
* Solo puede conectarse a recursos compartidos NFS desde una máquina en una red virtual de confianza autorizada por la cuenta de almacenamiento

<div id="infrastructure-creation-with-fips">
  ## Creación de infraestructura con FIPS
</div>

Al crear infraestructura de Azure para una implementación compatible con FIPS, agregue el parámetro `enableFIPS=true` a las implementaciones de plantillas de ARM.

<div id="create-aks-cluster-with-fips">
  ### Crear clúster de AKS con FIPS
</div>

```bash theme={null}
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
```

<div id="configure-nfs-share-access">
  ### Configurar el acceso al recurso compartido NFS
</div>

Después de crear el clúster habilitado para FIPS, ejecute los siguientes comandos para conectar la cuenta de almacenamiento compartida al recurso compartido NFS:

```bash theme={null}
# Obtener el ID de principal del clúster de AKS
export principalId=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query identity.principalId)

# Obtener el ámbito de la subred
export scope=$(az aks show --name <cluster_name> -g <resource_group_name> \
  -o tsv --query agentPoolProfiles[*].vnetSubnetId | uniq)

# Crear asignación de rol para que el clúster acceda al almacenamiento
az role assignment create --role "Contributor" \
  --assignee-principal-type ServicePrincipal \
  --assignee-object-id $principalId \
  --scope $scope
```

<div id="create-storage-accounts-with-fips">
  ### Crear cuentas de almacenamiento con FIPS
</div>

```bash theme={null}
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
```

<div id="configuration-parameters">
  ## Parámetros de configuración
</div>

<div id="env_specificyml">
  ### env\_specific.yml
</div>

Habilite la compatibilidad con FIPS configurando el siguiente parámetro:

```yaml theme={null}
k8s_fips_enabled: true
```

<div id="azure-government-cloud">
  ### Azure Government Cloud
</div>

Si va a implementar en Azure Government Cloud, agregue el parámetro `s3endpointSuffix` inmediatamente después de `k8s_fips_enabled`:

```yaml theme={null}
k8s_fips_enabled: true
s3endpointSuffix: core.usgovcloudapi.net
```

<Note>
  Añade `s3endpointSuffix` solo al implementar en Azure Government Cloud. No incluyas este parámetro en las implementaciones estándar de la nube comercial de Azure.
</Note>

<div id="complete-fips-configuration-example">
  ## Ejemplo completo de configuración de FIPS
</div>

```yaml theme={null}
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  # Recomendado para 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

# Clúster de Redis: debe ser la versión 6.2 a 7.0.7 para FIPS
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  # Recomendado para FIPS

reporting:
  enabled: false

id_reading:
  enabled: false

# Configuración de FIPS
k8s_fips_enabled: true

# Descomentar solo para Azure Government Cloud:
# s3endpointSuffix: core.usgovcloudapi.net
```

<div id="verification">
  ## Verificación
</div>

Tras la implementación, verifique que FIPS esté habilitado en sus nodos de AKS:

```bash theme={null}
# Obtener información del nodo
kubectl get nodes -o wide

# Verificar el estado de FIPS en un nodo (conectarse primero al nodo)
cat /proc/sys/crypto/fips_enabled
# Salida: 1 (FIPS habilitado) o 0 (FIPS deshabilitado)
```

<div id="related-documentation">
  ## Documentación relacionada
</div>

* [Requisitos del sistema](/es/vantage/self-hosted/v2.7/system-requirements) - Requisitos completos, incluida la configuración del clúster de Redis
* [Creación de infraestructura de Azure](/es/vantage/self-hosted/v2.7/azure-infrastructure) - Creación paso a paso de los recursos de Azure
* [Instalación](/es/vantage/self-hosted/v2.7/installation) - Guía completa de instalación
