Wie kann ich den Zugriff auf Amazon OpenSearch Service über AWS-Konten mit IAM-Rollen hinweg delegieren?

Letzte Aktualisierung: 5.8.2021

Ich möchte Amazon-OpenSearch-Service-Ressourcen (Nachfolger von Amazon Elasticsearch Service) in meinem Konto für Benutzer eines anderen Kontos freigeben. Wie kann ich vorgehen?

Kurzbeschreibung

Der einfachste Weg, den kontenübergreifenden Zugriff für Ihre OpenSearch-Service-Domäne zu ermöglichen, besteht darin, die kontenübergreifende Kontrolle mithilfe einer IAM-Rolle (AWS Identity and Access Management) einzurichten. Durch Hinzufügen einer IAM-Rolle im Zielkonto können Sie Benutzern von vertrauenswürdigen Konten den Zugriff auf die OpenSearch-Service-Domäne unter dem Zielkonto ermöglichen. Auf diese Weise können verschiedene Benutzer in Ihrem Unternehmen auf die zentrale Protokollierungsstation zugreifen und diese verwalten, indem sie die IAM-Rollen in der AWS-Konsole wechseln.

Damit Benutzer mithilfe einer IAM-Rolle auf Ihre Domänenressourcen zugreifen können, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Rolle in Konto A, die auf die Zieldomäne zugreifen darf.
  2. Erstellen Sie unter Konto B einen Benutzer, der eine Rolle in Konto A übernehmen darf.
  3. Gewähren Sie Benutzern in Konto B Zugriff, damit sie durch einen Rollenwechsel auf die Zieldomäne zugreifen können.

Hinweis: Konto A ist das Konto, in dem sich die Zieldomäne befindet. Konto B ist das Konto, von dem aus Benutzer auf die zentrale Protokollierungsstation zugreifen.

Auflösung

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Eine Rolle erstellen und Berechtigungen zur Verwaltung einer Domäne erteilen

In diesem Beispiel erstellen wir eine Rolle namens CrossAccount-test und erteilen volle Berechtigungen zur Verwaltung der Domäne test.

{
    "Version": "2012-10-17",
    "Statement": [
       
        {
            "Effect": "Allow",
            "Action": [
               
        "es:*"
            ],
            "Resource": “arn:aws:es:<Region>:<Account A-ID>:domain/test/*"
       
        }
    ]
}

Die Vertrauensstellungen der Rolle bearbeiten

Bearbeiten Sie als Nächstes die Vertrauensstellung der Rolle CrossAccount-test.

Hinweis: Passen Sie die Kontonummer und den Benutzernamen entsprechend an.

{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
}

In den Schritten 1 und 2 definieren Sie den Benutzer in Konto B als vertrauenswürdige Entität und erteilen volle Berechtigungen, um vertrauenswürdigen Benutzern den Zugriff auf die Domäne in Konto A zu ermöglichen.

Benutzern in Konto B Zugriff gewähren

Erstellen Sie in Konto B einen Benutzer oder eine Gruppe mit den folgenden Berechtigungen:

{
    "Version": "2012-10-17",
    "Statement": {
       
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
   
        }
}

Wenn Sie diese Richtlinienanweisung hinzufügen, erlauben Sie die AssumeRole-Aktion für die CrossAccount-test-Rolle in Konto A.

Hinweis: Denken Sie daran, ACCOUNT A-ID im Ressourcenelement in Ihre AWS-Konto-ID für Konto A zu ändern.

Die Zugriffsrichtlinie für OpenSearch Service bearbeiten, um der Rolle den Zugriff auf die Domäne zu ermöglichen

Zu diesem Zeitpunkt vertrauen Sie darauf, dass Konto B die Rolle in Konto A übernimmt. Als Nächstes erlauben Sie dieser Rolle den Zugriff auf Ihre Domäne.

Bearbeiten Sie die Zugriffsrichtlinie für OpenSearch Service und geben Sie Folgendes ein:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
     
        "Principal": {
        "AWS": [
          "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
       
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
   
        }
  ]
}

Zugriff durch Rollenwechsel testen

Nachdem Sie die kontenübergreifenden Unterstützung aktiviert haben, wechseln Sie die Rollen, um den Zugriff zu testen:

  1. Kopieren Sie die CrossAccount-test-ARN in die Zwischenablage.
  2. Melden Sie sich mit der AWS-Konsole bei Konto B an.
  3. Wählen Sie auf der Registerkarte User (Benutzer) in der Dropdown-Liste Switch Role (Rolle wechseln) aus.
  4. Geben Sie auf der Seite Switch Role (Rolle wechseln) die Konto-ID für Konto A sowie den Rollennamen ein. In diesem Beispiel lautet der Rollenname CrossAccount-test.
  5. Wählen Sie Switch Role (Rolle wechseln) aus.

Hinweis: Wenn Konto B in der Befehlszeile der Umgebung von Konto A funktionieren muss, können Sie mithilfe der AWS CLI die Rolle wechseln. Weitere Informationen finden Sie unter Rollen wechseln (AWS CLI).

Ihre Benutzerberechtigungen wechseln sofort zu den Berechtigungen, die durch die Rolle zulässig sind, die Sie unter Konto A erstellt haben. Wenn Sie Ihren kontenübergreifenden Zugriff auf diese Weise einrichten, müssen Ihre Benutzer keine einzelnen IAM-Benutzer auf verschiedenen Konten erstellen. Sie müssen sich auch nicht von einem Konto abmelden und sich dann bei einem anderen anmelden, um auf eine Ressource zuzugreifen.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?