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. Para obtener más información sobre el canal de entrega de AWS Config, consulte Administración del canal de entrega.
De forma predeterminada, todos los buckets y objetos de Amazon S3 son privados. Solo el propietario del recurso, que es la Cuenta de AWS que ha creado el bucket, puede acceder al bucket. Sin embargo, el propietario del recurso puede optar por conceder permisos de acceso a otros recursos y usuarios. Una forma de hacerlo es escribir una política de acceso.
Si AWS Config crea un bucket de Amazon S3 automáticamente para usted (por ejemplo, si usa la consola de AWS Config para configurar el canal de entrega), estos permisos se agregan automáticamente al bucket de Amazon S3. No obstante, si especifica un bucket de Amazon S3 existente, debe asegurarse de que el bucket de S3 tenga los permisos adecuados.
nota
Un objeto no hereda los permisos del bucket en el que se encuentra. Por ejemplo, si crea un bucket y concede permisos de escritura a un usuario, no puede obtener acceso a los objetos de ese usuario a no ser que este le conceda acceso explícitamente.
Contenido
Permisos necesarios para el bucket de Amazon S3 cuando se utilizan roles de IAM
Cuando AWS Config envía información de configuración (archivos del historial e instantáneas) al bucket de Amazon S3 de su cuenta, asume el rol de IAM que asignó al configurar AWS Config. Cuando AWS Config envía información de configuración a un bucket de Amazon S3 de otra cuenta, primero intenta utilizar el rol de IAM, pero este intento falla si la política de acceso del bucket no concede acceso al rol de IAM a WRITE
. En este caso, AWS Config envía de nuevo la información, pero esta vez como el principal del servicio de AWS Config. Para que la entrega se realice correctamente, la política de acceso debe conceder acceso WRITE
al nombre del principal de config.amazonaws.com
. Por tanto, AWS Config es el propietario de los objetos que entrega al bucket de S3. Debe asociar una política de acceso, mencionada en el paso 6 que sigue, para el bucket de Amazon S3 en otra cuenta para conceder a AWS Config acceso al bucket de Amazon S3.
Antes de que AWS Config pueda entregar los registros a su bucket de Amazon S3, AWS Config comprueba si el bucket existe y en qué región de AWS se encuentra. AWS Config intenta llamar a la API HeadBucket de Amazon S3 para comprobar si el bucket existe y para obtener la región del bucket. Si no se proporcionan los permisos para localizar el bucket cuando se realiza la verificación de la ubicación, aparece un error AccessDenied
en los registros de AWS CloudTrail. Sin embargo, la entrega del registro a su bucket de Amazon S3 se lleva a cabo correctamente si no proporciona permisos de ubicación de buckets.
nota
Para conceder permiso a la API HeadBucket
de Amazon S3, otorgue permiso para realizar la acción s3:ListBucket
en el Sid AWSConfigBucketExistenceCheck
, tal como se menciona en el paso 6 siguiente.
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. Por lo tanto, si configura AWS Config con un rol vinculado a servicios, AWS Config enviará los elementos de configuración como la entidad principal del servicio de AWS Config. Tendrá que asociar una política de acceso, mencionada en el paso 6 a continuación, al bucket de Amazon S3 en su propia cuenta o en otra para conceder a AWS Config acceso al bucket de Amazon S3.
Concesión de acceso al bucket de Amazon S3 a AWS Config
Siga estos pasos para añadir una política de acceso al bucket de Amazon S3 en su cuenta o en otra cuenta. La política de acceso permite a AWS Config enviar información de configuración a un bucket de Amazon S3.
-
Inicie sesión en AWS Management Console 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):
importante
Como práctica recomendada de seguridad a la hora de permitir el acceso de AWS Config a un bucket de Amazon S3, le recomendamos encarecidamente que restrinja el acceso a la política de bucket con la condición
AWS:SourceAccount
. Si su política de bucket actual no sigue esta práctica recomendada de seguridad, le recomendamos encarecidamente que edite esa política de bucket para incluir esta protección. Esto garantiza que solo AWS Config reciba acceso en nombre de los usuarios esperados.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID
" } } }, { "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID
" } } }, { "Sid": "AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/[optional] prefix
/AWSLogs/sourceAccountID
/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "AWS:SourceAccount": "sourceAccountID
" } } } ] }nota
Cuando otorgue permisos a su rol de IAM en lugar del nombre de la entidad principal del servicio (SPN) de AWS Config, asegúrese de que su rol de IAM tenga el permiso
PutObjectACL
en un bucket de varias cuentas para evitar un error de permisos insuficientes Puede ver un ejemplo de política de roles de IAM en Política de roles de IAM para el bucket de S3. -
Cambie los siguientes valores de la política del bucket:
-
amzn-s3-demo-bucket
: el nombre del bucket de Amazon S3 al que AWS Config entrega los elementos 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
: es el ID de la cuenta para la que AWS Config entregará los elementos de configuración en el bucket de destino.
-
-
Elija Save (Guardar) y, a continuación, Close (Cerrar).
Puede utilizar la condición AWS:SourceAccount
de la política de buckets de Amazon S3 anterior para restringir que la entidad principal del servicio de Config solo interactúe con el bucket de Amazon S3 cuando realice operaciones en nombre de cuentas específicas. Si tiene pensado configurar AWS Config en varias cuentas de la misma organización para entregar los elementos de configuración a un único bucket de Amazon S3, le recomendamos que utilice roles de IAM en lugar de roles vinculados a servicios, de modo que pueda utilizar claves de condiciones de AWS Organizations como AWS:PrincipalOrgID
. Para obtener más información sobre la administración de los permisos de acceso para que un rol de IAM los utilice con AWS Config, consulte Permisos para el rol de IAM asignado a AWS Config. Para obtener más información acerca de cómo administrar los permisos de acceso para AWS Organizations, consulte Administración de permisos de acceso para su organización de AWS.
AWS Config también admite la condición AWS:SourceArn
que restringe que la entidad principal del servicio de Config interactúe únicamente con el bucket de Amazon S3 cuando realiza operaciones en nombre de canales de entrega de AWS Config específicos. Cuando se utiliza la entidad principal del servidor de AWS Config, la propiedad AWS:SourceArn
siempre se establece como arn:aws:config:sourceRegion:sourceAccountID:*
donde sourceRegion
es la región del canal de entrega y sourceAccountID
es el ID de la cuenta que contiene el canal de entrega. Para obtener más información sobre los canales de entrega de AWS Config, consulte Administración del canal de entrega. Por ejemplo, añada la siguiente condición para restringir que la entidad principal del servicio de Config interactúe con su bucket de Amazon S3 únicamente en nombre de un canal de entrega de la región us-east-1
de la cuenta 123456789012
: "ArnLike": {"AWS:SourceArn":
"arn:aws:config:us-east-1:123456789012:*"}
.