Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS
Debe conceder permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS. La siguiente instrucción de política concederá ese permiso. Incluye una instrucción Condition para ayudar a prevenir un problema de seguridad conocido como el problema del suplente confuso. La instrucción Condition restringe el acceso al tema de Amazon SNS para permitir únicamente las operaciones procedentes de esta cuenta específica y del espacio de trabajo de Amazon Managed Service para Prometheus. Para obtener más información sobre el problema del suplente confuso, consulte Prevención de la sustitución confusa entre servicios.
Para conceder permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS:
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
En el panel de navegación, elija Temas.
-
Elija el nombre del tema que va a utilizar con Amazon Managed Service para Prometheus.
-
Seleccione Editar.
-
Elija Política de acceso y agregue la siguiente instrucción de política a la política existente.
{ "Sid": "Allow_Publish_Alarms", "Effect": "Allow", "Principal": { "Service": "aps.amazonaws.com" }, "Action": [ "sns:Publish", "sns:GetTopicAttributes" ], "Condition": { "ArnEquals": { "aws:SourceArn": "workspace_ARN" }, "StringEquals": { "AWS:SourceAccount": "account_id" } }, "Resource": "arn:aws:sns:region:account_id:topic_name" }[Opcional] Si el tema de Amazon SNS está habilitado para el cifrado del servicio (SSE), debe permitir que Amazon Managed Service para Prometheus envíe mensajes a este tema cifrado. Para ello, debe agregar los permisos
kms:GenerateDataKey*ykms:Decrypta la política de claves de AWS KMS de la clave utilizada para cifrar el tema.Por ejemplo, podría agregar lo siguiente a la política:
{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "aps.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }Para obtener más información, consulte Permisos de AWS KMS para el tema de SNS.
-
Seleccione Save changes (Guardar cambios).
nota
De forma predeterminada, Amazon SNS crea la política de acceso con la condición en AWS:SourceOwner. Para obtener más información, consulte Política de acceso SNS.
nota
IAM sigue la regla de la política más restrictiva primero. Si en el tema de SNS hay un bloque de políticas que es más restrictivo que el bloque de políticas de Amazon SNS documentado, no se concede el permiso para la política del tema. Para evaluar la política y averiguar qué se ha concedido, consulte Lógica de evaluación de políticas.
Configuración del tema SNS para las regiones de activación
Puede usar aps.amazonaws.com para configurar un tema de Amazon SNS en la misma Región de AWS que su espacio de trabajo de Amazon Managed Service para Prometheus. Para usar un tema de SNS de una región no opcional (como us-east-1) con una región opcional (como af-south-1), debe usar el formato de la entidad principal del servicio regional. Según la entidad principal del servicio regional, sustituya us-east-1 por la región no opcional que desee utilizar: aps..us-east-1.amazonaws.com
En la siguiente tabla se muestran las regiones de activación y sus correspondientes entidades principales de servicio regionales:
| Nombre de la región | Región | Entidad principal de servicio Regional |
|---|---|---|
| África (Ciudad del Cabo) | af-south-1 | af-south-1.aps.amazonaws.com |
| Asia-Pacífico (Hong Kong) | ap-east-1 | ap-east-1.aps.amazonaws.com |
| Asia-Pacífico (Tailandia) | ap-southeast-7 | ap-southeast-7.aps.amazonaws.com |
| Europa (Milán) | eu-south-1 | eu-south-1.aps.amazonaws.com |
| Europa (Zúrich) | eu-central-2 | eu-central-2.aps.amazonaws.com |
| Medio Oriente (EAU) | me-central-1 | me-central-1.aps.amazonaws.com |
| Asia-Pacífico (Malasia) | ap-southeast-5 | ap-southeast-5.aps.amazonaws.com |
Para obtener información sobre cómo habilitar la región de activación, consulte Administración de las Regiones de AWS en la Guía del usuario de IAM en la Referencia general de Amazon Web Services.
Al configurar su tema de Amazon SNS para estas regiones de activación, asegúrese de utilizar la entidad principal de servicio regional correcta para permitir la entrega de alertas entre regiones.
Prevención de la sustitución confusa entre servicios
El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación entre servicios puede dar lugar al problema de la sustitución confusa. La suplantación entre servicios puedes producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.
Se recomienda utilizar las claves de contexto de condición global aws:SourceArn y aws:SourceAccount en las políticas de recursos para limitar los permisos que Amazon Managed Service para Prometheus concede a Amazon SNS para el recurso. Si se utilizan ambas claves contextuales de condición global, el valor aws:SourceAccount y la cuenta del valor aws:SourceArn deben utilizar el mismo ID de cuenta cuando se utilicen en la misma declaración de política.
El valor de aws:SourceArn debe ser el ARN del espacio de trabajo de Amazon Managed Service para Prometheus.
La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de aws:SourceArn con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si especifica varios recursos, utiliza la clave de condición de contexto global aws:SourceArn con comodines (*) para las partes desconocidas del ARN. Por ejemplo, arn:aws:. servicename::123456789012:*
La política mostrada en Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS muestra cómo se pueden utilizar las claves contextuales de condición global aws:SourceArn y aws:SourceAccount en Amazon Managed Service para Prometheus para evitar el problema del suplente confuso.