Saltar al contenido

¡Transforma tus conexiones en dinero para el final del año con nuestro nuevo Programa de Indicación de Clientes! Descubre más

Esta documentación es para la versión 4 y posteriores de App Builder, el nuevo nombre de Vinyl. Accede a la documentación de Vinyl aquí.

Configuración de cifrado de datos en Jitterbit App Builder

Descripción general

App Builder utiliza el cifrado de datos con dos fines:

  • Protección de tokens de seguridad como cookies de sesión
  • cifrado de columnas a nivel de aplicación

Ambos utilizan la misma tecnología de cifrado de datos subyacente. En concreto, utilizan la API de protección de datos de ASP.Net. Aunque App Builder intentará configurar la biblioteca de protección de datos automáticamente, es posible que se requiera configuración adicional.

Claves de cifrado de datos

Las claves de cifrado de datos (DEK) son claves de cifrado simétricas que se utilizan para proteger los datos. App Builder admite múltiples políticas configurables de almacenamiento y cifrado de claves. Los administradores deben elegir las políticas adecuadas para su ambiente.

Almacenamiento

App Builder admite las siguientes políticas de almacenamiento clave:

  • Sistema de archivos, ya sea local o compartido en red
  • Base de datos
  • Servicios web de Amazon (AWS) S3
  • Almacén de parámetros de AWS Systems Manager

Cifrado

Según la ubicación de almacenamiento, los administradores deberían considerar el cifrado de claves. App Builder admite las siguientes políticas de cifrado de claves:

  • Certificado
  • Servicio de administración de claves de AWS

Configuración

Las políticas de almacenamiento de claves y cifrado se configuran al iniciar. La configuración se puede realizar mediante el archivo appsettings.json:

{
  "DataEncryption": {
    "KeyStorage": "FileSystem",
    "KeyEncryption": "None"
  }
}

La configuración también puede ser proporcionada por variables de ambiente:

export DATAENCRYPTION__KEYSTORAGE=FileSystem
export DATAENCRYPTION__KEYENCRYPTION=None

Consulte Configuración de App Builder al inicio para obtener más información.

Almacenamiento

Sistema de archivos

De forma predeterminada, App Builder almacena las claves en el sistema de archivos como texto sin formato. Se almacenan en el directorio keys, dentro del directorio de instalación de App Builder.

Ajustes
Configuración Ejemplo Notas
Almacenamiento de claves FileSystem Indica que App Builder debe almacenar las claves en el sistema de archivos. Esta es la política predeterminada.
Directorio keys Identifica el directorio donde se almacenarán las claves. El valor predeterminado es el directorio keys, ubicado debajo del directorio de instalación de App Builder. El proceso de App Builder debe tener control total sobre este directorio. En Windows, esto se logra otorgando permiso de usuario al grupo de aplicaciones de IIS.
Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "FileSystem",
     "Directory": "keys"
  }
}

Base de datos

Las claves se pueden almacenar en la base de datos de * App Builder*. Tenga en cuenta que, dado que se utilizan para cifrar datos que también se almacenan en la base de datos, las claves en sí deben cifrarse.

Ajustes
Configuración Ejemplo Notas
Almacenamiento de claves Database Indica que App Builder debe almacenar claves en la base de datos App Builder.
Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "Database",
     "KeyEncryption": "Certificate",
     "Certificate": "...base64-encoded...",
     "CertificatePassword": "password"
  }
}

AWS S3

El almacenamiento local de instancias EC2 no suele utilizarse para la persistencia a largo plazo. Como alternativa, App Builder admite el almacenamiento de claves en buckets de S3.

Ajustes
Configuración Ejemplo Notas
Almacenamiento de claves S3 Indica que App Builder debe almacenar claves en un bucket de AWS S3.
Punto final del cubo S3 https://s3.amazonaws.com/vinyl-data-encryption-keys
-o-
https://vinyl-data-encryption-keys.s3.amazonaws.com/
Identifica la región de AWS y el bucket de S3 donde se almacenarán las claves de S3. La URL debe tener uno de los siguientes formatos:
  • https://s3{-aws-region}.amazonaws.com/{bucket}
  • https://{bucket}.s3{-aws-region}.amazonaws.com
Para obtener más información, consulte el siguiente documento: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html
S3KeyPrefix dev Opcional. Permite que varios ambientes almacenen claves en el mismo contenedor, aislándolas por prefijo.
Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "S3",
     "S3BucketEndpoint": "https://{bucket}.s3{-aws-region}.amazonaws.com",
     "S3KeyPrefix": "production"
  }
}

Almacén de parámetros del administrador de sistemas de AWS

El almacenamiento local de instancias EC2 no suele utilizarse para la persistencia a largo plazo. Como alternativa, las claves pueden almacenarse en el almacén de parámetros de AWS Systems Manager. Las claves almacenadas en el almacén de parámetros pueden cifrarse mediante el Servicio de administración de claves (KMS).

Ajustes
Configuración Ejemplo Notas
Almacenamiento de claves ParameterStore Indica que App Builder debe almacenar claves en el almacén de parámetros de AWS Systems Manager.
PrefijoNombreParámetro /production Aísla las claves por prefijo.
KmsKeyId arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab Opcional. Identifica la clave KMS que debe usarse para cifrar las claves. El valor debe ser un nombre de recurso de Amazon (ARN).
Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "ParameterStore",
     "ParameterNamePrefix": "/production",
     "KmsKeyId": "arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  }
}

Cifrado

Ninguno

De forma predeterminada, App Builder no cifrar las claves. Sin embargo, estas pueden cifrarse de forma transparente según la política de almacenamiento. Por ejemplo, un bucket de S3 puede configurarse para cifrar todos los datos.

Ajustes
Configuración Ejemplo Notas
Cifrado de clave None Indica que las claves deben almacenarse en texto sin formato.
Ejemplo
{
  "DataEncryption": {
    "KeyStorage": "FileSystem",
    "KeyEncryption": "None"
  }
}

Certificado

Las claves se pueden cifrar mediante un certificado X.509.

Ajustes
Configuración Ejemplo Notas
Cifrado de clave Certificate Indica que las claves deben cifrarse con un certificado X.509. Los administradores deben proporcionar Certificate o CertificateThumbprint.
Certificado Certificado X.509. El certificado debe proporcionarse como un certificado PKCS#12 (PFX) codificado en base64 con clave privada. Requiere ContraseñaDeCertificado.
CertificatePassword Contraseña del certificado X.509.

Huella digital del certificado X.509. App Builder intentará cargar el certificado desde el almacén de certificados personal de la cuenta del equipo local.

Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "FileSystem",
     "CertificateThumbprint": "C123B3E899807189F11F0EC4AC320760F00ECE34"
  }
}

Servicio de gestión de claves de AWS

App Builder se puede configurar para cifrar claves mediante AWS Key Management Service (KMS).

Ajustes
Configuración Ejemplo Notas
Cifrado de clave Kms Indica que App Builder debe cifrar claves con AWS KMS.
KmsKeyId arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab Identifica la clave KMS que debe usarse para cifrar las claves. El valor debe ser un nombre de recurso de Amazon (ARN).
Ejemplo
{
  "DataEncryption": {
     "KeyStorage": "Database",
     "KeyEncryption": "Kms",
     "KmsKeyId": "arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  }
}

Servicios web de Amazon

Política de depósito S3

Al almacenar claves de cifrado en un depósito S3, considere usar una política de rol para otorgarle a la instancia EC2 acceso al depósito.

Ejemplo
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::{bucket-name}/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "*"
        }
    ]
}

Política de claves KMS

Al cifrar claves con KMS, considere usar una política de rol para otorgarle a la instancia EC3 acceso a la clave.

Ejemplo
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:GenerateDataKey",
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}

Elastic Beanstalk

App Builder viene con un secuencia de comandos .ebextensions que registra automáticamente las propiedades del ambiente.

Valores predeterminados

La configuración predeterminada de Elastic Beanstalk varía según la versión de App Builder.

Configuración 3.2 y inferior 3.3 y superior
Almacenamiento de claves S3 Database
Punto final del cubo S3 https://{bucket}.s3{-aws-region}.amazonaws.com
S3BucketPrefix {elastic-beanstalk-environment-name}
Cifrado de clave Kms
KmsKeyId {kms-key-arn}

Precaución

App Builder no se iniciará con las propiedades predeterminadas del ambiente de Elastic Beanstalk. Los administradores deben cambiar el KmsKeyId o elegir una política de cifrado de claves alternativa.

Proveedores de criptografía

App Builder es una aplicación .NET. En .NET, las implementaciones de algoritmos criptográficos pueden ser proporcionadas por uno de tres proveedores de criptografía.

Proveedor de Servicios de Criptografía (CSP): El Proveedor de Servicios de Criptografía es un envoltorio de la API de Criptografía de Windows (CAPI). CAPI ha quedado obsoleto. Por lo tanto, este proveedor no es compatible. Criptografía de Próxima Generación (CNG): Los algoritmos implementados por el proveedor de CNG suelen ser compatibles con FIPS. Este es el proveedor de criptografía predeterminado. - Administrado: Los algoritmos implementados por este proveedor no suelen ser compatibles con FIPS. Pueden ser más lentos que las implementaciones CNG equivalentes. Sin embargo, las implementaciones administradas se entregan con .NET y, por lo tanto, están disponibles en todas las plataformas.

Ajustes

Configuración Ejemplo Notas
Proveedor de criptomonedas Cng Determina el proveedor de cifrado. Los valores válidos son:
  • Cng Criptografía de última generación. Predeterminado.
  • Managed- Implementaciones gestionadas.

Ejemplo

{
  "DataEncryption": {
    "CryptoProvider": "Managed"
  }
}

Importar

Las claves de cifrado de datos se pueden importar al iniciar el sistema. Normalmente, esto se hace para migrar claves de una ubicación de almacenamiento a otra. Las claves se descifrarán y cifrarán durante el proceso.

Ajustes

Configuración Ejemplo Notas
Importar Conjunto alternativo de políticas de cifrado y almacenamiento de claves.

Ejemplo

{
  "DataEncryption": {
    "KeyStorage": "Database",
    "KeyEncryption": "Certificate",
    "Certificate": "...base64-encoded...",
    "CertificatePassword": "password",
    "Import": {
      "KeyStorage": "FileSystem",
      "Directory": "keys"
    }
  }
}