Comment résoudre les erreurs de partage de tableau de bord intercompte dans CloudWatch ?

Date de la dernière mise à jour : 05/05/2022

Je souhaite partager mon tableau de bord Amazon CloudWatch avec un autre compte AWS à l'aide du partage de tableau de bord intercompte. Comment puis-je dépanner et résoudre les erreurs que je reçois lors de l'utilisation du partage de tableau de bord intercompte ?

Brève description

Vous pouvez créer des tableaux de bord intercompte ou interrégion pour partager vos données CloudWatch avec plusieurs comptes AWS et dans plusieurs régions AWS. Il existe plusieurs raisons pour lesquelles vous pouvez rencontrer des problèmes lorsque vous partagez un tableau de bord créé dans un compte avec un autre compte à l'aide de l'ID de compte ou d'organisation. Vous pouvez rencontrer l'un des problèmes suivants :

  • L'utilisateur du compte de surveillance ne peut pas afficher ni sélectionner l'ID de compte dans le compte de partage pour afficher le tableau de bord.
  • L'utilisateur de surveillance reçoit une erreur similaire à la suivante lorsqu'il accède au tableau de bord en raison de problèmes d'autorisations dans le compte de partage :
    • Impossible de récupérer les erreurs d'alarme
    • Les groupes de ressources n'ont pas pu être récupérés
    • Erreurs d'utilisateur non autorisé

Solution

Dans ces exemples, un compte partage un tableau de bord avec un autre compte à l'aide d'ID de compte ou d'ID d'organisation. Le compte de partage possède l'ID 111111111111. Le compte de surveillance possède l'ID de compte 999999999999.

Problèmes d'affichage de l'ID de compte pour afficher un tableau de bord à partir d'une surveillance

Pour afficher et sélectionner le tableau de bord partagé, vous devez activer un sélecteur de compte pour chaque utilisateur AWS Identity and Access Management (IAM) du compte de surveillance. Les sélecteurs d'ID de compte ne sont visibles que pour les utilisateurs IAM qui ont activé un sélecteur de compte dans leurs paramètres CloudWatch. Pour plus d'informations sur l'activation d'un sélecteur de compte dans CloudWatch, reportez-vous à Activation de la fonctionnalité intercompte dans CloudWatch.

Erreurs reçues lors de l'accès aux tableaux de bord personnalisés depuis un compte de surveillance

Vous pouvez rencontrer des erreurs lorsque vous tentez d'accéder à un tableau de bord personnalisé à partir d'un compte de surveillance.

  • Lorsque vous accédez à la page Présentation de la console CloudWatch :

    « Impossible de récupérer les alarmes ; vous n'avez pas les autorisations nécessaires pour effectuer les opérations suivantes : CloudWatch:DescribeAlarms. Contactez votre administrateur si vous avez besoin d'aide. Si vous êtes administrateur, vous pouvez accorder des autorisations à vos utilisateurs ou groupes en créant des stratégies IAM. »

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

    « Impossible de sélectionner un groupe de ressources dans la liste déroulante « Filtrer par groupe de ressources ». Vous obtenez une erreur : « Les groupes de ressources n'ont pas pu être récupérés »

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

    « L'utilisateur : arn:aws:sts::999999999999:assumed-role/AWSServiceRoleForCloudWatchCrossAccount/CloudWatchConsole n'est pas autorisé à effectuer : sts:AssumeRole sur la ressource : arn:aws:iam::111111111111:role/CloudWatch-CrossAccountSharingRole »

    ou

    « L'utilisateur : arn:aws:sts::999999999999:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole n'est pas autorisé à effectuer : cloudwatch:ListDashboards sur la ressource : arn:aws:cloudwatch::111111111111:dashboard/*, car aucune politique basée sur l'identité n'autorise l'action cloudwatch:ListDashboards »

Ces erreurs se produisent en raison de problèmes d'autorisations dans le rôle créé dans le compte de partage. Assurez-vous que le compte de partage respecte les critères suivants :

  • Le rôle CloudWatch-CrossAccountSharingRole est présent.
  • Le compte de partage possède les bonnes politiques de confiance, comme indiqué dans la section Activation de la fonctionnalité intercompte dans CloudWatch.
  • Les politiques suivantes sont associées au rôle CloudWatch-CrossAccountSharing :
    • CloudWatchReadOnlyAccess
    • CloudWatchAutomaticDashboardsAccess : cette politique est manquante si vous avez désactivé l'option Inclure les tableaux de bord automatiques CloudWatch lors du partage du tableau de bord.
    • AWSXrayReadOnlyAccess - Cette politique est manquante si vous avez désactivé l'option Inclure l'accès en lecture seule X-Ray pour ServiceLens pendant le partage du tableau de bord.

Limiter l'accès des utilisateurs d'un compte de surveillance à des tableaux de bord spécifiques

Pour répertorier tous les tableaux de bord à partir de tableaux de bord intercomptes, utilisez l'appel d'API ListDashboards. Toutefois, l'API ListDashboards ne prend pas en charge les autorisations spécifiques aux ressources. Cependant, l'appel d'API GetDashboard prend en charge les autorisations spécifiques aux ressources, de sorte que vous pouvez limiter les tableaux de bord pouvant être décrits ou ouverts entre les comptes.

{
  "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 politique, vous obtenez une erreur telle que :

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 ces politiques sont associées au rôle IAM dans le compte de partage lorsque vous utilisez le partage de tableau de bord intercompte :

  • 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 tableau de bord intercompte.

Utiliser TerraForm/CloudFormation/AWS CLI pour créer une configuration de partage de tableau de bord intercompte

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. Cela vous permet d'activer le partage de données intercompte.

Pour permettre à votre compte de surveillance d'afficher les données intercomptes dans CloudWatch, activez un sélecteur de compte à l'aide de la console. Il s'agit d'un paramètre par utilisateur qui n'est pas géré au niveau du compte. Pour plus d'informations sur la configuration de ce paramètre, reportez-vous à Activation de la fonctionnalité intercompte dans CloudWatch.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?