Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Referenz zu Lake-Formation-Berechtigungen
Um - AWS Lake Formation Operationen auszuführen, benötigen Prinzipale sowohl Lake-Formation- AWS Identity and Access Management Berechtigungen als auch (IAM)-Berechtigungen. In der Regel erteilen Sie IAM-Berechtigungen mithilfe grober Zugriffskontrollrichtlinien, wie unter beschriebenÜberblick über die Genehmigungen für Lake Formation . Sie können Lake-Formation-Berechtigungen mithilfe der Konsole, der API oder der AWS Command Line Interface (AWS CLI) erteilen.
Informationen zum Erteilen oder Widerrufen von Lake-Formation-Berechtigungen finden Sie unter Erteilen und Widerrufen von Berechtigungen für Datenkatalogressourcen und Erteilung von Berechtigungen zum Speicherort von Daten.
Anmerkung
Die Beispiele in diesem Abschnitt zeigen, wie Sie Prinzipalen im selben AWS Konto Berechtigungen erteilen. Beispiele für kontoübergreifende Erteilungen finden Sie unter Kontoübergreifende Datenfreigabe in Lake Formation.
Lake-Formation-Berechtigungen pro Ressourcentyp
Im Folgenden sind die gültigen Lake-Formation-Berechtigungen aufgeführt, die für jeden Ressourcentyp verfügbar sind:
Ressource | Berechtigung |
---|---|
Database |
ALL (Super ) |
ALTER |
|
CREATE_TABLE |
|
DESCRIBE |
|
DROP |
|
Table |
ALL (Super ) |
ALTER |
|
DELETE |
|
DESCRIBE |
|
DROP
|
|
INSERT
|
|
SELECT |
|
View |
ALL (Super ) |
SELECT |
|
DESCRIBE |
|
DROP |
|
Data Catalog |
CREATE_DATABASE |
Amazon S3 location |
DATA_LOCATION_ACCESS |
LF-Tags |
DROP |
ALTER |
|
LF-Tag values |
ASSOCIATE |
DESCRIBE |
|
GrantWithLFTagExpression |
|
LF-Tag policy - Database |
ALL (Super ) |
ALTER |
|
CREATE_TABLE |
|
DESCRIBE |
|
DROP |
|
LF-Tag policy - Table |
ALL (Super ) |
ALTER |
|
DESCRIBE |
|
DELETE |
|
DROP |
|
INSERT |
|
SELECT |
|
Resource link - Database or Table |
DESCRIBE |
DROP
|
|
Table with data filters |
DESCRIBE |
DROP |
|
SELECT |
|
Table with column filter |
SELECT |
AWS CLI Befehle zum Erteilen und Widerrufen von Lake Formation
Jede Berechtigungsbeschreibung in diesem Abschnitt enthält Beispiele für die Erteilung der Berechtigung mithilfe eines - AWS CLI Befehls. Im Folgenden finden Sie die Synopsen der revoke-permissions AWS CLI Befehle grant-permissions und von Lake Formation.
grant-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
revoke-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
Detaillierte Beschreibungen dieser Befehle finden Sie unter Grant-Berechtigungen und revoke-permissions in der AWS CLI -Befehlsreferenz. Dieser Abschnitt enthält zusätzliche Informationen zur --principal
Option .
Der Wert der --principal
Option ist einer der folgenden:
-
Amazon-Ressourcenname (ARN) für einen AWS Identity and Access Management (IAM)-Benutzer oder eine Rolle
-
ARN für einen Benutzer oder eine Gruppe, der/die sich über einen SAML-Anbieter authentifiziert, z. B. Microsoft Active Directory Federation Service (AD FS)
-
ARN für einen Amazon- QuickSight Benutzer oder eine Amazon-Gruppe
-
Für kontoübergreifende Berechtigungen, eine AWS Konto-ID, eine Organisations-ID oder eine Organisationseinheiten-ID
Im Folgenden finden Sie Syntax und Beispiele für alle --principal
Typen.
- Prinzipal ist ein IAM-Benutzer
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:user/<user-name>
Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1
- Prinzipal ist eine IAM-Rolle
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:role/<role-name>
Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole
- Prinzipal ist ein Benutzer, der sich über einen SAML-Anbieter authentifiziert
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:saml-provider/<SAMLproviderName>
:user/<user-name>
Beispiele:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:user/datalake_user1
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:user/athena-user@example.com
- Prinzipal ist eine Gruppe, die sich über einen SAML-Anbieter authentifiziert
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:saml-provider/<SAMLproviderName>
:group/<group-name>
Beispiele:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group
- Prinzipal ist ein Amazon QuickSight Enterprise Edition-Benutzer
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:
<region>
:<account-id>
:user/<namespace>
/<user-name>
Anmerkung
Für
<namespace>
müssen Sie angebendefault
.Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1
- Prinzipal ist eine Gruppe von Amazon QuickSight Enterprise Edition
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:
<region>
:<account-id>
:group/<namespace>
/<group-name>
Anmerkung
Für
<namespace>
müssen Sie angebendefault
.Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists
- Prinzipal ist ein - AWS Konto
-
Syntax:
--principal DataLakePrincipalIdentifier=
<account-id>
Beispiel:
--principal DataLakePrincipalIdentifier=111122223333
- Prinzipal ist eine Organisation
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::
<account-id>
:organization/<organization-id>
Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl
- Prinzipal ist eine Organisationseinheit
-
Syntax:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::
<account-id>
:ou/<organization-id>
/<organizational-unit-id>
Beispiel:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij
- Prinzipal ist ein IAM-Identity-Center-Identitätsbenutzer oder eine IAM-Identity-Center-Gruppe
-
Beispiel:Benutzer
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/
<UserID>
Beispiel:Gruppe:
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/
<GroupID>
- Prinzipal ist eine IAM-Gruppe –
IAMAllowedPrincipals
-
Lake Formation legt die
Super
Berechtigung für alle Datenbanken und Tabellen im Data CatalogIAMAllowedPrincipals
standardmäßig auf eine Gruppe namens fest. Wenn diese Gruppenberechtigung für eine Datenbank oder eine Tabelle vorhanden ist, haben alle Prinzipale in Ihrem Konto über die IAM-Prinzipalrichtlinien für Zugriff auf die Ressource AWS Glue. Es bietet Abwärtskompatibilität, wenn Sie Lake-Formation-Berechtigungen zum Schutz der Data-Catalog-Ressourcen verwenden, die zuvor durch IAM-Richtlinien für geschützt waren AWS Glue.Wenn Sie Lake Formation verwenden, um Berechtigungen für Ihre Data-Catalog-Ressourcen zu verwalten, müssen Sie zuerst die
IAMAllowedPrincipals
Berechtigung für die Ressourcen widerrufen oder die Prinzipale und Ressourcen für den Hybrid-Zugriffsmodus aktivieren, damit Lake-Formation-Berechtigungen funktionieren.Beispiel:
--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
- Prinzipal ist eine IAM-Gruppe –
ALLIAMPrincipals
-
Wenn Sie Berechtigungen für die
ALLIAMPrincipals
Gruppierung einer Data-Catalog-Ressource erteilen, erhält jeder Prinzipal im Konto mithilfe von Lake-Formation-Berechtigungen und IAM-Berechtigungen Zugriff auf die Data-Catalog-Ressource.Beispiel:
--principal DataLakePrincipalIdentifier=
123456789012
:IAMPrincipals
Lake-Formation-Berechtigungen
Dieser Abschnitt enthält die verfügbaren Lake-Formation-Berechtigungen, die Sie Prinzipalen erteilen können.
ALTER
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
ALTER |
DATABASE |
glue:UpdateDatabase
|
ALTER |
TABLE |
glue:UpdateTable |
ALTER |
LF-Tag |
lakeformation:UpdateLFTag |
Ein Prinzipal mit dieser Berechtigung kann Metadaten für eine Datenbank oder Tabelle im Data Catalog ändern. Für Tabellen können Sie das Spaltenschema ändern und Spaltenparameter hinzufügen. Sie können keine Spalten in den zugrunde liegenden Daten ändern, auf die eine Metadatentabelle verweist.
Wenn es sich bei der Eigenschaft, die geändert wird, um einen registrierten Amazon Simple Storage Service (Amazon S3)-Speicherort handelt, muss der Prinzipal über Datenspeicherortberechtigungen am neuen Speicherort verfügen.
Im folgenden Beispiel wird die -ALTER
Berechtigung dem Benutzer datalake_user1
in der Datenbank retail
im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'
Das folgende Beispiel gewährt ALTER
dem Benutzer datalake_user1
in der Tabelle inventory
in der Datenbank retail
.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
CREATE_DATABASE
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
CREATE_DATABASE |
Data Catalog | glue:CreateDatabase |
Ein Prinzipal mit dieser Berechtigung kann eine Metadatendatenbank oder einen Ressourcenlink im Data Catalog erstellen. Der Prinzipal kann auch Tabellen in der Datenbank erstellen.
Im folgenden Beispiel CREATE_DATABASE
wird dem Benutzer datalake_user1
im AWS Konto 1111-2222-3333 gewährt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'
Wenn ein Prinzipal eine Datenbank im Data Catalog erstellt, werden keine Berechtigungen für zugrunde liegende Daten erteilt. Die folgenden zusätzlichen Metadatenberechtigungen werden gewährt (zusammen mit der Möglichkeit, diese Berechtigungen anderen zu erteilen):
-
CREATE_TABLE
in der Datenbank -
ALTER
-Datenbank -
DROP
-Datenbank
Beim Erstellen einer Datenbank kann der Prinzipal optional einen Amazon S3-Speicherort angeben. Je nachdem, ob der Prinzipal über Berechtigungen zum Datenspeicherort verfügt, reicht die CREATE_DATABASE
Berechtigung möglicherweise nicht aus, um Datenbanken in allen Fällen zu erstellen. Beachten Sie unbedingt die folgenden drei Fälle.
Erstellen eines Datenbank-Anwendungsfalls | Berechtigungen erforderlich |
---|---|
Die Standorteigenschaft ist nicht angegeben. | CREATE_DATABASE ist ausreichend. |
Die -Standorteigenschaft wird angegeben und der Standort wird nicht von Lake Formation verwaltet (ist nicht registriert). | CREATE_DATABASE ist ausreichend. |
Die -Standorteigenschaft wird angegeben und der Standort wird von Lake Formation verwaltet (ist registriert). | CREATE_DATABASE ist erforderlich sowie Berechtigungen für den Datenspeicherort am angegebenen Speicherort. |
CREATE_TABLE
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
CREATE_TABLE |
DATABASE |
glue:CreateTable
|
Ein Prinzipal mit dieser Berechtigung kann eine Metadatentabelle oder einen Ressourcenlink im Data Catalog innerhalb der angegebenen Datenbank erstellen.
Im folgenden Beispiel wird dem Benutzer die datalake_user1
Berechtigung zum Erstellen von Tabellen in der retail
Datenbank im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
Wenn ein Prinzipal eine Tabelle im Data Catalog erstellt, werden dem Prinzipal alle Lake-Formation-Berechtigungen für die Tabelle gewährt, mit der Möglichkeit, diese Berechtigungen anderen zu erteilen.
Kontoübergreifende Erteilungen
Wenn ein Datenbankbesitzerkonto einem Empfängerkonto CREATE_TABLE
gewährt und ein Benutzer im Empfängerkonto erfolgreich eine Tabelle in der Datenbank des Besitzerkontos erstellt, gelten die folgenden Regeln:
-
Die Benutzer- und Data-Lake-Administratoren im Empfängerkonto verfügen über alle Lake-Formation-Berechtigungen für die Tabelle. Sie können anderen Prinzipalen in ihrem Konto Berechtigungen für die Tabelle erteilen. Sie können Prinzipalen im Besitzerkonto oder anderen Konten keine Berechtigungen erteilen.
-
Data-Lake-Administratoren im Besitzerkonto können anderen Prinzipalen in ihrem Konto Berechtigungen für die Tabelle erteilen.
Berechtigungen für den Datenspeicherort
Wenn Sie versuchen, eine Tabelle zu erstellen, die auf einen Amazon S3-Speicherort verweist, reicht die CREATE_TABLE
Berechtigung möglicherweise nicht aus, um eine Tabelle zu erstellen. Beachten Sie unbedingt die folgenden drei Fälle.
Erstellen eines Anwendungsfalls für Tabellen | Berechtigungen erforderlich |
---|---|
Der angegebene Speicherort wird nicht von Lake Formation verwaltet (wird nicht registriert). | CREATE_TABLE ist ausreichend. |
Der angegebene Speicherort wird von Lake Formation verwaltet (ist registriert), und die enthaltende Datenbank hat keine Standorteigenschaft oder eine Standorteigenschaft, die kein Amazon S3-Präfix des Tabellenspeicherorts ist. | CREATE_TABLE ist erforderlich plus Berechtigungen für den Datenspeicherort am angegebenen Speicherort. |
Der angegebene Speicherort wird von Lake Formation verwaltet (ist registriert), und die enthaltende Datenbank hat eine Standorteigenschaft, die auf einen registrierten Speicherort verweist und ein Amazon S3-Präfix des Tabellenspeicherorts ist. | CREATE_TABLE ist ausreichend. |
DATA_LOCATION_ACCESS
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
DATA_LOCATION_ACCESS |
Amazon-S3-Speicherort | (Amazon S3-Berechtigungen für den Standort, die von der Rolle angegeben werden müssen, die zur Registrierung des Standorts verwendet wurde.) |
Dies ist die einzige Berechtigung für den Datenspeicherort. Ein Prinzipal mit dieser Berechtigung kann eine Metadatendatenbank oder -tabelle erstellen, die auf den angegebenen Amazon S3-Speicherort verweist. Der Speicherort muss registriert sein. Ein Prinzipal, der über Datenstandortberechtigungen an einem Speicherort verfügt, verfügt auch über Standortberechtigungen für untergeordnete Standorte.
Im folgenden Beispiel werden dem Benutzer datalake_user1
im AWS Konto 1111-2222-3333 Berechtigungen s3://products/retail
für den Datenspeicherort für erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::products/retail"}}'
DATA_LOCATION_ACCESS
ist nicht erforderlich, um zugrunde liegende Daten abzufragen oder zu aktualisieren. Diese Berechtigung gilt nur für das Erstellen von Data-Catalog-Ressourcen.
Weitere Informationen zu Berechtigungen für den Datenspeicherort finden Sie unter Underlying data access control.
DELETE
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
DELETE |
TABLE |
(Wenn der Standort registriert ist, sind keine zusätzlichen IAM-Berechtigungen erforderlich.) |
Ein Prinzipal mit dieser Berechtigung kann zugrunde liegende Daten an dem in der Tabelle angegebenen Amazon S3-Speicherort löschen. Der Prinzipal kann die Tabelle auch in der Lake-Formation-Konsole anzeigen und Informationen über die Tabelle mit der AWS Glue API abrufen.
Im folgenden Beispiel wird dem Benutzer die -DELETE
Berechtigung für datalake_user1
die Tabelle inventory
in der Datenbank retail
im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DELETE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Diese Berechtigung gilt nur für Daten in Amazon S3 und nicht für Daten in anderen Datenspeichern wie Amazon Relational Database Service (Amazon RDS).
DESCRIBE
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
DESCRIBE |
Tabellenressourcen-Link Link zu Datenbankressourcen |
|
DESCRIBE |
DATABASE |
glue:GetDatabase |
DESCRIBE |
TABLE |
glue:GetTable |
DESCRIBE |
LF-Tag |
|
Ein Prinzipal mit dieser Berechtigung kann die angegebene Datenbank, Tabelle oder den angegebenen Ressourcenlink anzeigen. Es werden keine anderen Data-Catalog-Berechtigungen implizit erteilt, und es werden keine Datenzugriffsberechtigungen implizit gewährt. Datenbanken und Tabellen werden in den Abfrage-Editoren der integrierten Services angezeigt, aber es können keine Abfragen für sie gestellt werden, es sei denn, es werden andere Lake-Formation-Berechtigungen (z. B. SELECT
) erteilt.
Beispielsweise kann ein Benutzer, der DESCRIBE
in einer Datenbank hat, die Datenbank und alle Datenbankmetadaten (Beschreibung, Speicherort usw.) sehen. Der Benutzer kann jedoch nicht herausfinden, welche Tabellen die Datenbank enthält, und kann keine Tabellen in der Datenbank löschen, ändern oder erstellen. Ebenso kann ein Benutzer, der DESCRIBE
in einer Tabelle hat, die Tabellen- und Tabellenmetadaten (Beschreibung, Schema, Speicherort usw.) sehen, aber keine Abfragen für die Tabelle löschen, ändern oder ausführen.
Im Folgenden finden Sie einige zusätzliche Regeln für DESCRIBE
:
-
Wenn ein Benutzer über andere Lake-Formation-Berechtigungen für eine Datenbank, Tabelle oder einen Ressourcenlink verfügt,
DESCRIBE
wird implizit gewährt. -
Wenn ein Benutzer
SELECT
nur für eine Teilmenge von Spalten für eine Tabelle hat (partialSELECT
), ist der Benutzer darauf beschränkt, nur diese Spalten zu sehen. -
Sie können nicht
DESCRIBE
einem Benutzer gewähren, der Teilauswahl für eine Tabelle hat. Umgekehrt können Sie keine Spaltenein- oder Ausschlusslisten für Tabellen angeben, denen gewährtDESCRIBE
wird.
Im folgenden Beispiel wird dem Benutzer die -DESCRIBE
Berechtigung datalake_user1
auf dem Tabellenressourcenlink inventory-link
in der Datenbank retail
im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
DROP
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
DROP |
DATABASE |
glue:DeleteDatabase |
DROP |
TABLE |
glue:DeleteTable
|
DROP |
LF-Tag |
lakeformation:DeleteLFTag
|
DROP |
Link zu Datenbankressourcen Tabellenressourcen-Link |
|
Ein Prinzipal mit dieser Berechtigung kann einen Datenbank-, Tabellen- oder Ressourcenlink im Data Catalog löschen. Sie können DROP in einer Datenbank nicht einem externen Konto oder einer externen Organisation gewähren.
Warnung
Durch das Löschen einer Datenbank werden alle Tabellen in der Datenbank gelöscht.
Im folgenden Beispiel wird dem Benutzer in datalake_user1
der Datenbank retail
im AWS Konto 1111-2222-3333 die DROP
Berechtigung erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'
Das folgende Beispiel gewährt DROP
dem Benutzer datalake_user1
in der Tabelle inventory
in der Datenbank retail
.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Das folgende Beispiel gewährt DROP
dem Benutzer datalake_user1
auf dem Tabellenressourcenlink inventory-link
in der Datenbank retail
.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
INSERT
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
INSERT |
TABLE |
(Wenn der Standort registriert ist, sind keine zusätzlichen IAM-Berechtigungen erforderlich.) |
Ein Prinzipal mit dieser Berechtigung kann zugrunde liegende Daten an dem in der Tabelle angegebenen Amazon S3-Speicherort einfügen, aktualisieren und lesen. Der Prinzipal kann die Tabelle auch in der Lake-Formation-Konsole anzeigen und Informationen über die Tabelle mit der AWS Glue API abrufen.
Im folgenden Beispiel wird dem Benutzer die datalake_user1
-INSERT
Berechtigung für die Tabelle inventory
in der Datenbank retail
im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "INSERT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Diese Berechtigung gilt nur für Daten in Amazon S3 und nicht für Daten in anderen Datenspeichern wie Amazon RDS.
SELECT
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
SELECT |
|
(Wenn der Standort registriert ist, sind keine zusätzlichen IAM-Berechtigungen erforderlich.) |
Ein Prinzipal mit dieser Berechtigung kann eine Tabelle im Data Catalog anzeigen und die zugrunde liegenden Daten in Amazon S3 an dem in der Tabelle angegebenen Speicherort abfragen. Der Prinzipal kann die Tabelle in der Lake-Formation-Konsole anzeigen und Informationen über die Tabelle mit der AWS Glue API abrufen. Wenn beim Erteilen dieser Berechtigung eine Spaltenfilterung angewendet wurde, kann der Prinzipal die Metadaten nur für die eingeschlossenen Spalten anzeigen und Daten nur aus den eingeschlossenen Spalten abfragen.
Anmerkung
Es liegt in der Verantwortung des integrierten Analyseservices, die Spaltenfilterung bei der Verarbeitung einer Abfrage anzuwenden.
Im folgenden Beispiel wird dem Benutzer die datalake_user1
-SELECT
Berechtigung für die Tabelle inventory
in der Datenbank retail
im AWS Konto 1111-2222-3333 erteilt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Diese Berechtigung gilt nur für Daten in Amazon S3 und nicht für Daten in anderen Datenspeichern wie Amazon RDS.
Sie können bestimmte Spalten mit einer optionalen Einschlussliste oder einer Ausschlussliste filtern (den Zugriff darauf einschränken). Eine Einschlussliste gibt die Spalten an, auf die zugegriffen werden kann. Eine Ausschlussliste gibt die Spalten an, auf die nicht zugegriffen werden kann. Wenn keine Ein- oder Ausschlussliste vorhanden ist, sind alle Tabellenspalten zugänglich.
Die Ergebnisse von geben nur die Spalten glue:GetTable
zurück, für deren Anzeige der Aufrufer berechtigt ist. Integrierte Services wie Amazon Athena und Amazon Redshift berücksichtigen die Ein- und Ausschlusslisten von Spalten.
Im folgenden Beispiel SELECT
wird dem Benutzer in datalake_user1
der Tabelle inventory
mithilfe einer Einschlussliste gewährt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnNames": ["prodcode","location","period","withdrawals"]}}'
Im nächsten Beispiel SELECT
wird die inventory
Tabelle mithilfe einer Ausschlussliste gewährt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnWildcard": {"ExcludedColumnNames": ["intkey", "prodcode"]}}}'
Die folgenden Einschränkungen gelten für die SELECT
Berechtigung:
-
Wenn Sie gewähren
SELECT
, können Sie die Gewährungsoption nicht einschließen, wenn eine Spaltenfilterung angewendet wird. -
Sie können die Zugriffskontrolle für Spalten, die Partitionsschlüssel sind, nicht einschränken.
-
Einem Prinzipal mit der -
SELECT
Berechtigung für eine Teilmenge von Spalten in einer Tabelle kann die -ALTER
, -DELETE
,DROP
- oder -INSERT
Berechtigung für diese Tabelle nicht erteilt werden. Ebenso kann einem Prinzipal mit derALTER
-, -DELETE
,DROP
- oder -INSERT
Berechtigung für eine Tabelle die -SELECT
Berechtigung mit Spaltenfilterung nicht erteilt werden.
Die SELECT
Berechtigung wird immer auf der Seite Datenberechtigungen der Lake-Formation-Konsole als separate Zeile angezeigt. Die folgende Abbildung zeigt, dass den Benutzern datalake_user2
und datalake_user3
allen Spalten in der inventory
Tabelle gewährt SELECT
wird.
Super
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
Super |
DATABASE |
glue:*Database*
|
Super |
TABLE |
glue:*Table*, glue:*Partition* |
Diese Berechtigung ermöglicht es einem Prinzipal, jeden unterstützten Lake-Formation-Vorgang für die Datenbank oder Tabelle auszuführen. Sie können Super
einem externen Konto für eine Datenbank nicht gewähren.
Diese Berechtigung kann mit den anderen Lake-Formation-Berechtigungen zusammen existieren. Sie können beispielsweise die INSERT
Berechtigungen Super
, SELECT
und für eine Metadatentabelle erteilen. Der Prinzipal kann dann alle unterstützten Operationen für die Tabelle ausführen. Wenn Sie widerrufenSuper
, bleiben die INSERT
Berechtigungen SELECT
und erhalten und der Prinzipal kann nur Auswahl- und Einfügevorgänge ausführen.
Anstatt einem einzelnen Prinzipal Super
zu gewähren, können Sie es der Gruppe gewährenIAMAllowedPrincipals
. Die IAMAllowedPrincipals
Gruppe wird automatisch erstellt und umfasst alle IAM-Benutzer und -Rollen, denen der Zugriff auf Ihre Data-Catalog-Ressourcen durch Ihre IAM-Richtlinien erlaubt ist. Wenn IAMAllowedPrincipals
für eine Data-Catalog-Ressource gewährt Super
wird, wird der Zugriff auf die Ressource effektiv ausschließlich durch IAM-Richtlinien gesteuert.
Sie können die Super
Berechtigung haben, automatisch IAMAllowedPrincipals
für neue Katalogressourcen gewährt zu werden, indem Sie die Optionen auf der Seite Einstellungen der Lake-Formation-Konsole nutzen.
-
Um
IAMAllowedPrincipals
für alle neuen DatenbankenSuper
zu gewähren, wählen Sie Nur IAM-Zugriffskontrolle für neue Datenbanken verwenden aus. -
Um
IAMAllowedPrincipals
für alle neuen Tabellen in neuen DatenbankenSuper
zu gewähren, wählen Sie Nur IAM-Zugriffskontrolle für neue Tabellen in neuen Datenbanken verwenden aus.Anmerkung
Diese Option bewirkt, dass das Kontrollkästchen Nur IAM-Zugriffskontrolle für neue Tabellen in dieser Datenbank verwenden im Dialogfeld Datenbank erstellen standardmäßig aktiviert ist. Es macht nichts weiter. Dies ist das Kontrollkästchen im Dialogfeld Datenbank erstellen, das die Erteilung von
Super
für ermöglichtIAMAllowedPrincipals
.
Diese Einstellungsseitenoptionen sind standardmäßig aktiviert. Weitere Informationen finden Sie hier:
ASSOCIATE
Berechtigung | Gewährt für diese Ressource | Empfänger benötigt auch |
---|---|---|
ASSOCIATE |
LF-Tag |
|
Ein Prinzipal mit dieser Berechtigung für ein LF-Tag kann das LF-Tag einer Data-Catalog-Ressource zuweisen. ASSOCIATE
Implizite Erteilung von DESCRIBE
.
In diesem Beispiel wird dem Benutzer datalake_user1
die -ASSOCIATE
Berechtigung für das LF-Tag mit dem Schlüssel erteiltmodule
. Es gewährt Berechtigungen zum Anzeigen und Zuweisen aller Werte für diesen Schlüssel, wie durch das Sternchen (*) angezeigt.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'