Übersicht zur Verwaltung der Zugriffsberechtigungen für Amazon-Redshift-Ressourcen - Amazon Redshift

Übersicht zur Verwaltung der Zugriffsberechtigungen für Amazon-Redshift-Ressourcen

Jede AWS-Ressource gehört einem AWS-Konto an und die Berechtigungen für die Erstellung einer Ressource oder den Zugriff darauf werden durch Berechtigungsrichtlinien geregelt. Ein Kontoadministrator kann IAM-Identitäten (d. h. Benutzer, Gruppen und Rollen) Berechtigungsrichtlinien zuweisen. Manche Services (z. B. AWS Lambda) unterstützen auch die Zuweisung von Berechtigungsrichtlinien zu Ressourcen.

Anmerkung

Ein Kontoadministrator (oder Administratorbenutzer) ist ein Benutzer mit Administratorrechten. Weitere Informationen finden Sie unter Bewährte Methoden für IAM im IAM-Benutzerhandbuch.

Beim Erteilen von Berechtigungen entscheiden Sie, wer die Berechtigungen erhält, für welche Ressourcen die Berechtigungen gelten und welche Aktionen an diesen Ressourcen gestattet werden sollen.

Amazon-Redshift-Ressourcen und -Vorgänge

In Amazon Redshift ist die primäre Ressource ein Cluster. Amazon Redshift unterstützt andere Ressourcen, die mit der primären Ressource verwendet werden können, wie beispielsweise Snapshots, Parametergruppen und Ereignisabonnements. Diese werden als Unterressourcen bezeichnet.

Diesen Ressourcen und Unterressourcen sind eindeutige Amazon-Ressourcennamen (ARN) zugeordnet, wie in der folgenden Tabelle zu sehen ist.

Ressourcentyp ARN-Format
Cluster arn:aws:redshift:region:account-id:cluster:cluster-name
Cluster-Datenbank arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
Cluster-Datenbankbenutzer arn:aws:redshift:region:account-id:dbuser:cluster-name/database-user-name
Cluster-Datenbankbenutzergruppe arn:aws:redshift:region:account-id:dbgroup:cluster-name/database-group-name
Cluster-Parametergruppe arn:aws:redshift:region:account-id:parametergroup:parameter-group-name
Cluster-Sicherheitsgruppe arn:aws:redshift:region:account-id:securitygroup:security-group-name
CIDR/IP-Adresse arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/cidrip/IP-range
EC2-Sicherheitsgruppe arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/ec2securitygroup/owner/EC2-security-group-id
Ereignisabonnement arn:aws:redshift:region:account-id:eventsubscription:event-subscription-name
Hardware Security Module (HSM)-Client-Zertifikat arn:aws:redshift:region:account-id:hsmclientcertificate:HSM-client-certificate-id
HSM-Konfiguration arn:aws:redshift:region:account-id:hsmconfiguration:HSM-configuration-id
Parametergruppe arn:aws:redshift:region:account-id:parametergroup:parameter-group-name
Von Redshift verwalteter VPC-Endpunkt arn:aws:redshift:region:account-id:managedvpcendpoint:endpoint-name
Snapshot arn:aws:redshift:region:account-id:snapshot:cluster-name/snapshot-name
Snapshot-Kopie-Berechtigung arn:aws:redshift:region:account-id:snapshotcopygrant:snapshot-copy-grant-name
Subnetz-Gruppe arn:aws:redshift:region:account-id:subnetgroup:subnet-group-name

Amazon Redshift bietet eine Reihe von Vorgängen zum Arbeiten mit Amazon-Redshift-Ressourcen. Eine Liste der verfügbaren Operationen finden Sie unter Referenz für Amazon-Redshift-API-Berechtigungen.

Ressourcen für den Amazon-Redshift-Abfrage-Editor v2

Diesen Ressourcen für den Abfrage-Editor v2 sind eindeutige Amazon-Ressourcennamen (ARNs) zugeordnet, siehe nachfolgende Tabelle.

Ressourcentyp ARN-Format
Verbindung arn:aws:sqlworkbench:region:account-id:connection/
Abfragen arn:aws:sqlworkbench:region:account-id:query/
Tabelle arn:aws:sqlworkbench:region:account-id:chart/

Grundlegendes zum Eigentum an Ressourcen

Bei dem -Konto, das die Ressource erstellt hat, handelt es sich um den RessourceneigentümerAWS. Genauer gesagt ist der Ressourceninhaber das AWS-Konto der Prinzipal-Entität (das Stammkonto, ein IAM-Benutzer oder eine IAM-Rolle), die die Anforderung, die die Ressource erstellt, authentifiziert. Die Funktionsweise wird anhand der folgenden Beispiele deutlich:

  • Wenn Sie die Stammkonto-Anmeldeinformationen Ihres AWS-Kontos verwenden, um einen DB-Cluster zu erstellen, ist Ihr AWS-Konto der Inhaber der Amazon-Redshift-Ressource.

  • Wenn Sie einen IAM-Benutzer in Ihrem AWS-Konto erstellen und diesem Berechtigungen zum Erstellen von Amazon-Redshift-Ressourcen gewähren, kann dieser Benutzer Amazon-Redshift-Ressourcen erstellen. Ihr AWS-Konto, dem der Benutzer angehört, ist jedoch der Inhaber der Amazon-Redshift-Ressourcen.

  • Wenn Sie in Ihrem AWS-Konto eine IAM-Rolle mit Berechtigungen zum Erstellen von Amazon-Redshift-Ressourcen erstellen, kann jeder, der die Rolle übernehmen kann, Amazon-Redshift-Ressourcen erstellen. Ihr AWS-Konto, zu dem die Rolle gehört, ist der Inhaber der Amazon-Redshift-Ressourcen.

Verwalten des Zugriffs auf Ressourcen

Eine Berechtigungsrichtlinie beschreibt, wer Zugriff auf was hat. Im folgenden Abschnitt werden die verfügbaren Optionen zum Erstellen von Berechtigungsrichtlinien erläutert.

Anmerkung

Dieser Abschnitt behandelt die Verwendung von IAM im Zusammenhang mit Amazon Redshift. Er enthält keine detaillierten Informationen über den IAM-Service. Eine umfassende IAM-Dokumentation finden Sie unter Was ist IAM? im IAM-Benutzerhandbuch. Informationen über die Syntax und Beschreibungen von IAM-Richtlinien finden Sie in der AWS-IAM-Richtlinienreferenz im IAM-Benutzerhandbuch.

Richtlinien, die einer IAM-Identität zugeordnet sind, werden als identitätsbasierte Richtlinien (IAM-Richtlinien) bezeichnet, während Richtlinien, die einer Ressource zugeordnet sind, ressourcenbasierte Richtlinien genannt werden. Amazon Redshift unterstützt nur identitätsbasierte Richtlinien (IAM-Richtlinien).

Identitätsbasierte Richtlinien (IAM-Richtlinien)

Richtlinien können IAM-Identitäten angefügt werden. Sie können z. B. Folgendes tun:

  • Einem Benutzer oder einer Gruppe in Ihrem Konto eine Berechtigungsrichtlinie zuweisen – Ein Kontoadministrator kann eine Berechtigungsrichtlinie verwenden, die einem bestimmten Benutzer zugeordnet ist. Eine solche Richtlinie erteilt diesem Benutzer Berechtigungen zum Erstellen einer Amazon-Redshift-Ressource, wie beispielsweise eines Clusters.

  • Einer Rolle eine Berechtigungsrichtlinie zuweisen (kontoübergreifende Berechtigungen gewähren) – Sie können einer IAM-Rolle eine identitätsbasierte Berechtigungsrichtlinie zuweisen, um kontoübergreifende Berechtigungen zu erteilen. Beispielsweise kann der Administrator in Konto A eine Rolle erstellen, um einem anderen AWS-Konto (z. B. Konto B) oder einem AWS-Service kontoübergreifende Berechtigungen zu erteilen. Dazu geht er folgendermaßen vor:

    1. Der Administrator von Konto A erstellt eine IAM-Rolle und fügt ihr eine Berechtigungsrichtlinie an, die Berechtigungen für Ressourcen in Konto A erteilt.

    2. Der Administrator von Konto A weist der Rolle eine Vertrauensrichtlinie zu, die Konto B als den Prinzipal identifiziert, der die Rolle übernehmen kann.

    3. Der Administrator von Konto B kann nun Berechtigungen zur Übernahme der Rolle an alle Benutzer in Konto B delegieren. Daraufhin können die Benutzer in Konto B auf Ressourcen von Konto A zugreifen. Der Prinzipal in der Vertrauensrichtlinie kann auch ein AWS-Service-Prinzipal sein. Somit können Sie auch einem AWS-Service die Berechtigungen zur Übernahme der Rolle erteilen.

    Weitere Informationen zum Delegieren von Berechtigungen mithilfe von IAM finden Sie unter Zugriffsverwaltung im IAM-Benutzerhandbuch.

Nachfolgend sehen Sie ein Beispiel für eine Richtlinie, die einem Benutzer gestattet, Amazon-Redshift-Cluster für Ihr AWS-Konto zu erstellen, zu löschen, zu ändern und neu zu starten.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowManageClusters", "Effect":"Allow", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource":"*" } ] }

Weitere Informationen zur Verwendung identitätsbasierter Richtlinien mit Amazon Redshift finden Sie unter Verwenden identitätsbasierter Richtlinien (IAM-Richtlinien) für Amazon Redshift. Weitere Informationen zu Benutzern, Gruppen, Rollen und Berechtigungen finden Sie unter Identitäten (Benutzer, Gruppen und Rollen) im IAM-Benutzerhandbuch.

Ressourcenbasierte Richtlinien

Andere Services, z. B. Amazon S3, unterstützen auch ressourcenbasierte Berechtigungsrichtlinien. Beispielsweise können Sie einem S3 Bucket eine Richtlinie zuweisen, um die Zugriffsberechtigungen für diesen Bucket zu verwalten. Amazon Redshift unterstützt keine ressourcenbasierten Richtlinien. 

Angeben der Richtlinienelemente: Aktionen, Effekte, Ressourcen und Prinzipale

Für jede Amazon-Redshift-Ressource (siehe Amazon-Redshift-Ressourcen und -Vorgänge) definiert der Service eine Reihe von API-Vorgängen (siehe Aktionen). Zur Erteilung von Berechtigungen für diese API-Vorgänge definiert Amazon Redshift eine Reihe von Aktionen, die Sie in einer Richtlinie angeben können. Für das Durchführen einer API-Operation können Berechtigungen für mehrere Aktionen erforderlich sein.

Grundlegende Richtlinienelemente:

  • Ressource – In einer Richtlinie wird der Amazon-Ressourcenname (ARN) zur Identifizierung der Ressource verwendet, für die die Richtlinie gilt. Weitere Informationen finden Sie unter Amazon-Redshift-Ressourcen und -Vorgänge.

  • Aktion – Mit Aktionsschlüsselwörtern geben Sie die Ressourcenoperationen an, die Sie zulassen oder verweigern möchten. Die redshift:DescribeClusters-Berechtigung erteilt dem Benutzer zum Beispiel Berechtigungen zum Durchführen des Amazon-Redshift-DescribeClusters-Vorgangs.

  • Auswirkung – Die von Ihnen festgelegte Auswirkung, wenn der Benutzer die jeweilige Aktion anfordert – entweder „allow“ (Zugriffserlaubnis) oder „deny“ (Zugriffsverweigerung). Wenn Sie den Zugriff auf eine Ressource nicht ausdrücklich gestatten ("Allow"), wird er automatisch verweigert. Sie können den Zugriff auf eine Ressource auch explizit verweigern. So können Sie sicherstellen, dass Benutzer nicht darauf zugreifen können, auch wenn der Zugriff durch eine andere Richtlinie gestattet wird.

  • Prinzipal – In identitätsbasierten Richtlinien (IAM-Richtlinien) ist der Benutzer, dem die Richtlinie zugewiesen ist, automatisch der Prinzipal. In ressourcenbasierten Richtlinien müssen Sie den Benutzer, das Konto, den Service oder die sonstige Entität angeben, die die Berechtigungen erhalten soll (gilt nur für ressourcenbasierte Richtlinien). Amazon Redshift unterstützt keine ressourcenbasierten Richtlinien.

Weitere Informationen zur Syntax und zu Beschreibungen von IAM-Richtlinien finden Sie in der AWS-IAM-Richtlinienreferenz im IAM-Benutzerhandbuch.

Eine Tabelle mit allen Amazon-Redshift-API-Aktionen und den Ressourcen, für die sie gelten, finden Sie unter Referenz für Amazon-Redshift-API-Berechtigungen.

Angeben von Bedingungen in einer Richtlinie

Beim Erteilen von Berechtigungen können Sie mithilfe der Sprache der Zugriffsrichtlinie die Bedingungen angeben, wann die Richtlinie wirksam werden soll. Beispielsweise kann festgelegt werden, dass eine Richtlinie erst ab einem bestimmten Datum gilt. Weitere Informationen zum Angeben von Bedingungen in der Sprache der Zugriffsrichtlinie finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

Um Bedingungen zu identifizieren, unter denen eine Berechtigungsrichtlinie gilt, fügen Sie ein Condition-Element in Ihre Berechtigungsrichtlinie ein. Sie können beispielsweise eine Richtlinie erstellen, die einem Benutzer erlaubt, einen Cluster mit der Aktion redshift:CreateCluster zu erstellen, und Sie können ein Condition-Element hinzufügen, um die Einschränkung zu machen, dass dieser Benutzer den Cluster nur in einer bestimmten Region erstellen kann. Details hierzu finden Sie unter Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle. Eine Liste mit allen Bedingungsschlüsselwerten sowie den Amazon-Redshift-Aktionen und -Ressourcen, für die sie gelten, finden Sie unter Referenz für Amazon-Redshift-API-Berechtigungen.

Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle

In Amazon Redshift können Sie Bedingungsschlüssel verwenden, um den Zugriff auf Ressourcen basierend auf den Tags dieser Ressourcen einzuschränken. Die folgenden Elemente sind gängige Amazon-Redshift-Bedingungsschlüssel.

Bedingungsschlüssel Beschreibung

aws:RequestTag

Erfordert, dass Benutzer einen Tag-Schlüssel (Name) und einen Wert angeben, wenn sie eine Ressource erstellen. Weitere Informationen finden Sie unter aws:RequestTag im IAM-Benutzerhandbuch.

aws:ResourceTag

Beschränkt den Benutzerzugriff auf Ressourcen auf der Grundlage bestimmter Tag-Schlüssel und Werte. Weitere Informationen finden Sie unter aws:ResourceTag im IAM-Benutzerhandbuch.

aws:TagKeys

Verwenden Sie diesen Schlüssel, um die Tag-Schlüssel in einer Anforderung mit den Schlüsseln zu vergleichen, die Sie in der Richtlinie angeben. Weitere Informationen finden Sie unter aws:TagKeys im IAM-Benutzerhandbuch.

Weitere Informationen zu Tags finden Sie unter Markieren – Übersicht.

Eine Liste der API-Aktionen, die die Bedingungsschlüssel redshift:RequestTag und redshift:ResourceTag unterstützen, finden Sie unter Referenz für Amazon-Redshift-API-Berechtigungen.

Die folgenden Bedingungsschlüssel können mit der Amazon-Redshift-GetClusterCredentials-Aktion verwendet werden.

Bedingungsschlüssel Beschreibung

redshift:DurationSeconds

Begrenzt die Anzahl der Sekunden, die für die Dauer angegeben werden können.

redshift:DbName

Schränkt ein, welche Datenbanknamen angegeben werden können.

redshift:DbUser

Schränkt ein, welche Datenbankbenutzernamen angegeben werden können.

Beispiel 1: Beschränkung des Zugriffs durch Verwendung des Bedingungsschlüssels „aws:ResourceTag“

Verwenden Sie die folgende IAM-Richtlinie, um einem Benutzer zu erlauben, einen Amazon-Redshift-Cluster nur für ein bestimmtes AWS-Konto in der Region us-west-2 mit einem Tag namens environment und dem Tag-Wert test zu ändern.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowModifyTestCluster", "Effect": "Allow", "Action": "redshift:ModifyCluster", "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "test" } } } }

Beispiel 2: Beschränkung des Zugriffs durch Verwendung des Bedingungsschlüssels „aws:RequestTag“

Verwenden Sie die folgende IAM-Richtlinie, um einem Benutzer nur dann zu erlauben, einen Amazon-Redshift-Cluster zu erstellen, wenn der Befehl zum Erstellen des Clusters einen Tag mit der Bezeichnung usage und einen Tag-Wert von production enthält. Die Bedingung mit aws:TagKeys und der ForAllValues-Modifikator geben an, dass nur die Schlüssel costcenter und usage in der Anforderung angegeben werden können.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCreateProductionCluster", "Effect": "Allow", "Action": [ "redshift:CreateCluster", "redshift:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/usage": "production" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "costcenter", "usage" ] } } } }