Verwenden identitätsbasierter Richtlinien (IAM-Richtlinien) für Amazon Redshift - Amazon Redshift

Verwenden identitätsbasierter Richtlinien (IAM-Richtlinien) für Amazon Redshift

In diesem Thema finden Sie Beispiele für identitätsbasierte Richtlinien, in denen ein Kontoadministrator den IAM-Identitäten (Benutzer, Gruppen und Rollen) Berechtigungsrichtlinien anfügen kann.

Wichtig

Wir empfehlen Ihnen, zunächst die einführenden Themen zu lesen, in denen die Grundkonzepte und die für Sie verfügbaren Optionen zum Verwalten des Zugriffs auf Ihre Amazon-Redshift-Ressourcen erläutert werden. Weitere Informationen finden Sie unter Übersicht zur Verwaltung der Zugriffsberechtigungen für Amazon-Redshift-Ressourcen.

Hier ein Beispiel für eine Berechtigungsrichtlinie. Die Richtlinie erlaubt einem Benutzer, alle Cluster zu erstellen, zu löschen, zu modifizieren und neu zu starten, und verweigert die Erlaubnis, alle Cluster zu löschen oder zu modifizieren, bei denen die Cluster-ID mit beginnt production.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ] }

Die Richtlinie enthält zwei Anweisungen:

  • Die erste Anweisung gibt einem Benutzer die Berechtigung zum Erstellen, Löschen, Modifizieren und erneuten Starten von Clustern. Die Anweisung enthält ein Platzhalterzeichen (*) als Resource-Wert, sodass die Richtlinie für alle Amazon-Redshift-Ressourcen gilt, die dem AWS-Stammkonto gehören.

  • Die zweite Anweisung verweigert die Berechtigung zum Löschen oder Modifizieren eines Clusters. Die Anweisung gibt einen Cluster-ARN (Amazon-Ressourcenname) für den Resource-Wert an, der ein Platzhalterzeichen (*) enthält. Deshalb gilt diese Anweisung für alle Amazon-Redshift-Cluster, die dem AWS-Stammkonto gehören, bei denen die Cluster-ID mit production beginnt.

AWSVon verwaltete (vordefinierte) Richtlinien für Amazon Redshift

AWS Durch die Bereitstellung von eigenständigen IAM-Richtlinien, die von erstellt und verwaltet werden, deckt viele häufige Anwendungsfälle ab AWS. Die verwalteten Richtlinien erteilen die erforderlichen Berechtigungen für viele häufige Anwendungsfälle, sodass Sie nicht mühsam ermitteln müssen, welche Berechtigungen erforderlich sind. Weitere Informationen finden Sie unter Von AWS verwaltete Richtlinien im IAM-Benutzerhandbuch.

Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen für Amazon-Redshift-API-Operationen und -Ressourcen zu gewähren. Die benutzerdefinierten Richtlinien können Sie dann den IAM-Benutzern oder -Gruppen zuweisen, die diese Berechtigungen benötigen.

Die folgenden Abschnitte beschreiben die von AWS verwalteten Richtlinien, die Sie Benutzern in Ihrem Konto zuweisen können. Sie sind spezifisch für Amazon Redshift.

AmazonRedshiftReadOnlyAccess

Gewährt schreibgeschützten Zugriff zu allen Amazon-Redshift-Ressourcen für ein AWS-Konto.

Sie finden die AmazonRedshiftReadOnlyAccess-Richtlinie in der IAM-Konsole.

AmazonRedshiftFullAccess

Gewährt vollständigen Zugriff auf alle Amazon-Redshift-Ressourcen für das AWS-Konto. Darüber hinaus gewährt diese Richtlinie vollen Zugriff auf alle Amazon-Redshift-Serverless-Ressourcen.

Sie finden die AmazonRedshiftFullAccess-Richtlinie in der IAM-Konsole.

AmazonRedshiftQueryEditor

Gewährt vollständigen Zugriff auf den Abfrage-Editor in der Amazon-Redshift-Konsole.

Sie finden die AmazonRedshiftQueryEditor-Richtlinie in der IAM-Konsole.

AmazonRedshiftDataFullAccess

Gewährt vollen Zugriff auf die Amazon-Redshift-Data-API-Operationen und -Ressourcen für das AWS-Konto.

Sie finden die AmazonRedshiftDataFullAccess-Richtlinie in der IAM-Konsole.

AmazonRedshiftQueryEditorV2FullAccess

Gewährt vollen Zugriff auf die Vorgänge und Ressourcen des Amazon-Redshift-Abfrage-Editors v2. Diese Richtlinie gewährt außerdem Zugriff auf andere erforderliche Dienste.

Sie finden die AmazonRedshiftQueryEditorV2FullAccess-Richtlinie in der IAM-Konsole.

AmazonRedshiftQueryEditorV2NoSharing

Ermöglicht es, mit dem Amazon-Redshift-Abfrage-Editor v2 zu arbeiten, ohne Ressourcen zu teilen. Diese Richtlinie gewährt außerdem Zugriff auf andere erforderliche Dienste. Der Prinzipal, der diese Richtlinie verwendet, kann seine Ressourcen (z. B. Abfragen) nicht markieren, um sie mit anderen Prinzipalen im selben AWS-Konto zu teilen.

Sie finden die AmazonRedshiftQueryEditorV2NoSharing-Richtlinie in der IAM-Konsole.

AmazonRedshiftQueryEditorV2ReadSharing

Ermöglicht die eingeschränkte Freigabe von Ressourcen bei der Arbeit mit dem Amazon-Redshift-Abfrage-Editor v2. Diese Richtlinie gewährt außerdem Zugriff auf andere erforderliche Dienste. Der Prinzipal, der diese Richtlinie verwendet, kann seine Ressourcen (z. B. Abfragen) markieren, um sie mit anderen Prinzipalen im selben AWS-Konto zu teilen. Der Prinzipal mit der entsprechenden Berechtigung kann die mit seinem Team geteilten Ressourcen lesen, kann sie jedoch nicht ändern.

Sie finden die AmazonRedshiftQueryEditorV2ReadSharing-Richtlinie in der IAM-Konsole.

AmazonRedshiftQueryEditorV2ReadWriteSharing

Ermöglicht die Freigabe von Ressourcen bei der Arbeit mit dem Amazon-Redshift-Abfrage-Editor v2. Diese Richtlinie gewährt außerdem Zugriff auf andere erforderliche Dienste. Der Prinzipal, der diese Richtlinie verwendet, kann seine Ressourcen (z. B. Abfragen) markieren, um sie mit anderen Prinzipalen im selben AWS-Konto zu teilen. Der Prinzipal mit den entsprechenden Berechtigungen kann die mit seinem Team geteilten Ressourcen lesen und bearbeiten.

Sie finden die AmazonRedshiftQueryEditorV2ReadWriteSharing-Richtlinie in der IAM-Konsole.

AmazonRedshiftServiceLinkedRolePolicy

Sie können AmazonRedshiftServiceLinkedRolePolicy nicht an IAM-Entitäten anhängen. Diese Richtlinie ist an eine dienstgebundene Rolle angehängt, mit der Amazon Redshift auf Kontoressourcen zugreifen kann. Weitere Informationen finden Sie unter Verwenden von serviceverknüpften Rollen für Amazon Redshift.

AmazonRedshiftAllCommandsFullAccess

Erlaubt es, die IAM-Rolle zu verwenden, die in der Amazon-Redshift-Konsole erstellt wurde, und legt sie als Standard fest, damit der Cluster die Befehle COPY von Amazon S3 sowie UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION und CREATE MODEL ausführt. Die Richtlinie gewährt auch Berechtigungen zum Ausführen von SELECT-Anweisungen für verwandte Dienstleistungen wie Amazon S3, CloudWatch Logs, Amazon SageMaker oder AWS Glue.

Sie finden die AmazonRedshiftAllCommandsFullAccess-Richtlinie in der IAM-Konsole.

Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen für Amazon-Redshift-API-Operationen und -Ressourcen zu gewähren. Die benutzerdefinierten Richtlinien können Sie dann den IAM-Benutzern oder -Gruppen zuweisen, die diese Berechtigungen benötigen.

Amazon-Redshift-Aktualisierungen an von AWS verwalteten Richtlinien

Sehen Sie sich Details über Aktualisierungen an von AWS verwalteten Richtlinien für Amazon Redshift an, seit der Service diese Änderungen nachverfolgt. Um automatische Warnungen über Änderungen an dieser Seite zu erhalten, abonnieren Sie den RSS-Feed auf der Amazon-Redshift-Seite „Document history“ (Dokumentverlauf).

Änderung Beschreibung Datum

AmazonRedshiftFullAccess – Aktualisierung auf eine bestehende Richtlinie

Berechtigungen für Amazon Redshift Serverless werden der bestehenden AmazonRedshiftFullAccess-verwalteten Richtlinie hinzugefügt.

22. Juli 2022

AmazonRedshiftDataFullAccess – Aktualisierung auf eine bestehende Richtlinie

Amazon Redshift hat die Standardbedingung redshift-serverless:GetCredentials für den Geltungsbereich des Tags aws:ResourceTag/RedshiftDataFullAccess von StringEquals auf StringLike aktualisiert, um Zugriff auf Ressourcen zu gewähren, die mit dem Tag-Schlüssel RedshiftDataFullAccess und einem beliebigen Tag-Wert markiert sind. 11. Juli 2022

AmazonRedshiftDataFullAccess – Aktualisierung auf eine bestehende Richtlinie

Amazon Redshift hat neue Berechtigungen hinzugefügt, um redshift-serverless:GetCredentials für temporäre Anmeldeinformationen für Amazon Redshift Serverless zuzulassen. 8. Juli 2022

AmazonRedshiftServiceLinkedRolePolicy – Aktualisierung auf eine bestehende Richtlinie

Um den öffentlichen Zugriff auf neue Endpunkte von Amazon Redshift Serverless zu ermöglichen, weist Amazon Redshift der Elastic-Network-Schnittstelle des VPC-Endpunkts Elastic IP-Adressen im Kundenkonto zu und verknüpft sie. Dies geschieht über Berechtigungen, die über die serviceverknüpfte Rolle bereitgestellt werden. Für diesen Anwendungsfall werden der mit dem Amazon-Redshift-Serverless-Service verknüpften Rolle Aktionen zum Zuweisen und Freigeben einer Elastic IP-Adresse hinzugefügt.

26. Mai 2022

AmazonRedshiftQueryEditorV2FullAccess – Aktualisierung auf eine bestehende Richtlinie

Berechtigungen für die Aktion sqlworkbench:ListTaggedResources. Speziell auf Ressourcen des Abfrage-Editors v2 von Amazon Redshift ausgerichtet. Durch dieses Richtlinienupdate wird die Berechtigung erteilt, tag:GetResources nur über den Abfrage-Editor v2 aufzurufen.

22. Februar 2022

AmazonRedshiftQueryEditorV2NoSharing – Aktualisierung auf eine bestehende Richtlinie

Berechtigungen für die Aktion sqlworkbench:ListTaggedResources. Speziell auf Ressourcen des Abfrage-Editors v2 von Amazon Redshift ausgerichtet. Durch dieses Richtlinienupdate wird die Berechtigung erteilt, tag:GetResources nur über den Abfrage-Editor v2 aufzurufen.

22. Februar 2022

AmazonRedshiftQueryEditorV2ReadSharing – Aktualisierung auf eine bestehende Richtlinie

Berechtigungen für die Aktion sqlworkbench:ListTaggedResources. Speziell auf Ressourcen des Abfrage-Editors v2 von Amazon Redshift ausgerichtet. Durch dieses Richtlinienupdate wird die Berechtigung erteilt, tag:GetResources nur über den Abfrage-Editor v2 aufzurufen.

22. Februar 2022

AmazonRedshiftQueryEditorV2ReadWriteSharing – Aktualisierung auf eine bestehende Richtlinie

Berechtigungen für die Aktion sqlworkbench:ListTaggedResources. Speziell auf Ressourcen des Abfrage-Editors v2 von Amazon Redshift ausgerichtet. Durch dieses Richtlinienupdate wird die Berechtigung erteilt, tag:GetResources nur über den Abfrage-Editor v2 aufzurufen.

22. Februar 2022

AmazonRedshiftQueryEditorV2ReadSharing – Aktualisierung auf eine bestehende Richtlinie

Die Berechtigung für die Aktion sqlworkbench:AssociateQueryWithTab wurde der verwalteten Richtlinie hinzugefügt. Dadurch können Kunden Editor-Registerkarten erstellen, die mit einer für sie freigegebenen Abfrage verknüpft sind.

22. Februar 2022

AmazonRedshiftServiceLinkedRolePolicy – Aktualisierung auf eine bestehende Richtlinie

Für Amazon Redshift gibt es jetzt neue Berechtigungen für neue Aktionen, mit denen Sie Amazon-Redshift-Netzwerk- und Amazon-Redshift-VPC-Ressourcen verwalten können.

22. November 2021

AmazonRedshiftAllCommandsFullAccess – Neue Richtlinie.

Für Amazon Redshift gibt es jetzt eine neue Richtlinie, mit der Sie die IAM-Rolle verwenden können, die in der Amazon-Redshift-Konsole erstellt wurde, und hat sie als Standard festgelegt, damit der Cluster die Befehle COPY von Amazon S3 sowie UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION, CREATE MODEL und CREATE LIBRARY ausführt.

18. November 2021

AmazonRedshiftServiceLinkedRolePolicy – Aktualisierung auf eine bestehende Richtlinie

Für Amazon Redshift gibt es jetzt neue Berechtigungen für neue Aktionen, mit denen Sie Amazon-Redshift-CloudWatch-Protokollgruppen und -Protokollstreams verwalten und Audit-Protokolle exportieren können.

15. November 2021

AmazonRedshiftFullAccess – Aktualisierung auf eine bestehende Richtlinie

Für Amazon Redshift gibt es jetzt neue Berechtigungen für Modellerklärbarkeit, DynamoDB, Redshift Spectrum und Amazon-RDS-Verbund. 7. Oktober 2021

AmazonRedshiftQueryEditorV2FullAccess – Neue Richtlinie.

Für Amazon Redshift gibt es jetzt eine neue Richtlinie für vollen Zugriff auf den Amazon-Redshift-Abfrage-Editor v2.

24. September 2021

AmazonRedshiftQueryEditorV2NoSharing – Neue Richtlinie.

Für Amazon Redshift gibt es jetzt eine neue Richtlinie, die die Verwendung des Amazon-Redshift-Abfrage-Editors v2 ohne Freigabe von Ressourcen erlaubt.

24. September 2021

AmazonRedshiftQueryEditorV2ReadSharing – Neue Richtlinie.

Für Amazon Redshift gibt es jetzt eine neue Richtlinie, die das Lesen der Freigabe innerhalb des Amazon-Redshift-Abfrage-Editors v2 erlaubt.

24. September 2021

AmazonRedshiftQueryEditorV2ReadWriteSharing – Neue Richtlinie.

Für Amazon Redshift gibt es jetzt eine neue Richtlinie, die das Lesen und Aktualisieren der Freigabe im Amazon-Redshift-Abfrage-Editor v2 erlaubt.

24. September 2021

AmazonRedshiftFullAccess – Aktualisierung auf eine bestehende Richtlinie

Amazon Redshift hat neue Berechtigungen zum Erlauben von hinzugefügt sagemaker:*Job*.

18. August 2021

AmazonRedshiftDataFullAccess – Aktualisierung auf eine bestehende Richtlinie

Amazon Redshift hat neue Berechtigungen zum Erlauben von hinzugefügt AuthorizeDataShare.

12. August 2021

AmazonRedshiftDataFullAccess – Aktualisierung auf eine bestehende Richtlinie

Amazon Redshift hat neue Berechtigungen zum Erlauben von hinzugefügt BatchExecuteStatement.

27. Juli 2021

Amazon Redshift begann Nachverfolgung von Änderungen

Amazon Redshift begann mit der Nachverfolgung von Änderungen an seinen von AWS verwalteten Richtlinien.

27. Juli 2021

Erforderliche Berechtigungen zur Verwendung von Redshift Spectrum

Amazon Redshift Spectrum erfordert Berechtigungen für andere AWS-Services, um auf Ressourcen zuzugreifen. Detaillierte Informationen über Berechtigungen in IAM-Richtlinien für Redshift Spectrum finden Sie unter IAM-Richtlinien für Amazon Redshift Spectrum im Datenbankentwicklerhandbuch zu Amazon Redshift.

Erforderliche Berechtigungen zur Verwendung der Amazon-Redshift-Konsole

Damit Benutzer mit der Amazon-Redshift-Konsole arbeiten können, müssen sie über einen Mindestsatz an Berechtigungen verfügen, die es ihnen erlauben, die Amazon-Redshift-Ressourcen für ihr AWS-Konto zu beschreiben. Diese Berechtigungen müssen es den Benutzern darüber hinaus erlauben, weitere zugehörige Informationen zu beschreiben, u. a. zu Amazon-EC2-Sicherheit, Amazon CloudWatch, Amazon SNS und Netzwerken.

Wenn Sie eine IAM-Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Benutzer mit dieser IAM-Richtlinie. Um sicherzustellen, dass diese Benutzer die Amazon-Redshift-Konsole weiterhin verwenden können, weisen Sie ihnen auch die von AmazonRedshiftReadOnlyAccess verwaltete Richtlinie zu. Die Vorgehensweise ist in beschrieben AWSVon verwaltete (vordefinierte) Richtlinien für Amazon Redshift.

Informationen dazu, wie Sie einem Benutzer Zugriff auf den Abfrage-Editor in der Amazon-Redshift-Konsole geben, finden Sie unter Erforderliche Berechtigungen zur Verwendung des Abfrage-Editors der Amazon-Redshift-Konsole.

Für Benutzer, die nur Aufrufe an die AWS CLI oder die Amazon Redshift API durchführen, müssen Sie keine Mindestberechtigungen für die Konsole erteilen.

Erforderliche Berechtigungen zur Verwendung des Abfrage-Editors der Amazon-Redshift-Konsole

Damit Benutzer mit dem Amazon-Redshift-Abfrage-Editor arbeiten können, müssen sie über einen Mindestsatz von Berechtigungen für Amazon Redshift und Amazon-Redshift-Data-API-Vorgänge verfügen. Um sich über ein Secret mit einer Datenbank zu verbinden, müssen Sie auch über Secrets-Manager-Berechtigungen verfügen.

Um Benutzern Zugriff auf den Abfrage-Editor in der Amazon-Redshift-Konsole zu gewähren, weisen Sie ihnen die von AWS verwalteten Richtlinien AmazonRedshiftQueryEditor und AmazonRedshiftReadOnlyAccess zu. Die AmazonRedshiftQueryEditor-Richtlinie erlaubt Benutzern, nur die Ergebnisse ihrer eigenen SQL-Anweisungen abzurufen – also nur von Anweisungen, die von derselben aws:userid übermittelt wurden, wie in diesem Abschnitt der von AWS verwalteten Richtlinie AmazonRedshiftQueryEditor gezeigt.

{ "Sid": "DataAPIIAMSessionPermissionsRestriction", "Action": [ "redshift-data:GetStatementResult", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ListStatements" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } }

Damit ein Benutzer die Ergebnisse von SQL-Anweisungen anderer Benutzer in derselben IAM-Rolle abrufen kann, erstellen Sie eine eigene Richtlinie ohne die Bedingung, den Zugriff auf den aktuellen Benutzer zu beschränken. Beschränken Sie auch die Berechtigung zum Ändern einer Richtlinie auf einen Administrator.

Für die Verwendung des Abfrage-Editors v2 erforderliche Berechtigungen

Damit Benutzer mit dem Amazon-Redshift-Abfrage-Editor v2 arbeiten können, brauchen sie eine Mindestmenge an Berechtigungen für Vorgänge im Amazon-Redshift-Abfrage-Editor v2 sowie andere AWS-Services wie AWS Key Management Service, AWS Secrets Manager und den Markierungs-Service.

Um einem Benutzer vollen Zugriff auf den Abfrage-Editor v2 zu gewähren, fügen Sie die von AWS verwaltete Richtlinie AmazonRedshiftQueryEditorV2FullAccess an. Die AmazonRedshiftQueryEditorV2FullAccess-Richtlinie erlaubt es dem Benutzer, Ressourcen des Abfrage-Editors v2 (z. B. Abfragen) mit anderen im selben Team zu teilen. Weitere Informationen darüber, wie der Zugriff auf v2-Ressourcen des Abfrage-Editors gesteuert wird, finden Sie in der Definition der bestimmten verwalteten Richtlinie für den Abfrage-Editor v2 in der IAM-Konsole.

Einige von AWS verwaltete Richtlinien für den Amazon-Redshift-Abfrage-Editor v2 nutzen AWS-Tags innerhalb von Bedingungen, um den Zugriff auf Ressourcen zu ermöglichen. Innerhalb des Abfrage-Editors v2 basiert das Teilen von Abfragen auf dem Tag-Schlüssel und dem Wert "aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}" in der IAM-Richtlinie, die an den Prinzipal angehängt ist (entweder der IAM-Benutzer oder die IAM-Rolle). Prinzipale im selben AWS-Konto mit demselben Tag-Wert (z. B. accounting-team) sind im selben Team im Abfrage-Editor v2. Man kann jeweils nur mit einem Team verbunden sein. Ein Benutzer mit Administratorberechtigungen kann Teams in der IAM-Konsole einrichten, indem er allen Teammitgliedern den gleichen Wert für das Tag sqlworkbench-team gibt. Wenn der Tag-Wert von sqlworkbench-team für einen IAM-Benutzer oder eine IAM-Rolle geändert wird, kann es eine Zeit dauern, bis die Änderung in den freigegebenen Ressourcen angezeigt wird. Wenn der Tag-Wert einer Ressource (z. B. einer Abfrage) geändert wird, kann es erneut zu einer Verzögerung kommen. Teammitglieder brauchen auch die Berechtigung tag:GetResources zum Teilen.

Beispiel: Das Tag accounting-team für eine IAM-Rolle hinzufügen

  1. Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich der Konsole Rollen aus und wählen Sie dann den Namen der Rolle aus, die Sie bearbeiten möchten.

  3. Wählen Sie die Registerkarte Tags und dann Add tags (Tags hinzufügen) aus.

  4. Fügen Sie den Tag-Schlüssel sqlworkbench-team und den Wert accounting-team hinzu.

  5. Wählen Sie Save Changes.

    Wenn nun ein IAM-Prinzipal (dem diese IAM-Rolle angefügt wurde) eine Abfrage mit dem Team teilt, können andere Prinzipale mit demselben Tag-Wert bei accounting-team die Abfrage sehen.

Weitere Informationen darüber, wie Sie ein Tag an einen Prinzipal anhängen, einschließlich IAM-Rollen und IAM-Benutzern, finden Sie unter Markieren von IAM-Ressourcen im IAM-Benutzerhandbuch.

Sie können Teams auch auf Sitzungsebene mit einem Identitätsanbieter (IdP) einrichten. Dies ermöglicht es mehreren Benutzern, die dieselbe IAM-Rolle verwenden, ein anderes Team zu haben. Die IAM-Rollen-Vertrauensrichtlinie muss den Vorgang sts:TagSession erlauben. Weitere Informationen finden Sie unter Zum Hinzufügen von Sitzungstags erforderliche Berechtigungen im IAM-Benutzerhandbuch. Fügen Sie das Tag-Attribut des Prinzipals zur SAML-Assertion hinzu, die von Ihrem IdP bereitgestellt wird.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team"> <AttributeValue>accounting-team</AttributeValue> </Attribute>

Folgen Sie den Anweisungen für Ihren Identitätsanbieter (IdP), um das SAML-Attribut mit dem Inhalt zu füllen, der aus Ihrem Verzeichnis stammt. Weitere Informationen zu Identitätsanbietern (IdPs) und Amazon Redshift finden Sie unter Verwenden der IAM-Authentifizierung zur Erstellung von Anmeldeinformationen für Datenbankbenutzern und Identitätsanbieter und Verbund im IAM-Benutzerhandbuch.

Erforderliche Berechtigungen zur Verwendung des Amazon-Redshift-Schedulers

Wenn Sie den Amazon-Redshift-Scheduler verwenden, richten Sie eine IAM-Rolle mit einer Vertrauensstellung zum Amazon-Redshift-Scheduler (scheduler.redshift.amazonaws.com) ein, damit der Scheduler in Ihrem Namen Berechtigungen übernehmen kann. Sie weisen der Rolle auch eine Richtlinie (Berechtigungen) für die Amazon-Redshift-API-Vorgänge zu, die Sie planen möchten.

Das folgende Beispiel zeigt das Richtliniendokument im JSON-Format zum Einrichten einer Vertrauensstellung mit dem Amazon-Redshift-Scheduler und Amazon Redshift.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "scheduler.redshift.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Weitere Informationen zu vertrauenswürdigen Entitäten finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.

Sie müssen außerdem eine Berechtigung für die Amazon-Redshift-Vorgänge hinzufügen, die Sie planen möchten.

Damit der Scheduler die ResizeCluster-Operation verwenden kann, fügen Sie Ihrer IAM-Richtlinie eine Berechtigung hinzu, die der folgenden ähnlich ist. Abhängig von Ihrer Umgebung sollten Sie die Richtlinie möglicherweise restriktiver gestalten.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:ResizeCluster", "Resource": "*" } ] }

Die Schritte zum Erstellen einer Rolle für den Amazon-Redshift-Scheduler finden Sie unter Erstellen einer Rolle für einen AWS-Service (Konsole) im IAM-Benutzerhandbuch. Treffen Sie diese Entscheidungen, wenn Sie eine Rolle in der IAM-Konsole erstellen:

  • Für Choose the service that will use this role (Einen Service auswählen, der diese Rolle verwenden soll): Wählen Sie Redshift aus.

  • Für Select your use case (Wählen Sie Ihren Anwendungsfall) Folgendes aus: Wählen Sie Redshift - Scheduler aus.

  • Erstellen Sie eine Richtlinie oder weisen Sie diese der Rolle zu, die das Planen eines Amazon-Redshift-Vorgangs zulässt. Wählen Sie Create policy (Richtlinie erstellen) aus oder ändern Sie die Rolle, um eine Richtlinie zuzuweisen. Geben Sie die JSON-Richtlinie für die Operation ein, die geplant werden soll.

  • Nachdem Sie die Rolle erstellt haben, bearbeiten Sie die Trust Relationship (Vertrauensbeziehung) der IAM-Rolle, um den redshift.amazonaws.com-Service aufzunehmen.

Die von Ihnen erstellte IAM-Rolle hat vertrauenswürdige Entitäten von scheduler.redshift.amazonaws.com und redshift.amazonaws.com. Sie weist außerdem eine angefügte Richtlinie auf, die eine unterstützte Amazon-Redshift-API-Aktion wie zulässt., "redshift:ResizeCluster".

Erforderliche Berechtigungen zur Verwendung des Amazon-EventBridge-Schedulers

Wenn Sie den Amazon-EventBridge-Scheduler verwenden, richten Sie eine IAM-Rolle mit einer Vertrauensstellung zum EventBridge-Scheduler (events.amazonaws.com) ein, damit der Scheduler in Ihrem Namen Berechtigungen übernehmen kann. Sie weisen der Rolle auch eine Richtlinie (Berechtigungen) für die Amazon-Redshift-Data-API-Vorgänge zu, die Sie planen möchten, sowie eine Richtlinie für Amazon-EventBridge-Vorgänge zu.

Sie verwenden den EventBridge-Scheduler, wenn Sie geplante Abfragen mit dem Amazon-Redshift-Abfrage-Editor in der Konsole erstellen.

Sie können eine IAM-Rolle erstellen, um geplante Abfragen in der IAM-Konsole auszuführen. Fügen Sie in dieser IAM-Rolle AmazonEventBridgeFullAccess und AmazonRedshiftDataFullAccess an.

Das folgende Beispiel zeigt das Richtliniendokument im JSON-Format zum Einrichten einer Vertrauensstellung mit dem EventBridge-Scheduler.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }

Weitere Informationen zu vertrauenswürdigen Entitäten finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.

Die Schritte zum Erstellen einer Rolle für den EventBridge-Scheduler finden Sie unter Erstellen einer Rolle für einen AWS-Service (Konsole) im IAM-Benutzerhandbuch. Treffen Sie diese Entscheidungen, wenn Sie eine Rolle in der IAM-Konsole erstellen:

  • Wählen Sie unter Choose the service that will use this role (Den Service auswählen, der diese Rolle verwendet) die Option CloudWatch Events aus.

  • Wählen Sie bei Select your use case (Anwendungsfall auswählen) die Option CloudWatch Events.

  • Fügen Sie die folgenden Berechtigungsrichtlinien an: AmazonEventBridgeFullAccess und AmazonRedshiftDataFullAccess.

Die von Ihnen erstellte IAM-Rolle hat eine vertrauenswürdige Entität von events.amazonaws.com. Sie weist außerdem eine angefügte Richtlinie auf, die unterstützte Amazon-Redshift-Data-API-Aktionen wie zulässt., "redshift-data:*".

Für die Verwendung von Amazon-Redshift-Machine-Learning (ML) mit Amazon SageMaker erforderliche Berechtigungen

Nachfolgend finden Sie eine Beschreibung der Berechtigungen, die zur Nutzung von Amazon-Redshift-Machine-Learning (ML) mit Amazon SageMaker für verschiedene Anwendungsfälle erforderlich sind.

Damit Ihre Benutzer Amazon-Redshift-ML mit Amazon SageMaker verwenden können, erstellen Sie eine IAM-Rolle mit einer restriktiveren Richtlinie als die Standardeinstellung. Sie können die folgende Richtlinie verwenden. Sie können diese Richtlinie auch entsprechend Ihren Anforderungen anpassen.

Die folgende Richtlinie zeigt die erforderlichen Berechtigungen, um SageMaker Autopilot mit Modellerklärbarkeit über Amazon Redshift auszuführen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", ] } } } ] }

Die folgende Richtlinie zeigt die vollständigen Mindestberechtigungen für den Zugriff auf Amazon DynamoDB, Redshift Spectrum und Amazon-RDS-Verbund.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable", "dynamodb:Getitem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*redshift*", "arn:aws:dynamodb:*:*:table/*redshift*/index/*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*redshift*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "elasticmapreduce:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:*:table/*redshift*/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "glue.amazonaws.com", "sagemaker.amazonaws.com", "athena.amazonaws.com" ] } } } ] }

Um optional einen AWS KMS-Schlüssel für die Verschlüsselung zu nutzen, fügen Sie der Richtlinie folgende Berechtigungen hinzu.

{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] }

Weisen Sie der Rolle die folgende Vertrauensrichtlinie hinzu, damit Amazon Redshift und SageMaker die vorhergehende IAM-Rolle zur Interaktion mit anderen Services übernehmen können.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

In der vorhergehenden ist der Amazon S3 Bucket redshift-downloads/redshift-ml/ der Ort, an dem die Beispieldaten für andere Schritte und Beispiele gespeichert werden. Sie können ihn entfernen, wenn Sie keine Daten aus Amazon S3 laden müssen. Sie können ihn auch durch andere Amazon S3 Buckets ersetzen, die Sie zum Laden von Daten in Amazon Redshift verwenden.

Die Werte your-account-id, your-role und your-s3-bucket sind die Konto-ID, die Rolle und der Bucket, die Sie in Ihrem Befehl CREATE MODEL angeben.

Optional können Sie den Abschnitt mit AWS KMS-Schlüsseln der Beispielrichtlinie verwenden, wenn Sie bei der Verwendung von Amazon-Redshift-ML einen AWS KMS-Schlüssel angeben möchten. Der Wert your-kms-key ist der Schlüssel, den Sie als Teil Ihres CREATE-MODEL-Befehls verwenden.

Wenn Sie eine private Virtual Private Cloud (VPC) für den Hyperparameter-Optimierungsauftrag angeben, fügen Sie die folgenden Berechtigungen hinzu.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Um mit Modellerklärungen zu arbeiten, brauchen Sie die Berechtigungen zum Aufrufen von SageMaker-API-Operationen. Wir empfehlen Ihnen dazu die verwaltete Richtlinie AmazonSageMakerFullAccess. Wenn Sie eine IAM-Rolle mit einer restriktiveren Richtlinie erstellen möchten, können Sie die folgende verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker::CreateEndpoint", "sagemaker::CreateEndpointConfig", "sagemaker::DeleteEndpoint", "sagemaker::DeleteEndpointConfig", "sagemaker::DescribeEndpoint", "sagemaker::DescribeEndpointConfig", "sagemaker::DescribeModel", "sagemaker::InvokeEndpoint", "sagemaker::ListTags" ], "Resource": "*" } ] }

Weitere Informationen zur verwalteten Richtlinie AmazonSageMakerFullAccess siehe AmazonSageMakerFullAccess im Amazon-SageMaker-Entwicklerhandbuch.

Weitere Informationen zum Amazon-Redshift-ML finden Sie unter Verwenden von Machine Learning in Amazon Redshift oder CREATE MODEL.

Für die Verwendung der API-Operationen zur Datenfreigabe erforderliche Berechtigungen

Um den Zugriff auf die API-Operationen für die Datenfreigabe zu steuern, verwenden Sie aktionsbasierte IAM-Richtlinien. Weitere Informationen zum Verwalten von IAM-Richtlinien finden Sie unter Managing IAM policies (Verwalten von IAM-Richtlinien) im IAM-Benutzerhandbuch.

Man denke an den Fall, dass ein Administrator eines Produzenten-Clusters den Aufruf AuthorizeDataShare verwenden muss, um die Ausgabe eines Datashares außerhalb eines AWS-Konto zu autorisieren. In diesem Fall richten Sie eine IAM-aktionsbasierte Richtlinie ein, um diese Berechtigung zu erteilen. Verwenden Sie den DeauthorizeDataShare-Aufruf, um die Ausgabe aufzuheben.

Wenn Sie aktionsbasierte IAM-Richtlinien verwenden, können Sie auch eine IAM-Ressource in der Richtlinie angeben, z. B. DataShareARN. Nachfolgend sehen Sie das Format und ein Beispiel für DataShareARN.

arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare

Sie können AuthorizeDataShare-Zugriff auf einen bestimmten Datasharedurch Angabe des Datashare-Namens in der IAM-Richtlinie beschränken.

{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }

Sie können die IAM-Richtlinie auch auf alle Datashares beschränken, die einem bestimmten Produzenten-Cluster gehören. Dazu ersetzen Sie den datashare-name-Wert in der Richtlinie mit einem Platzhalter oder einem Sternchen. Behalten Sie den Cluster-Wert namespace-guid bei.

arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*

Es folgt eine IAM-Richtlinie, die verhindert, dass eine Entität in Datashares von einem bestimmten Produzenten-Cluster AuthorizeDataShare aufruft.

{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }

DataShareARN beschränkt den Zugriff auf Grundlage des Datashare-Namens sowie der Globally Unique ID (GUID) für den Namespace des besitzenden Clusters. Dies geschieht, indem der Name als Sternchen angegeben wird.

Ressourcenbasierte Richtlinien für „GetClusterCredentials“

Zum Herstellen einer Verbindung mit einer Cluster-Datenbank mithilfe einer JDBC- oder ODBC-Verbindung und IAM-Datenbankanmeldeinformationen sowie zum programmgesteuerten Aufrufen der Aktion GetClusterCredentials benötigen Sie einen Mindestsatz an Berechtigungen. Sie benötigen mindestens die Berechtigung zum Aufrufen der Aktion redshift:GetClusterCredentials mit Zugriff auf eine dbuser-Ressource.

Wenn Sie eine JDBC- oder ODBC-Verbindung verwenden, können Sie anstatt server und port die Optionen cluster_id und region angeben. Dazu benötigen Sie allerdings die Berechtigung zum Aufruf der Aktion redshift:DescribeClusters mit Zugriff auf die Ressource cluster.

Wenn Sie die Aktion GetClusterCredentials mit den optionalen Parametern Autocreate, DbGroups und DbName aufrufen, müssen Sie außerdem die in der folgenden Tabelle aufgeführten Aktionen und den Zugriff auf die dort aufgeführten Ressourcen erlauben.

Parameter „GetClusterCredentials“

Action

Ressource

Autocreate

redshift:CreateClusterUser

dbuser

DbGroups

redshift:JoinGroup

dbgroup

DbName

N/A dbname

Weitere Informationen zu Ressourcen finden Sie unter Amazon-Redshift-Ressourcen und -Vorgänge.

Sie können auch die folgenden Bedingungen in Ihrer Richtlinie verwenden:

  • redshift:DurationSeconds

  • redshift:DbName

  • redshift:DbUser

Weitere Informationen über Bedingungen finden Sie unter Angeben von Bedingungen in einer Richtlinie.

Beispiele für vom Kunden verwaltete Richtlinien

In diesem Abschnitt finden Sie Beispiele für Benutzerrichtlinien, die Berechtigungen für verschiedene Amazon-Redshift-Aktionen gewähren. Diese Richtlinien funktionieren, wenn Sie die Amazon-Redshift-API, AWS-SDKs oder die AWS CLI verwenden.

Anmerkung

In allen Beispielen werden die Region USA West (Oregon) (us-west-2) und fiktive Konto-IDs verwendet.

Beispiel 1: Benutzer vollen Zugriff auf alle Amazon-Redshift-Aktionen und -Ressourcen gewähren

Die folgende Richtlinie gewährt Zugriff auf alle Amazon-Redshift-Aktionen für alle Ressourcen.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ] }

Der Wert redshift:* im Element Action bezeichnet alle Aktionen in Amazon Redshift.

Beispiel 2: Benutzer Zugriff auf Satz von Amazon-Redshift-Aktionen verweigern

Standardmäßig werden alle Berechtigungen verweigert. Manchmal müssen Sie jedoch den Zugriff auf eine bestimmte Aktion oder einen Satz von Aktionen ausdrücklich verweigern. Die folgende Richtlinie gewährt Zugriff auf alle Amazon-Redshift-Aktionen und verweigert ausdrücklich den Zugriff auf jede Amazon-Redshift-Aktion, deren Name mit beginnt Delete. Diese Richtlinie gilt für alle Amazon-Redshift-Ressourcen in us-west-2.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ], "Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ] }

Beispiel 3: Einem Benutzer die Verwaltung von Clustern gestatten

Die folgende Richtlinie erlaubt einem Benutzer, alle Cluster zu erstellen, zu löschen, zu modifizieren und neu zu starten, und verweigert die Erlaubnis, alle Cluster zu löschen oder zu modifizieren, bei denen der Clustername mit beginnt protected.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ] }

Beispiel 4: Einem Benutzer die Autorisierung und den Widerruf des Zugriffs auf Snapshots erlauben

Die folgende Richtlinie erlaubt einem Benutzer, etwa Benutzer A, Folgendes zu tun:

  • Autorisieren des Zugriffs zu allen von einem Cluster mit der Bezeichnung erstellten Snapshots shared.

  • Widerrufen des Snapshot-Zugriffs für alle vom Cluster shared erstellten Snapshots, bei denen der Snapshot-Name mit revokable beginnt.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow" }, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ] }

Wenn Benutzer A Benutzer B den Zugriff auf einen Snapshot gestattet hat, muss Benutzer B über eine Richtlinie wie die folgende verfügen, damit Benutzer B einen Cluster aus dem Snapshot wiederherstellen kann. Die folgende Richtlinie gestattet Benutzer B die Beschreibung und Wiederherstellung von Snapshots sowie die Erstellung von Clusters. Die Namen dieser Cluster müssen mit beginnen from-other-account.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ] }

Beispiel 5: Einem Benutzer gestatten, einen Cluster-Snapshot zu kopieren und einen Cluster von einem Snapshot wiederherzustellen

Die folgende Richtlinie erlaubt einem Benutzer, alle von einem Cluster mit der Bezeichnung big-cluster-1 erstellten Snapshots zu kopieren und alle Snapshots wiederherzustellen, deren Name mit snapshot-for-restore beginnt.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*" ], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ] }

Die folgende Beispielrichtlinie gewährt Zugriff auf alle Aktionen und Ressourcen für Amazon Redshift, Amazon Simple Notification Service (Amazon SNS) und Amazon CloudWatch. Sie erlaubt darüber hinaus bestimmte Aktionen für alle verwandten Amazon-EC2-Ressourcen im Konto.

Anmerkung

Berechtigungen auf Ressourcenebene werden für die in dieser Beispielrichtlinie angegebenen Amazon-EC2-Aktionen nicht unterstützt.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }

Beispiel 7: Benutzer erlauben, mit der Amazon-Redshift-Konsole Ressourcen zu markieren

Mit der folgenden Beispielrichtlinie kann ein Benutzer Ressourcen mit der Amazon-Redshift-Konsole über die AWS Resource Groups markieren. Diese Richtlinie kann einer Benutzerrolle zugewiesen werden, die die neue oder ursprüngliche Amazon-Redshift-Konsole aufruft. Weitere Informationen über das Markieren mit Tags finden Sie unter Markieren von Ressourcen in Amazon Redshift.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Tagging permissions", "Effect": "Allow", "Action": [ "redshift:DeleteTags", "redshift:CreateTags", "redshift:DescribeTags", "tag:UntagResources", "tag:TagResources" ], "Resource": "*" } ] }

Beispielrichtlinie für die Verwendung von „GetClusterCredentials“

Die folgende Richtlinie verwendet diese Beispielparameterwerte:

  • Region: us-west-2

  • AWS Konto: 123456789012

  • Cluster name: examplecluster

Die folgende Richtlinie aktiviert die Aktionen GetCredentials, CreateClusterUser und JoinGroup. Nur wenn die AWS-Benutzer-ID mit "AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" übereinstimmt, verwendet die Richtlinie Bedingungsschlüssel, um die Aktionen GetClusterCredentials und CreateClusterUser zuzulassen. IAM-Zugriff ist nur für die "testdb"-Datenbank erforderlich. Die Richtlinie erlaubt Benutzern auch, einer Gruppe namens "common_group" beizutreten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ] } } }