Direkt zum Inhalt

Wie weise ich Benutzern, die mit OpenSearch auf Amazon-Cognito-Benutzerpools zugreifen, eine Leseberechtigung zu?

Lesedauer: 3 Minute
0

Ich möchte nicht, dass Amazon-Cognito-Benutzer vollen Zugriff auf die Benutzerpools haben, wenn sie OpenSearch Dashboards verwenden.

Lösung

Domain mit deaktivierter, differenzierter Zugriffskontrolle

Wenn du die differenzierte Zugriffskontrolle für die OpenSearch-Domain nicht aktiviert hast, verwende die Domain-Zugriffsrichtlinie des OpenSearch-Clusters, um den Zugriff einzuschränken. Die Richtlinie gewährt den Cognito-Benutzern nur Lesezugriff. Lege die ESHttpGet-Berechtigung auf die Rolle fest, die mit der Cognito-Anmeldung verknüpft ist.

Beispiel für eine Domain-Zugriffsrichtlinie mit ESHttpGet-Berechtigung:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::account-id:role/Cognito_identity-pool-name Auth_Role"
      },
      "Action": "es:ESHttpGet",
      "Resource": "arn:aws:es:region:account-id:domain/opensearch-domain-name/"
    }
  ]
}

Hinweis: Ersetze account-id durch die ID deines AWS-Kontos und identity-pool-name durch den Namen deines Cognito-Identitätspools. Ersetze außerdem region durch deine AWS-Region und opensearch-domain-name durch deinen OpenSearch-Domainnamen.

Weitere Informationen findest du unter Konfigurierung einer Domain für die Verwendung der Amazon-Cognito-Authentifizierung.

Nachdem du die Richtlinie angewendet hast, teste sie und sende dann eine signierte Anfrage an die Domain, um dich zu vergewissern, dass du nur den GET-Vorgang für die Domain ausführen kannst.

OpenSearch-Cluster mit aktivierter, differenzierter Zugriffskontrolle

Gehe wie folgt vor:

  1. Öffne die Cognito-Konsole.

  2. Wähle deinen Benutzerpool und dann Benutzer erstellen aus.

  3. Erstelle eine(n) Benutzer:in mit einem Namen wie limited-user.

  4. Erstelle eine AWS Identity and Access management (IAM)-Rolle für den limited-user, z. B. LimitedUserRole. Verwende als Hauptbenutzer:in die IAM-Rolle, um bestimmten Benutzern eingeschränkten Zugriff zuzuweisen.

  5. Füge die folgende Vertrauensrichtlinie an LimitedUserRole an:

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "cognito-identity.amazonaws.com"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "cognito-identity.amazonaws.com :aud": "identity-pool-id"
            },
            "ForAnyValue:StringLike": {
              "cognito-identity.amazonaws.com :amr": "authenticated"
            }
          }
        }
      ]
    }

    Hinweis: Ersetze identity-pool-id durch deine Cognito-Identitätspool-ID.

  6. Füge die folgende benutzerdefinierte Inline-Richtlinie an, die der OpenSearch-Domain nur Leseberechtigungen gewährt:

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowOpenSearchReadAccess",
          "Effect": "Allow",
          "Action": [
            "es:ESHttpGet"
          ],
          "Resource": "arn:aws:es:region:account-id:domain/"
        }
      ]
    }

    Hinweis: Ersetze region durch deine Region und account-id durch die ID deines Kontos.

  7. Erstelle eine Gruppe mit einem Namen wie limited-user-group und weise der Gruppe dann die IAM-Rolle LimitedUserRole zu.

  8. Wähle limited-user-group aus und füge der Gruppe dann limited-user und andere Benutzer hinzu.

limited-user einer Rolle in OpenSearch Dashboards zuordnen

  1. Melde dich als Hauptbenutzer:in bei OpenSearch Dashboards an.
  2. Wähle Sicherheit aus.
  3. Wähle Rollen und dann deine Rolle aus. Oder erstelle eine neue. Weitere Informationen findest du unter Create roles (Rollen erstellen) auf der OpenSearch-Website.
    Hinweis: Du kannst auch die vordefinierte Rolle readall_and_monitor oder readall verwenden. Weitere Informationen findest du unter Predefined roles (Vordefinierte Rollen) auf der OpenSearch-Website.
  4. Ordne die Rolle einem limited-user zu.
  5. Melde dich als ein limited-user an.
    Hinweis: Du kannst keine Schreibvorgänge auf OpenSearch Dashboards ausführen.
AWS OFFICIALAktualisiert vor einem Jahr