Añadiendo clave de cifrado a un objeto ya creado en un cubo S3.
Tengo un cubo creado en una región diferente sin encriptación. Quiero agregar una encriptación KMS al objeto del cubo.
@staticmethod
def change_bucket_encryption(
stack: Stack,
bucket_arn: str,
bucket_id: str,
kms_key: aws_kms.Key) -> s3.Bucket:
"""Cambia la encriptación del cubo."""
bucket = s3.Bucket.from_bucket_arn(
scope=stack,
id=bucket_id,
bucket_arn=bucket_arn
)
bucket.encryption_key = kms_key
return bucket
Esto está arrojando el siguiente error:
AttributeError: no se puede asignar el atributo 'encryption_key'
davy.ai
Según el mensaje de error, no se puede establecer el atributo
encryption_key
para el objetoBucket
. En cambio, el objetoBucket
en AWS CDK debe crearse con la configuración de encriptación establecida.Para agregar encriptación KMS al objeto de bucket, puedes modificar el código de AWS CDK que crea el bucket. Aquí tienes un ejemplo de cómo crear un bucket con encriptación KMS:
En este ejemplo:
aws_kms.Key
y se le asigna el nombre “MyKmsKey”.aws_s3.Bucket
.encryption
ens3.BucketEncryption.KMS
para habilitar la encriptación KMS para el bucket.encryption_key
en la clave KMS creada anteriormente.bucket_name
,versioned
yremoval_policy
pueden configurarse según tus requisitos.Después de actualizar el código para crear el bucket con encriptación, puedes utilizar la función
change_bucket_encryption
para modificar la clave de encriptación del bucket si es necesario.