Configuración del acceso a un bucket de Amazon S3
Una vez identificado el bucket de Amazon S3, dé a la instantánea permiso para acceder a él.
Temas
Identificación del bucket de Amazon S3 para exportación
Identifique el bucket de Amazon S3 al que se exportará la instantánea de base de datos. Utilice un bucket de S3 ya existente, o bien cree un bucket S3 nuevo.
nota
El bucket de S3 al que se realizará la exportación debe estar en la misma región de AWS que la instantánea.
Para obtener más información acerca de cómo trabajar con buckets de Amazon S3, consulte lo siguiente en Guía del usuario de Amazon Simple Storage Service:
Proporcionar acceso a un bucket de Amazon S3 mediante un rol de IAM
Antes de exportar datos de instantáneas de bases de datos a Amazon S3, conceda a las tareas de exportación de instantáneas permiso de acceso de escritura al bucket de Amazon S3.
Para conceder este permiso, cree una política de IAM que proporcione acceso al bucket y cree un rol de IAM y adjunte la política al rol. Más adelante, puede asignar el rol de IAM a la tarea de exportación de instantáneas.
importante
Si prevé utilizar la AWS Management Console para exportar la instantánea, puede elegir crear la política de IAM y el rol automáticamente al exportar la instantánea. Para obtener instrucciones, consulte Creación de tareas de exportación de instantáneas.
Para dar a las tareas de instantáneas de base de datos acceso a Amazon S3
-
Cree una política de IAM. Esta política proporciona los permisos de bucket y objeto que permiten a la tarea de exportación de instantáneas obtener acceso a Amazon S3.
En la política, incluya las siguientes acciones obligatorias para permitir transferir archivos desde Amazon Aurora a un bucket de S3:
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
En la política, incluya los siguientes recursos para identificar el bucket de S3 y los objetos incluidos en él. En la siguiente lista de recursos se muestra el formato de nombre de recurso de Amazon (ARN) para obtener acceso a Amazon S3.
-
arn:aws:s3:::
amzn-s3-demo-bucket
-
arn:aws:s3:::
amzn-s3-demo-bucket
/*
Para obtener más información sobre cómo crear una política de IAM para Amazon Aurora, consulte Creación y uso de una política de IAM para el acceso a bases de datos de IAM. Consulte también el Tutorial: Crear y asociar su primera política administrada por el cliente en la Guía del usuario de IAM.
El siguiente comando de la AWS CLI crea una política de IAM denominada
ExportPolicy
con estas opciones. Otorga acceso a un bucket denominadoamzn-s3-demo-bucket
.nota
Después de crear la política, apunte el ARN de esta. Cuando asocia la política a un rol de IAM, necesita el ARN para realizar un paso posterior.
aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }' -
-
Cree un rol de IAM que Aurora pueda asumir en su nombre para acceder a sus buckets de Amazon S3. Para obtener más información, vea Crear un rol para delegar permisos a un IAM usuario en Guía del usuario de IAM.
En el siguiente ejemplo se muestra cómo se usa el comando de la AWS CLI para crear un rol denominado
rds-s3-export-role
.aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
-
Asocie la política de IAM que creó al rol de IAM creado.
El siguiente comando de la AWS CLI asocia la política creada anteriormente al rol denominado
rds-s3-export-role
. Sustituya
por el ARN de la política que ha apuntado en el paso anterior.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
Uso de un bucket de Amazon S3 en diversas cuentas
Puede utilizar buckets de Amazon S3 en cuentas de AWS. Para utilizar un bucket en diversas cuentas, agregue una política de bucket para permitir el acceso al rol de IAM que está utilizando para las exportaciones de S3. Para obtener más información, consulte el Ejemplo 2: Propietario del bucket que concede permisos de bucket en diversas cuentas.
-
Adjunte una política de bucket a su bucket, como se muestra en el siguiente ejemplo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] }
Uso de un AWS KMS key en diversas cuentas
Puede utilizar una AWS KMS key en diversas cuentas para cifrar las exportaciones de Amazon S3. En primer lugar, agregue una política de claves a la cuenta local y, a continuación, agregue las políticas de IAM en la cuenta externa. Para obtener más información, consulte Allowing users in other accounts to use a KMS key (Permitir que los usuarios de otras cuentas utilicen una clave KMS).
Para utilizar una clave KMS en diversas cuentas
-
Agregue una política de claves a la cuenta local.
El siguiente ejemplo proporciona
ExampleRole
yExampleUser
en la cuenta externa 444455556666 permisos en la cuenta local 123456789012.{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
-
Agregar políticas de IAM a la cuenta externa.
La siguiente política de IAM de ejemplo permite a la entidad principal utilizar la clave KMS en la cuenta 123456789012 para operaciones criptográficas. Para conceder este permiso a
ExampleRole
yExampleUser
de la cuenta 444455556666, adjunte la política en esa cuenta.{ "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }