Política de temas de Amazon SNS para CloudTrail - AWS CloudTrail

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Política de temas de Amazon SNS para CloudTrail

Para enviar notificaciones a un tema de SNS, CloudTrail debe tener los permisos necesarios. CloudTrail adjunta de forma automática los permisos necesarios al bucket cuando crea un tema de Amazon SNS como parte de la creación o actualización de un registro de seguimiento en la consola de CloudTrail.

importante

Como práctica recomendada de seguridad, para restringir el acceso al tema de SNS, se aconseja firmemente que después de crear o actualizar un registro de seguimiento para enviar notificaciones de SNS, edite de forma manual la política de IAM adjunta al tema de SNS para agregar claves de condición. Para obtener más información, consulte Práctica recomendada de seguridad para la política de temas SNS en este tema.

CloudTrail agrega de forma automática la siguiente instrucción a la política con los siguientes campos:

  • Los SID permitidos

  • El nombre principal del servicio para CloudTrail.

  • El tema de SNS, incluida la región, el ID de cuenta y el nombre del tema.

La siguiente política permite que CloudTrail envíe notificaciones sobre el envío de archivos de registro desde las regiones admitidas. Para obtener más información, consulte Regiones compatibles con CloudTrail. Esta es la política predeterminada que se adjunta a una política de tema de SNS nueva o existente al crear o actualizar un registro de seguimiento, y elige habilitar las notificaciones SNS.

Política de temas de SNS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:SNSTopicOwnerAccountId:SNSTopicName" } ] }

Si desea utilizar un tema de Amazon SNS cifrado con AWS KMS para enviar notificaciones, también debe habilitar la compatibilidad entre la fuente del evento (CloudTrail) y el tema cifrado al agregar la siguiente instrucción a la política de AWS KMS key.

Política de claves de KMS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" } ] }

Para obtener más información, consulte Habilitar la compatibilidad entre los orígenes de eventos de los servicios de AWS y los temas cifrados.

Práctica recomendada de seguridad para la política de temas SNS

De forma predeterminada, la instrucción de política de IAM que CloudTrail adjunta al tema de Amazon SNS permite que la entidad de servicio de CloudTrail publique en un tema SNS, identificado por un ARN. Para evitar que un atacante obtenga acceso al tema de SNS y envíe notificaciones en nombre de CloudTrail a los destinatarios del tema, edite de forma manual la política de temas de CloudTrail SNS para agregar una clave de condición aws:SourceArn o a la instrucción de política adjunta por CloudTrail. El valor de esta clave es el ARN de la traza o una matriz de ARN de traza que utilizan el tema SNS. Ya que incluye tanto el ID del registro de seguimiento específico como el ID de la cuenta propietaria del registro de traza y restringe el acceso al tema SNS solo a aquellas cuentas que tienen permiso para administrar el registro de traza. Antes de agregar claves de condición a la política de temas de SNS, obtenga el nombre del tema de SNS de la configuración del registro de seguimiento en la consola de CloudTrail.

La clave de condición aws:SourceAccount también se admite, aunque no se recomienda.

Para agregar la clave de condición aws:SourceArn a la política de temas de SNS
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. En el panel de navegación, elija Temas.

  3. Elija el tema SNS que se muestra en la configuración del registro de seguimiento y, a continuación, Edit (Editar).

  4. Expanda Política de acceso.

  5. En el editor JSON de Access policy (Política de acceso), busque un bloque similar al siguiente ejemplo.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Agregue un bloque nuevo para una condición, aws:SourceArn como se muestra en el siguiente ejemplo. El valor de aws:SourceArn es el ARN del registro de seguimiento sobre el que se envían notificaciones a SNS.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail3" } } }
  7. Cuando haya terminado de editar la política de temas de SNS, elija Save changes (Guardar cambios).

Para agregar la clave de condición aws:SourceAccount a la política de temas de SNS
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. En el panel de navegación, elija Temas.

  3. Elija el tema SNS que se muestra en la configuración del registro de seguimiento y, a continuación, Edit (Editar).

  4. Expanda Política de acceso.

  5. En el editor JSON de Access policy (Política de acceso), busque un bloque similar al siguiente ejemplo.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Agregue un bloque nuevo para una condición, aws:SourceAccount como se muestra en el siguiente ejemplo. El valor de aws:SourceAccount es el ID de la cuenta propietaria del registro de seguimiento de CloudTrail. En este ejemplo se restringe el acceso al tema de SNS solo a los usuarios que pueden iniciar sesión en la cuenta 123456789012 de AWS.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }
  7. Cuando haya terminado de editar la política de temas de SNS, elija Save changes (Guardar cambios).

Especificación de un tema existente para enviar notificaciones

Puede agregar de forma manual los permisos para un tema de Amazon SNS a su política de temas en la consola de Amazon SNS y, a continuación, especificar el tema en la consola de CloudTrail.

Para actualizar manualmente una política de temas de SNS
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. Elija Topics y, a continuación, seleccione el tema.

  3. Seleccione Editar y, a continuación, desplácese hacia abajo hasta Política de acceso.

  4. Elija la instrucción de SNS topic policy con los valores adecuados para la región, el ID de cuenta y el nombre del tema.

  5. Si su tema es cifrado, debe conceder a CloudTrail los permisos kms:GenerateDataKey* y kms:Decrypt. Para obtener más información, consulte Encrypted SNS topic KMS key policy.

  6. Elija Guardar cambios.

  7. Vuelva a la consola de CloudTrail y especifique el tema para el registro de seguimiento.

Resolución de problemas de la política de temas de SNS

En las secciones siguientes se describe cómo solucionar problemas de la política de temas de SNS.

CloudTrail no envía notificaciones a una región

Al crear un tema nuevo como parte de la creación o actualización de un registro de seguimiento, CloudTrail adjunta los permisos necesarios al tema. La política de temas utiliza el nombre de la entidad principal del servicio, "cloudtrail.amazonaws.com", que permite a CloudTrail enviar notificaciones a todas las regiones.

Si CloudTrail no envía notificaciones para una región, es posible que el tema tenga una política antigua que especifique los ID de cuenta de CloudTrail para cada región. Esta política concede a CloudTrail permiso para enviar notificaciones solo a las regiones especificadas.

La siguiente política de temas permite a CloudTrail enviar notificaciones solo para las nueve regiones especificadas:

ejemplo política del tema con ID de la cuenta
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::903692715234:root", "arn:aws:iam::035351147821:root", "arn:aws:iam::859597730677:root", "arn:aws:iam::814480443879:root", "arn:aws:iam::216624486486:root", "arn:aws:iam::086441151436:root", "arn:aws:iam::388731089494:root", "arn:aws:iam::284668455005:root", "arn:aws:iam::113285607260:root" ]}, "Action": "SNS:Publish", "Resource": "aws:arn:sns:us-east-1:123456789012:myTopic" }] }

Esta política utiliza un permiso en función de los ID de cuenta de CloudTrail individuales. Para enviar registros para una región nueva, debe actualizar de forma manual la política para incluir el ID de cuenta de CloudTrail para esa región. Por ejemplo, como CloudTrail incorporó la compatibilidad para la región Este de EE. UU. (Ohio), debe actualizar la política para agregar el ARN del ID de cuenta para esa región: "arn:aws:iam::475085895292:root".

Recomendamos que actualice la política para utilizar un permiso con el nombre principal del servicio de CloudTrail. Para ello, sustituya los ARN del ID de cuenta por el nombre principal del servicio: "cloudtrail.amazonaws.com".

Esto permite que CloudTrail envíe notificaciones para las regiones nuevas y actuales. A continuación se incluye una versión actualizada de la política anterior:

ejemplo política del tema con el nombre principal del servicio
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:123456789012:myTopic" }] }

Compruebe que la política tiene los valores correctos:

  • En el campo Resource, especifique el número de cuenta del propietario del tema. Para temas que haya creado usted, especifique su número de cuenta.

  • Especifique los valores adecuados para la región y el nombre del tema de SNS.

CloudTrail no envía notificaciones a una cuenta de miembro de una organización

Si una cuenta de miembro con un registro de seguimiento de la organización de AWS Organizations no envía notificaciones de Amazon SNS, podría haber un problema con la configuración de la política de temas de SNS. CloudTrail crea registros de seguimiento de la organización en las cuentas de miembros incluso si hay algún error durante la validación de un recurso; por ejemplo, el tema de SNS del registro de seguimiento de la organización no incluye todos los ID de las cuentas de miembros. Si la política de temas de SNS es incorrecta, se produce un error de autorización.

Para comprobar si la política de temas de SNS de un registro de seguimiento tiene un error de autorización:

  • Desde la consola de CloudTrail, consulte la página de detalles del registro de seguimiento. Si se produce un error en la autorización, la página de detalles incluye una advertencia de SNS authorization failed e indica que hay que corregir la política de temas de SNS.

  • Desde AWS CLI, ejecute el comando get-trail-status. Si se produce un error de autorización, el resultado del comando incluye el campo LastNotificationError con un valor de AuthorizationError.

Recursos adicionales de

Para obtener más información sobre los temas de SNS y suscribirse a ellos, consulte la Guía para desarrolladores de Amazon Simple Notification Service.