Wie behebe ich Fehler bei der kontoübergreifenden Dashboard-Freigabe in CloudWatch?

Letzte Aktualisierung: 05.05.2022

Ich möchte mein Amazon-CloudWatch-Dashboard mithilfe der kontoübergreifenden Dashboard-Freigabe mit einem anderen AWS-Konto teilen. Wie kann ich Fehler beheben und lösen, die ich bei der Verwendung der kontoübergreifenden Dashboard-Freigabe erhalte?

Kurzbeschreibung

Du kannst konto- oder regionsübergreifende Dashboards erstellen, um deine CloudWatch-Daten mit mehreren AWS-Konten und über mehrere AWS-Regionen hinweg zu teilen. Es gibt eine Reihe von Gründen, aus denen Probleme auftreten können, wenn du ein in einem Konto erstelltes Dashboard mithilfe von Konto- oder Organisations-IDs für ein anderes Konto freigibst. Möglicherweise tritt eines der folgenden Probleme auf:

  • Der Benutzer des Überwachungskontos kann die Konto-ID im Freigabekonto nicht anzeigen oder auswählen, um das Dashboard anzuzeigen.
  • Der überwachende Benutzer erhält beim Zugriff auf das Dashboard aufgrund von Berechtigungsproblemen im Freigabekonto eine ähnliche Fehlermeldung wie die folgende:
    • Fehler beim Abrufen von Alarmen
    • Fehler von Ressourcengruppen konnten nicht abgerufen werden
    • Unautorisierte Benutzerfehler

Auflösung

In diesen Beispielen teilt ein Konto mithilfe von Konto-IDs oder Organisations-IDs ein Dashboard mit einem anderen Konto. Das Freigabekonto hat die ID 111111111111. Das Überwachungskonto hat die Konto-ID 999999999999.

Probleme beim Anzeigen der Konto-ID zum Anzeigen eines Dashboards von einem Monitoring aus

Um das geteilte Dashboard anzuzeigen und auszuwählen, musst du eine Kontoauswahl für jeden Benutzer von AWS Identity and Access Management (IAM) im Überwachungskonto aktivieren. Konto-ID-Selektoren sind nur für IAM-Benutzer sichtbar, die in ihren CloudWatch-Einstellungen eine Kontoauswahl aktiviert haben. Weitere Informationen zum Aktivieren einer Kontoauswahl in CloudWatch findest du unter kontoübergreifende Funktionen in CloudWatch aktivieren.

Fehler beim Zugriff auf benutzerdefinierte Dashboards von einem Monitoring-Konto

Möglicherweise treten Fehler auf, wenn du versuchst, von einem Überwachungskonto aus auf ein benutzerdefiniertes Dashboard zuzugreifen.

  • Gehe beim Zugriff auf die Seite „Übersicht“ in der CloudWatch-Konsole:

    „Fehler beim Abrufen der Alarme. Du hast keine Berechtigung, die folgenden Vorgänge auszuführen: cloudwatch:DescribeAlarms. Wende dich an deinen Administrator, wenn du Hilfe benötigst. Wenn du ein Administrator bist, kannst du Berechtigungen für deine Benutzer oder Gruppen bereitstellen, indem du IAM-Richtlinien erstellst.“

  • Wenn du von gemeinsam genutzten Konten aus auf das dienstübergreifende Dashboard zugreifst:

    „Es kann keine Ressourcengruppe in der Dropdown-Liste „Nach Ressourcengruppe filtern“ ausgewählt werden. Die Fehlermeldung lautet: "Ressourcengruppen konnten nicht abgerufen werden".

  • Wenn du ein benutzerdefiniertes Dashboard von einem geteilten Konto aus öffnest:

    "Benutzer: "arn:aws:sts::999999999999:assumed-role/AWSServiceRoleForCloudWatchCrossAccount/CloudWatchConsole ist nicht berechtigt: sts:AssumeRole auf Ressource: arn:aws:iam::111111111111:role/CloudWatch-CrossAccountSharingRole"

    oder

    "Benutzer: arn:aws:sts::999999999999:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole ist nicht berechtigt: cloudwatch:ListDashboards auf Ressource: arn:aws:cloudwatch::111111111111:dashboard/* auszuführen, da keine identitätsbasierte Richtlinie die Aktion cloudwatch:ListDashboards erlaubt"

Diese Fehler treten auf, weil die Rolle, die im Freigabekonto erstellt wurde, Berechtigungsprobleme aufweist. Stelle sicher, dass das Freigabekonto die folgenden Kriterien erfüllt:

  • Die CloudWatch-Cross-AccountSharing-Rolle ist vorhanden.
  • Das Freigabekonto verfügt über die richtigen Vertrauensrichtlinien, wie unter Aktivieren der kontoübergreifenden Funktionalität in CloudWatch beschrieben.
  • Der CloudWatch-crossAccountSharing-Rolle sind die folgenden Richtlinien beigefügt:
    • Schreibgeschützter CloudWatch-Zugriff
    • CloudWatchAutomaticDashboardsAccess — Diese Richtlinie fehlt, wenn du die Option Automatische CloudWatch-Dashboards einbeziehen bei der Dashboard-Freigabe deaktiviert hast.
    • awsxrayReadOnlyAccess — Diese Richtlinie fehlt, wenn du die Option X-Ray-Schreibzugriff für ServiceLens einbeziehen während der Dashboard-Freigabe deaktiviert hast.

Beschränke den Zugriff von Benutzern eines Überwachungskontos auf bestimmte Dashboards

Um alle Dashboards aus kontoübergreifenden Dashboards aufzulisten, verwende den ListDashboards-API-Aufruf. Die ListDashboards-API unterstützt jedoch keine ressourcenspezifischen Berechtigungen. Der GetDashboard-API-Aufruf unterstützt jedoch ressourcenspezifische Berechtigungen, sodass du die Dashboards einschränken kannst, die über Konten hinweg beschrieben oder geöffnet werden können.

{
  "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": "*"
    }
  ]
}

Nachdem du diesen Befehl ausgeführt hast, kannst du alle Dashboards auflisten. Wenn du jedoch versuchst, ein Dashboard zu öffnen, das in dieser Richtlinie nicht erwähnt wird, wird ein Fehler wie der folgende angezeigt:

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

Probleme beim Start von CloudFormationStack zum Erstellen der erforderlichen CloudWatch-crossAccountSharingRole im Freigabekonto

Stelle sicher, dass du diese Richtlinien mit der IAM-Rolle im Freigabekonto verknüpft hast, wenn du die kontoübergreifende Dashboard-Freigabe verwendest:

  • Voller Zugriff auf AWS Cloud Formation
  • IAMFullAccess

Mit diesen Berechtigungen kannst du die erforderliche CloudFormationStack-API starten, um die IAM-Rollen zu erstellen, die du für die kontoübergreifende Dashboard-Freigabe benötigst.

Verwenden TerraForm/CloudFormation/AWS CLI, um kontoübergreifende Dashboard-Freigabeeinstellungen zu erstellen

Wenn du ein Freigabekonto für die Verwendung kontoübergreifender Funktionen einrichtest, stellt CloudWatch eine AWS-CloudFormation-Vorlage bereit. Wandle diese CloudFormation-Vorlage in eine entsprechende Terraform-Vorlage um. Auf diese Weise kannst du die kontoübergreifende Datenfreigabe aktivieren.

Damit dein Monitoring-Konto kontoübergreifende Daten in CloudWatch anzeigen kann, aktiviere eine Kontoauswahl mithilfe der Konsole. Dies ist eine Einstellung pro Benutzer und wird nicht auf Kontoebene verwaltet. Weitere Informationen zur Konfiguration dieser Einstellung findest du unter kontoübergreifende Funktionen in CloudWatch aktivieren.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?