Quais permissões / políticas para a função IAM devem ser usadas com o script de monitoramento CloudWatch

13

Com o script de monitoramento do CloudWatch (mon-put-instance-data.pl), é possível especificar um nome de função do IAM para fornecer credenciais da AWS (--aws-iam-role = VALUE).

Estou criando uma função do IAM para essa finalidade (para executar mon-put-instance-data.pl em uma instância da AWS), mas quais permissões / políticas devo atribuir a essa função?

obrigado pela ajuda

Céline Aussourd
fonte

Respostas:

20

Os scripts de monitoramento do Amazon CloudWatch para Linux são compostos por dois scripts Perl, ambos usando um módulo Perl - uma breve espiada na fonte revela as seguintes ações da API da AWS que estão sendo usadas:

Com essas informações, você pode montar sua política do IAM , por exemplo, através do gerador de políticas da AWS - uma política abrangente seria:

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

Claro que você pode soltar cloudwatch:GetMetricStatistics cloudwatch:ListMetricsquando estiver usando mon-put-instance-data.pl- observe que, na verdade, ainda não testei o código.

Steffen Opel
fonte
Essas ações correspondem às ações listadas na documentação em docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
htaccess
2

A política acima fornece erro ao solicitar a versão.

O seguinte deve funcionar:

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

Existe uma política do IAM fornecida pela Amazon para o CloudWatch. Não há necessidade de construir o seu próprio. CloudWatchFullAccess

jorfus
fonte
2
Obrigado pela sua resposta. Eu não queria dar acesso total ao CloudWatch ... Não quero dar a permissão DeleteAlarms, por exemplo.
Céline Aussourd
Para o serviço dynatrace, isso é perfeito!
holms
IMHO, para quase qualquer caso de uso de 'monitoramento', isso é acesso demais. Seu script de monitoramento não precisa (digamos) criar ou excluir métricas ou painéis. A política adiciona algumas permissões que não são de observação na nuvem com aparência bastante segura, mas também adiciona todas elas: docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/… . Em um palpite aproximado, CloudWatchReadOnlyAccessseria uma "primeira tentativa" segura, mas mesmo isso pode ser excessivamente generoso.
Ralph Bolton