Administración de la empresa > Depósito y replicación de ficheros > Depósito de ficheros > Uso de depósitos de ficheros externos > Configuración de los depósitos de ficheros de Windchill para utilizar Amazon S3 > Personalización de la codificación para los montajes de Amazon S3
  
Personalización de la codificación para los montajes de Amazon S3
En esta sección se explica la personalización de la codificación para almacenar contenido en un formato cifrado en Amazon S3. De fábrica, el contenido almacenado en Amazon S3 se cifra mediante el tipo de codificación serverSideEncryption-s3. El contenido almacenado en los depósitos basados en ficheros no tiene formato.
* 
El usuario es responsable de gestionar las opciones de codificación. El usuario debe asegurarse de que el contenido sea accesible en caso de cambios en las opciones de codificación.
Para personalizar la codificación de contenido en Amazon S3, escriba implementaciones de delegado de la siguiente manera:
1. Delegado del configurador de codificación de S3: escriba el delegado para seleccionar el tipo de codificación. Para utilizar otro tipo de codificación, se debe crear un delegado que devuelva el tipo de codificación previsto, implementar los ficheros de clase en el sitio maestro y en los servidores de ficheros registrados (es decir, sitios de réplica), y configurarlo mediante la herramienta de línea de comandos. El valor por defecto del delegado es com.ptc.windchill.objectstorage.amazons3.encryption.DefaultS3EncryptConfigurator. El delegado por defecto devuelve el tipo de codificación como serverSideEncryption-s3. Si desea utilizar otro tipo de codificación, se debe escribir un delegado que devuelva el tipo de codificación esperado, implementar los ficheros de clase y realizar la configuración con esta herramienta de línea de comandos. Si desea utilizar otro tipo de codificación, se debe escribir un delegado que devuelva el tipo de codificación esperado. Para obtener más información sobre la configuración, consulte Configuración de los depósitos de ficheros de Windchill para utilizar Amazon S3.
El siguiente es un delegado de muestra.
SampleS3EncryptConfigurator.java:
SampleS3EncryptConfigurator devuelve serverSideEncryption-kms como tipo de codificación. El contenido almacenado en Amazon S3 se cifra mediante la codificación de KMS. La API getS3EncryptionType recibe el nombre de agrupación y la clave de objeto como argumento. El tipo de codificación se puede programar mediante el nombre de cubo y la clave de objeto. Por ejemplo, para la agrupación b1, devuelva el tipo de codificación como serverSideEncryption-kms y, para la agrupación b2, devuelva el tipo de codificación como serverSideEncryption-s3.
Los valores válidos de tipo de codificación son:
a. serverSideEncryption-s3: el contenido se almacena mediante la codificación del servidor con las claves gestionadas de AWS S3.
b. serverSideEncryption-kms: el contenido se almacena mediante la codificación del servidor con las claves gestionadas de AWS KMS.
c. serverSideEncryption-customerProvidedKeys: el contenido se almacena mediante la codificación del servidor con las claves proporcionadas por el cliente.
2. SSEKMSKeyProvider Delegate: escriba el delegado para identificar el ID de clave de KMS durante la codificación de contenido en Amazon S3. Este delegado es aplicable si el tipo de la codificación está configurado como serverSideEncryption-kms. Windchill proporciona la implementación por defecto de este delegado. La implementación por defecto utiliza el ID de clave de AWS KMS por defecto específico de una región. Para utilizar otros ID de clave de KMS, es necesario escribir la implementación de este delegado y configurarlo para seleccionar la implementación. Este delegado se aplica si el tipo de codificación se ha configurado en serverSideEncryption-kms. El valor de fábrica por defecto del delegado es com.ptc.windchill.objectstorage.amazons3.encryption.ssekms.DefaultSSEKMSKeyProvider. Si el delegado por defecto no devuelve ningún ID de clave de KMS, se utiliza el ID de clave de AWS KMS por defecto para la codificación. Para utilizar ID de clave de KMS propios, se debe escribir un delegado que devuelva los ID de clave de KMS esperados, implementar los ficheros de clase y realizar la configuración con esta herramienta de línea de comandos. Para obtener más información sobre la configuración, consulte Configuración de los depósitos de ficheros de Windchill para utilizar Amazon S3.
* 
No utilice esta implementación, ya que se encuentra en un entorno de producción.
A continuación, se muestra el delegado de ejemplo:
SampleSSEKMSKeyProvider.java:Esta implementación de ejemplo demuestra cómo se puede devolver el ID de clave de KMS de una región específica. Aquí se obtiene primero el objeto AmazonS3Client. Mediante AmamzonS3Client, recuperamos la ubicación y la región de un nombre de cubo determinado. Consulte el documento java de AWS para obtener más información al respecto.
3. SSECSecKeyGenerator Delegate: si se configura el tipo de codificación como serverSideEncryption-customerProvidedKeys, se debe crear la implementación de este delegado y configurar el delegado. Este delegado solo se aplica si el tipo de codificación se ha configurado en serverSideEncryption-customerProvidedKeys. No hay implementación de fábrica por defecto para este delegado. Escriba un delegado que gestione las claves secretas, implemente los ficheros de clase y realice la configuración con esta herramienta de línea de comandos. Para obtener más información sobre la configuración, consulte Configuración de los depósitos de ficheros de Windchill para utilizar Amazon S3.
A continuación, se muestra el delegado de ejemplo:
SampleSSECSecKeyGenerator.java: esta es una implementación de ejemplo que demuestra cómo crear una SecretKey. En esta implementación de muestra se busca una SecretKey existente. La SecretKey se devuelve si se encuentra. De lo contrario, genere una nueva SecretKey, almacénela en un fichero en el disco y devuélvala. Se puede decidir la estrategia para almacenar con seguridad la SecretKey. Asimismo, esta implementación de muestra utiliza la SecretKey única para todos los ficheros del depósito. Es posible escribir un algoritmo propio para gestionar las distintas SecretKeys de los cubos o los objetos almacenados en AWS S3.