J'essaye de créer un tableau de bord pour la facturation sous notre AWS. Notre configuration AWS est en tant que telle:

masterAccount //access to all sub AWS account's billing info
  subAccount1
  subAccount2 //this is where Grafana is running

J'ai la source de données de masterAccount, qui est un accès cloudwatchReadOnly et je l'ai configuré le assumeRole fonctionne à partir de subAccount2, où Grafana est en cours d'exécution.

Je reçois les données comme ci-dessous (données sensibles, donc je devais les couvrir):

enter image description here

Cependant, ce que je recherche, c'est de récupérer les données de facturation de cette source de données, puis de les diviser par le accountId AWS.

Je ne sais pas du tout comment m'y prendre. Très nouveau à Grafana. Merci d'avance!

0
Shayan Khan 2 sept. 2020 à 08:04

3 réponses

Meilleure réponse

Comme l'a dit Jan Garaj, la façon de procéder consiste à créer plusieurs sources de données, puis à les utiliser pour différents widgets. Chaque source de données est un ARN pour le rôle que vous avez créé dans les sous-comptes.

Le profil d'instance attaché à l'instance EC2:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": [
                "arn:aws:iam::subAccount1:role/roleName",
                "arn:aws:iam::subAccount2:role/roleName",
                "arn:aws:iam::subAccount3:role/roleName"
            ]
        }
    ]
}

Avec la relation de confiance comme:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Ensuite, sur les sous-comptes (sous-compte1 à titre d'exemple)

//AWS Created Policy
CloudWatchReadOnlyAccess

//With Trust Relationship
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::accountWhereEC2InstanceIsRunning:role/nameOfInstanceProfile"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

J'espère que cela sera utile pour quelqu'un.

0
Shayan Khan 4 sept. 2020 à 03:58

Créez une source de données Grafana CloudWatch pour chaque sous-compte, puis effectuez une requête pour chaque sous-compte / source de données.

1
Jan Garaj 2 sept. 2020 à 06:56

Dans les paramètres de requête, vous pouvez choisir LinkedAccount = * comme dimension. Ensuite, le graphique montre la liste complète des comptes liés du compte principal.

enter image description here

0
Johannes Konings 27 nov. 2020 à 17:32