Qué permisos / políticas para el rol de IAM se usarán con el script de monitoreo de CloudWatch

13

Con el script de supervisión de CloudWatch (mon-put-instance-data.pl) es posible especificar un nombre de rol de IAM para proporcionar credenciales de AWS (--aws-iam-role = VALUE).

Estoy creando un rol de IAM para este propósito (para ejecutar mon-put-instance-data.pl en una instancia de AWS), pero ¿qué permisos / políticas debo otorgar a este rol?

Gracias por tu ayuda

Céline Aussourd
fuente

Respuestas:

20

Las secuencias de comandos de supervisión de Amazon CloudWatch para Linux se componen de dos secuencias de comandos Perl, ambas utilizando un módulo Perl: un breve vistazo a la fuente revela las siguientes acciones de la API de AWS que se utilizan:

Con esta información puede ensamblar su política de IAM , por ejemplo, a través del generador de políticas de AWS ; una política integral sería:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:ListMetrics",
        "cloudwatch:PutMetricData",
        "ec2:DescribeTags"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Por supuesto, puede caer cloudwatch:GetMetricStatistics cloudwatch:ListMetricscuando solo lo use mon-put-instance-data.pl, tenga en cuenta que en realidad no he probado el código.

Steffen Opel
fuente
Estas acciones coinciden con las acciones enumeradas en la documentación en docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
htaccess
2

La política anterior da error al solicitar la versión.

Lo siguiente debería funcionar:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1426849513000",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:PutMetricData",
                "cloudwatch:SetAlarmState"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
Swapnil jaiswal
fuente
2

Existe una política de IAM proporcionada por Amazon para CloudWatch. No es necesario construir el tuyo. CloudWatchFullAccess

jorfus
fuente
2
Gracias por tu respuesta. Sin embargo, no quería dar acceso completo a CloudWatch ... No quiero dar permiso a DeleteAlarms, por ejemplo.
Céline Aussourd
Para el servicio dynatrace, ¡esto es perfecto!
holms
En mi humilde opinión, para casi cualquier caso de uso de 'monitoreo', este es demasiado acceso. Su secuencia de comandos de supervisión no necesita (por ejemplo) crear o eliminar métricas o paneles. La política agrega algunos permisos que no son de observación en la nube de aspecto bastante seguro, pero luego agrega todos estos: docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/… . En una suposición aproximada, CloudWatchReadOnlyAccesssería un "primer intento" seguro, pero incluso eso puede ser demasiado generoso.
Ralph Bolton