Wie behebe ich Fehler beim kontoübergreifenden Teilen von Dashboards in CloudWatch?

Lesedauer: 4 Minute
0

Ich möchte kontoübergreifende Dashboard-Freigabe verwenden, um mein Amazon CloudWatch-Dashboard mit einem anderen AWS-Konto zu teilen.

Kurzbeschreibung

Sie können konto- oder regionsübergreifende Dashboards erstellen, um Ihre CloudWatch-Daten mit mehreren AWS-Konten und mehreren AWS-Regionen zu teilen. Wenn Sie Konto- oder Organisations-IDs verwenden, um ein Dashboard von einem AWS-Konto mit einem anderen Konto zu teilen, können eine Reihe von Problemen auftreten:

  • Der Benutzer des Überwachungskontos kann die Konto-ID im Sharing-Konto nicht einsehen oder auswählen, um das Dashboard aufzurufen.
  • Beim Zugriff auf das Dashboard erhält der Monitoring-Benutzer aufgrund von Berechtigungsproblemen im Sharing-Konto eine Fehlermeldung. Zu diesen Fehlern gehören die folgenden Beispiele:
    Fehler beim Abrufen der Alarme konnten nicht abgerufen werden
    Ressourcengruppen konnten nicht abgerufen werden (Fehler)
    Unautorisierte Benutzerfehler

Behebung

In diesen Beispielen teilt ein Konto mithilfe von Konto-IDs oder Organisations-IDs ein Dashboard mit einem anderen Konto. Das Sharing-Konto 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 gemeinsam genutzte Dashboard anzuzeigen und auszuwählen, aktivieren Sie eine Kontoauswahl für jeden AWS Identity and Access Management (IAM)-Benutzer im Überwachungskonto. Konto-ID-Selektoren sind nur für IAM-Benutzer sichtbar, die in ihren CloudWatch-Einstellungen eine Kontoauswahl aktiviert haben. Weitere Informationen finden Sie unter Activating cross-account functionality in CloudWatch.

Beim Zugriff auf benutzerdefinierte Dashboards von einem Monitoring-Konto aus traten Fehler auf

Wenn Sie versuchen, von einem Überwachungskonto aus auf ein benutzerdefiniertes Dashboard zuzugreifen, treten möglicherweise die folgenden Fehler auf:

  • Beim Zugriff auf die Übersichtsseite in der CloudWatch-Konsole:

    „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."

  • Wenn Sie von gemeinsam genutzten Konten aus auf das dienstübergreifende Dashboard zugreifen:

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

  • When opening a custom dashboard from a shared account:

    „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"

Diese Fehler treten auf, weil es Probleme mit den Berechtigungen in der Rolle des Sharing-Kontos gibt. Vergewissere dich, dass das Sharing-Konto die folgenden Bedingungen erfüllt:

  • Die CloudWatch-CrossAccountSharing-Rolle ist vorhanden.
  • Das Sharing-Konto hat die richtigen Vertrauensrichtlinien.
  • Der CloudWatch-CrossAccountSharing-Rolle sind die folgenden Richtlinien beigefügt: CloudWatchReadOnlyAccess **CloudWatchAutomaticDashboardsAccess:**Diese Richtlinie fehlt, wenn Sie die Option Include CloudWatch automatic dashboards bei der Dashboard-Freigabe einbeziehen. **AWSXrayReadOnlyAccess:**Diese Richtlinie fehlt, wenn Sie die Option Include X-Ray read-only access for ServiceLens während der Dashboard-Freigabe deaktiviert haben.

Beschränken Sie CloudWatch-crossAccountSharingRole so, dass nur bestimmte Dashboards mit allen Überwachungskonten geteilt werden

Um alle Dashboards aus kontoübergreifenden Dashboards aufzulisten, verwenden Sie den ListDashboards-API-Aufruf. ListDashboards unterstützt keine ressourcenspezifischen Berechtigungen, der GetDashboard-API-Aufruf jedoch schon. Um die Anzahl der Dashboards einzuschränken, die kontenübergreifend beschrieben oder geöffnet werden können, bearbeiten Sie daher die IAM-Rolle Cloudwatch-crossAccountSharingRole im Quell-Sharing-Konto:

{
  "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 Sie diesen Befehl ausgeführt haben, können Sie alle Dashboards auflisten. Wenn Sie jedoch versuchen, ein Dashboard zu öffnen, das in dieser Richtlinie nicht erwähnt wird, wird eine Fehlermeldung 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 Starten von CloudFormationStack, um die erforderliche CloudWatch-crossAccountSharingRole im Sharing-Konto zu erstellen

Stellen Sie sicher, dass Sie die folgenden Richtlinien mit der IAM-Rolle im Sharing-Konto verknüpft haben, wenn Sie kontoübergreifende Dashboard-Freigabe verwenden:

  • AWSCloudFormationFullAccess
  • IAMFullAccess

Mit diesen Berechtigungen können Sie die erforderliche CloudFormationStack-API starten, um die IAM-Rollen zu erstellen, die Sie für die kontoübergreifende Dashboard-Freigabe benötigen.

Verwenden Sie Terraform/CloudFormation/AWS CLI, um eine kontoübergreifende Dashboard-Freigabe zu erstellen

Wenn Sie ein Sharing-Konto einrichten, um kontoübergreifende Funktionen zu nutzen, stellt CloudWatch eine AWS CloudFormation-Vorlage bereit. Konvertieren Sie diese CloudFormation-Vorlage in eine entsprechende Terraform-Vorlage. Auf diese Weise können Sie den kontoübergreifenden Datenaustausch aktivieren.

Damit Ihr Monitoring-Konto kontoübergreifende Daten in CloudWatch einsehen kann, aktivieren Sie über die Konsole eine Kontoauswahl. Dies ist eine benutzerspezifische Einstellung und wird nicht auf Kontoebene verwaltet. Weitere Informationen zur Konfiguration dieser Einstellung finden Sie unter Activating cross-account functionality in CloudWatch.

Verwandte Informationen

Kontoübergreifende regionsübergreifende CloudWatch-Konsole

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten