Comment puis-je résoudre les erreurs liées au partage de tableaux de bord intercomptes dans CloudWatch ?

Lecture de 5 minute(s)
0

Je souhaite utiliser la fonction de partage de tableau de bord intercomptes pour partager mon tableau de bord Amazon CloudWatch avec un autre compte AWS.

Brève description

Si vous souhaitez partager vos données CloudWatch avec plusieurs comptes et régions AWS, vous pouvez créer des tableaux de bord intercomptes ou interrégions. Si vous utilisez des identifiants de compte ou d'organisation pour partager un tableau de bord d'un compte AWS avec un autre compte, vous risquez de rencontrer une série de problèmes :

  • Il est impossible pour l'utilisateur du compte de surveillance de voir ou de sélectionner l'identifiant du compte de partage pour accéder au tableau de bord.
  • Lors de l'accès au tableau de bord, l'utilisateur chargé de la surveillance reçoit un message d'erreur lié à des problèmes de permissions dans le compte de partage. Voici quelques exemples de ces messages d'erreur :
    Erreurs : Failed to retrieve alarms
    Erreurs : Resource groups could not be retrieved
    Erreurs : Unauthorized user

Résolution

Dans ces exemples, un compte partage un tableau de bord avec un autre compte en utilisant des identifiants de compte ou d'organisation. Le compte de partage porte l'identifiant 111111111111. Le compte de surveillance porte l'identifiant de compte 999999999999.

Erreurs liées à l'affichage de l'identifiant du compte pour visualiser un tableau de bord à partir d'un système de surveillance

Si vous souhaitez accéder au tableau de bord partagé et le sélectionner, activez un sélecteur de compte pour chaque utilisateur AWS Identity and Access Management (IAM) du compte de surveillance. Seuls les utilisateurs IAM qui ont activé un sélecteur de compte dans leurs paramètres CloudWatch peuvent voir les sélecteurs d'identifiant de compte. Pour en savoir plus, reportez-vous à Activation de la fonctionnalité intercomptes dans CloudWatch.

Messages d'erreur reçus lors de l'accès à des tableaux de bord personnalisés à partir d'un compte de surveillance

Lorsque vous essayez d'accéder à un tableau de bord personnalisé à partir d'un compte de surveillance, vous pouvez recevoir les messages d'erreur suivants :

  • Lorsque vous accédez à la page Aperçu dans la console CloudWatch :

    « Failed to retrieve alarms ; You don't have permissions to perform the following operations: CloudWatch:DescribeAlarms. Contact your administrator if you need help. If you are an administrator, you can provide permissions for your users or groups by creating IAM policies. »

  • Lorsque vous accédez au tableau de bord interservices à partir de comptes partagés :

    « Unable to select any Resource Group in the "Filter by resource group" dropdown. » It errs out with: Resource groups could not be retrieved »

  • Lorsque vous ouvrez un tableau de bord personnalisé à partir d'un compte partagé :

    « User: "arn:aws:sts::999999999999:assumed-role/AWSServiceRoleForCloudWatchCrossAccount/CloudWatchConsole is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::111111111111:role/CloudWatch-CrossAccountSharingRole »

    -or-

    « User: arn:aws:sts::999999999999:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole is not authorized to perform: cloudwatch:ListDashboards on resource: arn:aws:cloudwatch::111111111111:dashboard/* because no identity-based policy allows the cloudwatch:ListDashboards action »

Ces erreurs sont dues aux problèmes d'autorisations liés au rôle du compte de partage. Assurez-vous que le compte de partage répond aux conditions suivantes :

  • Le CloudWatch-CrossAccountSharingRole est présent.
  • Le compte de partage dispose de bonnes stratégies de confiance.
  • Le rôle CloudWatch-CrossAccountSharing est associé aux stratégies suivantes : CloudWatchReadOnlyAccess **CloudWatchAutomaticDashboardsAccess:**Cette stratégie est absente si vous avez désactivé l'option Inclure les tableaux de bord automatiques CloudWatch lors du partage des tableaux de bord. **AWSXrayReadOnlyAccess:**Cette stratégie est absente si vous avez désactivé l'option Inclure l'accès en lecture seule à X-Ray pour ServiceLens lors du partage du tableau de bord.

Limiter CloudWatch-CrossAccountSharingRole pour partager uniquement des tableaux de bord spécifiques avec tous les comptes de surveillance

Pour répertorier tous les tableaux de bord intercomptes, utilisez l'appel d'API ListDashboards. ListDashboards ne prend pas en charge les autorisations spécifiques aux ressources, contrairement à l'appel d'API GetDashboard. Par conséquent, si vous souhaitez limiter les tableaux de bord qui peuvent être décrits ou ouverts sur plusieurs comptes, modifiez le rôle IAM CloudWatch-CrossAccountSharingRole dans le compte de partage source :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": "cloudwatch:GetDashboard",
      "Resource": "arn:aws:cloudwatch::111111111111:dashboard/dashboard-name"
    },
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "autoscaling:Describe*",
        "cloudwatch:Describe*",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:GetInsightRuleReport",
        "cloudwatch:GetMetricWidgetImage",
        "cloudwatch:ListMetrics",
        "cloudwatch:ListTagsForResource",
        "cloudwatch:ListDashboards",
        "logs:Get*",
        "logs:List*",
        "logs:StartQuery",
        "logs:StopQuery",
        "logs:Describe*",
        "logs:TestMetricFilter",
        "logs:FilterLogEvents",
        "sns:Get*",
        "sns:List*"
      ],
      "Resource": "*"
    }
  ]
}

Après avoir exécuté cette commande, vous pouvez répertorier tous les tableaux de bord. Toutefois, si vous essayez d'ouvrir un tableau de bord qui n'est pas mentionné dans cette stratégie, vous recevez le message d'erreur suivant :

User: arn:aws:sts::111111111111:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole is not authorized to perform: cloudwatch:GetDashboard on resource: arn:aws:cloudwatch::111111111111:dashboard/test

Problèmes lors du lancement de CloudFormationStack pour créer le rôle CloudWatch-CrossAccountSharingRole requis dans le compte de partage

Assurez-vous que les stratégies suivantes sont associées au rôle IAM dans le compte de partage lorsque vous utilisez le partage de tableau de bord intercomptes :

  • AWSCloudFormationFullAccess
  • IAMFullAccess

Ces autorisations vous permettent de lancer l'API CloudFormationStack requise pour créer les rôles IAM dont vous avez besoin pour le partage de tableaux de bord entre comptes.

Utilisez l'interface de ligne de commande Terraform/CloudFormation/AWS pour créer une configuration de partage de tableau de bord intercomptes

Lorsque vous configurez un compte de partage pour utiliser des fonctions intercomptes, CloudWatch déploie un modèle AWS CloudFormation. Convertissez ce modèle CloudFormation en modèle Terraform correspondant. Vous pouvez ainsi activer le partage de données intercomptes.

Pour permettre à votre compte de surveillance d'accéder aux données intercomptes dans CloudWatch, activez un sélecteur de comptes à l'aide de la console. Ce paramètre par utilisateur n'est pas géré au niveau du compte. Pour en savoir plus sur la configuration de ce paramètre, reportez-vous à la section Activation de la fonctionnalité intercomptes dans CloudWatch.

Informations connexes

Console CloudWatch intercomptes et interrégions

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an