Configuración del cifrado del lado servidor de los artefactos almacenados en Amazon S3 para CodePipeline - AWS CodePipeline

Configuración del cifrado del lado servidor de los artefactos almacenados en Amazon S3 para CodePipeline

Hay dos formas de configurar el cifrado del lado servidor para los artefactos de Amazon S3:

  • Cuando se crea una canalización con el asistente Crear canalización, CodePipeline crea un bucket de artefactos de S3 y las Clave administrada de AWS predeterminadas. La Clave administrada de AWSse cifra junto con los datos del objeto y AWS se encarga de su administración.

  • Puede crear y administrar su propia clave administrada por el cliente.

importante

CodePipeline solo es compatible con claves de KMS simétricas. No utilice una clave de KMS asimétrica para cifrar los datos en el bucket de S3.

Si utiliza la clave de S3 predeterminada, no podrá cambiar ni eliminar esta Clave administrada de AWS. Si utiliza una clave administrada por el cliente de AWS KMS para cifrar o descifrar artefactos en el bucket de S3, podrá cambiar o rotar esta clave administrada por el cliente según sea necesario.

Amazon S3 admite políticas de bucket que podrá usar si requiere cifrado del lado del servidor para todos los objetos almacenados en un bucket. Por ejemplo, la siguiente política de bucket deniega el permiso de carga de objeto (s3:PutObject) para todos, si la solicitud no incluye el encabezado x-amz-server-side-encryption, que solicita el cifrado del lado del servidor con SSE-KMS.

{ "Version": "2012-10-17", "Id": "SSEAndSSLPolicy", "Statement": [ { "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }, { "Sid": "DenyInsecureConnections", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }

Para obtener más información sobre el cifrado del lado del servidor y AWS KMS, consulte Protección de datos mediante el cifrado del lado del servidor y Protección de datos mediante el cifrado del lado del servidor con KMS almacenadas en AWS Key Management Service Key Management Service (SSE-KMS).

Para obtener más información sobre AWS KMS, consulte la Guía para desarrolladores de AWS Key Management Service.

Ver Clave administrada de AWS

Cuando se usa el asistente Create Pipeline (Crear canalización) para crear la primera canalización, se crea un bucket de S3 automáticamente en la misma región en la que se creó la canalización. El bucket se utiliza para almacenar artefactos de canalización. Cuando se ejecuta una canalización, los artefactos se colocan y se recuperan en el bucket de S3. De forma predeterminada, CodePipeline utiliza el cifrado del lado del servidor AWS KMS con Amazon Clave administrada de AWS S3 (la clave). aws/s3 Esta Clave administrada de AWS se crea y almacena en su cuenta de AWS. Cuando se recuperan artefactos del bucket de S3, usa el mismo proceso de SSE-KMS para descifrarlos.

Para ver la información de sus Clave administrada de AWS
  1. Inicie sesión en la AWS Management Console y abra la consola de AWS KMS.

  2. Si aparece una página de bienvenida, elija Empezar ahora.

  3. En el panel de navegación, elija Claves administradas de AWS.

  4. En Filtrar, elija la región de la canalización. Por ejemplo, si la canalización se creó en us-east-2, asegúrese de que el filtro esté establecido en Este de EE. UU. (Ohio).

    Para obtener más información acerca de las regiones y los puntos de conexión disponibles para CodePipeline, consulte Puntos de conexión y cuotas de AWS CodePipeline.

  5. En la lista de claves de cifrado, elija la clave con el alias usado para su canalización (de forma predeterminada, aws/s3). Se mostrará información básica acerca de la clave.

Configurar el cifrado del lado del servidor para los buckets de S3 utilizando AWS CloudFormation o AWS CLI.

Cuando se crea una canalización mediante AWS CloudFormation o la AWS CLI, se debe configurar manualmente el cifrado del lado del servidor. Utilice la política del bucket de ejemplo anterior y cree su propia clave administrada por el cliente. También puede usar sus propias claves en lugar de la clave predeterminada de Clave administrada de AWS. Algunas de las razones para elegir su propia clave son las siguientes:

  • Desea rotar la clave según una programación para satisfacer los requisitos de negocio o de seguridad de la organización.

  • Desea crear una canalización que use los recursos asociados a otra cuenta de AWS. Esto requiere el uso de una clave administrada por el cliente. Para obtener más información, consulte Crear una canalización en CodePipeline que use recursos de otra cuenta de AWS.

Las prácticas criptográficas recomendadas desaconsejan la reutilización generalizada de claves de cifrado. Es recomendable que rote la clave con regularidad. Para crear nuevo material criptográfico para sus claves de AWS KMS, puede crear nuevas claves KMS y, a continuación, cambiar sus aplicaciones o alias para que utilicen las claves. También puede habilitar la rotación automática de claves para una clave administrada por el cliente existente.

Para rotar la clave gestionada por el cliente, consulte Rotación de claves.

importante

CodePipeline solo es compatible con claves de KMS simétricas. No utilice una clave de KMS asimétrica para cifrar los datos en el bucket de S3.