Permisos para el bucket de Amazon S3 para el canal de entrega de AWS Config
importante
Esta página trata sobre cómo configurar el bucket de Amazon S3 para el canal de entrega de AWS Config. Esta página no trata sobre el tipo de recurso AWS::S3::Bucket que puede registrar el registrador de configuración de AWS Config.
De forma predeterminada, los buckets y los objetos de Amazon S3 son privados. Solo la Cuenta de AWS que creó el bucket (el propietario del recurso) tiene permisos de acceso. Los propietarios de recursos pueden conceder acceso a otros recursos y usuarios creando políticas de acceso.
Cuando AWS Config crea automáticamente un bucket de S3, añade los permisos necesarios. No obstante, si especifica un bucket de S3 existente, debe agregar estos permisos de forma manual.
Temas
Permisos necesarios para el bucket de Amazon S3 cuando se utilizan roles de IAM
AWS Config utiliza el rol de IAM que asignó al registrador de configuración para enviar el historial de configuración y las instantáneas a los buckets de S3 de su cuenta. Para la entrega entre cuentas, AWS Config primero intenta usar el rol de IAM asignado. Si la política de bucket no concede acceso a WRITE al rol de IAM, AWS Config utiliza la entidad principal de servicio config.amazonaws.com. La política de bucket debe conceder acceso a WRITE a config.amazonaws.com para completar la entrega. Tras una entrega correcta, AWS Config conserva la propiedad de todos los objetos que entrega al bucket de S3 multicuenta.
AWS Config llama a la API HeadBucket de Amazon S3 con el rol de IAM que asignó al registrador de configuración para confirmar si el bucket de S3 existe y su ubicación. Si no tiene los permisos necesarios para que AWS Config confirme, aparecerá un error AccessDenied en los registros de AWS CloudTrail. Sin embargo, AWS Config puede seguir proporcionando el historial y las instantáneas de configuración aunque AWS Config no disponga de los permisos necesarios para confirmar la existencia del bucket de S3 y su ubicación.
Permisos mínimos
La API HeadBucket de Amazon S3 requiere esta acción s3:ListBucket.
Permisos necesarios para el bucket de Amazon S3 cuando se utilizan roles vinculados a servicios
El rol AWS Config vinculado a servicios no tiene permiso para colocar objetos en los buckets de Amazon S3. Si configura AWS Config con un rol vinculado a servicios, AWS Config utilizará la entidad principal de servicio de config.amazonaws.com para entregar el historial y las instantáneas de configuración. La política de bucket de S3 de su cuenta o de los destinos de varias cuentas debe incluir permisos para que la entidad principal de servicio de AWS Config escriba objetos.
Concesión de acceso al bucket de Amazon S3 a AWS Config
Complete los siguientes pasos para permitir que AWS Config envíe el historial y las instantáneas de configuración a un bucket de Amazon S3.
-
Inicie sesión en Consola de administración de AWS utilizando la cuenta que tiene el bucket de S3.
Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3
. -
Seleccione el bucket que desee que utilice AWS Config para entregar los elementos de configuración y, a continuación, elija Properties (Propiedades).
-
Elija Permisos.
-
Elija Edit Bucket Policy.
-
Copie la siguiente política en la ventana Bucket Policy Editor (Editor de política de bucket):
Prácticas recomendadas de seguridad
Le recomendamos encarecidamente que restrinja el acceso a la política de bucket con la condición
AWS:SourceAccount. Esto garantiza que solo AWS Config reciba acceso en nombre de los usuarios esperados. -
Cambie los siguientes valores de la política del bucket:
-
amzn-s3-demo-bucket: el nombre del bucket de Amazon S3 donde AWS Config entregará el historial y las instantáneas de configuración. -
[opcional] prefix: es una adición opcional a la clave de objetos de Amazon S3 que ayuda a crear una organización de carpetas en el bucket. -
sourceAccountID: ID de la cuenta donde AWS Config entregará el historial y las instantáneas de configuración.
-
-
Elija Save (Guardar) y, a continuación, Close (Cerrar).
La condición AWS:SourceAccount restringe las operaciones AWS Config a las Cuentas de AWS especificadas. Para configuraciones multicuenta dentro de una organización que realiza entregas en un único bucket de S3, utilice roles de IAM con claves de condiciones AWS Organizations en lugar de roles vinculados a servicios. Por ejemplo, AWS:PrincipalOrgID. Para obtener más información, consulte Administración de permisos de acceso para una organización en la Guía del usuario de AWS Organizations.
La condición AWS:SourceArn restringe las operaciones AWS Config a canales de entrega especificados. El formato de AWS:SourceArn es el siguiente: arn:aws:config:.sourceRegion:123456789012
Por ejemplo, para restringir el acceso al bucket de S3 a un canal de entrega en la región Este de EE. UU. (Norte de Virginia) de la cuenta 123456789012, añada la siguiente condición:
"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:"}
Permisos necesarios para el bucket de Amazon S3 cuando se realizan entregas entre cuentas
Si AWS Config está configurado para entregar el historial y las instantáneas de configuración a un bucket de Amazon S3 en una cuenta diferente (configuración entre cuentas), donde el registrador de configuración y el bucket de S3 especificados para el canal de entrega estén en Cuentas de AWS diferentes, se requieren los siguientes permisos:
El rol de IAM que asigne al registrador de configuración necesita un permiso explícito para realizar la operación
s3:ListBucket. Esto se debe a que AWS Config llama a la API HeadBucket de Amazon S3 con este rol de IAM para determinar la ubicación del bucket.La política de bucket de S3 debe incluir los permisos tanto para la entidad principal de servicio de AWS Config como para el rol de IAM asignado al registrador de configuración.
A continuación se muestra un ejemplo de política de bucket.
{ "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com", "AWS": "IAM Role-Arn assigned to the configuration recorder" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } }