Wie weise ich Benutzern, die mit OpenSearch auf Amazon-Cognito-Benutzerpools zugreifen, eine Leseberechtigung zu?
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:
-
Öffne die Cognito-Konsole.
-
Wähle deinen Benutzerpool und dann Benutzer erstellen aus.
-
Erstelle eine(n) Benutzer:in mit einem Namen wie limited-user.
-
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.
-
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.
-
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.
-
Erstelle eine Gruppe mit einem Namen wie limited-user-group und weise der Gruppe dann die IAM-Rolle LimitedUserRole zu.
-
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
- Melde dich als Hauptbenutzer:in bei OpenSearch Dashboards an.
- Wähle Sicherheit aus.
- 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. - Ordne die Rolle einem limited-user zu.
- Melde dich als ein limited-user an.
Hinweis: Du kannst keine Schreibvorgänge auf OpenSearch Dashboards ausführen.
- Themen
- Analytics
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten