Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Référence des autorisations de Lake Formation
Pour effectuer des AWS Lake Formation opérations, les directeurs ont besoin à la fois des autorisations Lake Formation et des autorisations AWS Identity and Access Management (IAM). Vous accordez généralement des autorisations IAM à l'aide de politiques de contrôle d'accès grossières, comme décrit dans. Vue d'ensemble des autorisations relatives à Lake Formation Vous pouvez accorder des autorisations à Lake Formation à l'aide de la console, de l'API ou du AWS Command Line Interface (AWS CLI).
Pour savoir comment accorder ou révoquer les autorisations de Lake Formation, consultez Octroi d'autorisations sur les ressources du catalogue de données etOctroi d'autorisations de localisation des données.
Note
Les exemples présentés dans cette section montrent comment accorder des autorisations aux principaux d'un même AWS compte. Pour des exemples de subventions entre comptes, voirPartage de données entre comptes dans Lake Formation.
Permissions de Lake Formation par type de ressource
Voici les autorisations valides de Lake Formation disponibles pour chaque type de ressource :
| Ressource | Autorisations |
|---|---|
Catalog |
ALL(Super), Super utilisateur |
ALTER |
|
CREATE_DATABASE |
|
DESCRIBE |
|
DROP |
|
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 |
Lake Formation accorde et AWS CLI révoque des commandes
Chaque description d'autorisation présentée dans cette section inclut des exemples d'octroi de l'autorisation à l'aide d'une AWS CLI commande. Voici les synopsis de la Lake Formation grant-permissions et revoke-permissions AWS CLI des commandes.
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>]
Pour une description détaillée de ces commandes, voir grant-permissions et revoke-permissions dans la référence des commandes.AWS CLI Cette section fournit des informations supplémentaires sur --principal cette option.
La valeur de l'--principaloption est l'une des suivantes :
-
Amazon Resource Name (ARN) pour un utilisateur ou un rôle AWS Identity and Access Management (IAM)
-
ARN pour un utilisateur ou un groupe qui s'authentifie via un fournisseur SAML, tel que Microsoft Active Directory Federation Service (AD FS)
-
ARN pour un utilisateur ou un groupe Amazon Quick Suite
-
Pour les autorisations entre comptes, un identifiant de AWS compte, un identifiant d'organisation ou un identifiant d'unité organisationnelle
-
Pour l'utilisateur ou le groupe IAM Identity Center, l'ARN de l'utilisateur ou du groupe IAM Identity Center.
Vous trouverez ci-dessous la syntaxe et des exemples pour tous les --principal types.
- Le principal est un utilisateur IAM
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<user-name>Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 - Le directeur est un rôle IAM
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name>Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole - Le principal est un utilisateur qui s'authentifie via un fournisseur SAML
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:user/<user-name>Exemples :
--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 - Le principal est un groupe s'authentifiant via un fournisseur SAML
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:group/<group-name>Exemples :
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group - Le principal est un utilisateur d'Amazon Quick Suite Enterprise Edition
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:user/<namespace>/<user-name>Note
Pour
<namespace>, vous devez spécifierdefault.Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1 - Principal est un groupe Amazon Quick Suite Enterprise Edition
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:group/<namespace>/<group-name>Note
Pour
<namespace>, vous devez spécifierdefault.Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists - Le principal est un AWS compte
-
Syntaxe :
--principal DataLakePrincipalIdentifier=<account-id>Exemple :
--principal DataLakePrincipalIdentifier=111122223333 - Le principal est une organisation
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:organization/<organization-id>Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl - Le directeur est une unité organisationnelle
-
Syntaxe :
--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:ou/<organization-id>/<organizational-unit-id>Exemple :
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij - Le principal est un utilisateur ou un groupe d'identités IAM Identity Center
-
Exemple : utilisateur
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/<UserID>Exemple : Groupe :
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/<GroupID> - Le principal est un groupe IAM -
IAMAllowedPrincipals -
Lake Formation attribue des
Superautorisations sur toutes les bases de données et tables du catalogue de données à un groupe appeléIAMAllowedPrincipalspar défaut. Si cette autorisation de groupe existe sur une base de données ou une table, tous les principaux de votre compte auront accès à la ressource par le biais des politiques principales IAM pour. AWS Glue Il assure une rétrocompatibilité lorsque vous commencez à utiliser les autorisations de Lake Formation pour sécuriser les ressources du catalogue de données qui étaient auparavant protégées par les politiques IAM pour AWS Glue.Lorsque vous utilisez Lake Formation pour gérer les autorisations pour les ressources de votre catalogue de données, vous devez d'abord révoquer l'
IAMAllowedPrincipalsautorisation sur les ressources ou activer les principes et les ressources en mode d'accès hybride pour que les autorisations de Lake Formation fonctionnent.Exemple :
--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals - Le principal est un groupe IAM -
ALLIAMPrincipals -
Lorsque vous autorisez un
ALLIAMPrincipalsgroupe sur une ressource de catalogue de données, chaque principal du compte a accès à la ressource de catalogue de données à l'aide des autorisations Lake Formation et des autorisations IAM.Exemple :
--principal DataLakePrincipalIdentifier=123456789012:IAMPrincipals
Permissions de Lake Formation
Cette section contient les autorisations de Lake Formation disponibles que vous pouvez accorder aux directeurs.
ALTER
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
ALTER |
DATABASE |
glue:UpdateDatabase
|
ALTER |
TABLE |
glue:UpdateTable |
ALTER |
LF-Tag |
lakeformation:UpdateLFTag |
Un directeur disposant de cette autorisation peut modifier les métadonnées d'une base de données ou d'une table dans le catalogue de données. Pour les tables, vous pouvez modifier le schéma des colonnes et ajouter des paramètres de colonne. Vous ne pouvez pas modifier les colonnes des données sous-jacentes vers lesquelles pointe une table de métadonnées.
Si la propriété modifiée est un emplacement enregistré auprès d'Amazon Simple Storage Service (Amazon S3), le principal doit disposer des autorisations de localisation des données sur le nouvel emplacement.
L'exemple suivant accorde l'ALTERautorisation à l'utilisateur datalake_user1 sur la base de données retail dans le AWS compte 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'
L'exemple suivant accorde ALTER à l'utilisateur le droit d'datalake_user1accéder à la table inventory de la base de donnéesretail.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
CREATE_DATABASE
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
CREATE_DATABASE |
Catalogue de données | glue:CreateDatabase |
Un directeur disposant de cette autorisation peut créer une base de données de métadonnées ou un lien de ressource dans le catalogue de données. Le principal peut également créer des tables dans la base de données.
L'exemple suivant accorde une autorisation CREATE_DATABASE à l'utilisateur datalake_user1 du AWS compte 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'
Lorsqu'un principal crée une base de données dans le catalogue de données, aucune autorisation sur les données sous-jacentes n'est accordée. Les autorisations de métadonnées supplémentaires suivantes sont accordées (ainsi que la possibilité d'accorder ces autorisations à d'autres personnes) :
-
CREATE_TABLEdans la base de données -
Base de données
ALTER -
Base de données
DROP
Lors de la création d'une base de données, le principal peut éventuellement spécifier un emplacement Amazon S3. Selon que le principal dispose ou non d'autorisations de localisation des données, celles-ci CREATE_DATABASE peuvent ne pas être suffisantes pour créer des bases de données dans tous les cas. Il est important de garder à l'esprit les trois cas suivants.
| Créer un cas d'utilisation de base de données | Autorisations nécessaires |
|---|---|
| La propriété de localisation n'est pas spécifiée. | CREATE_DATABASEest suffisant. |
| La propriété de localisation est spécifiée, et l'emplacement n'est pas géré par Lake Formation (il n'est pas enregistré). | CREATE_DATABASEest suffisant. |
| La propriété de localisation est spécifiée, et l'emplacement est géré par Lake Formation (est enregistré). | CREATE_DATABASEest obligatoire, ainsi que les autorisations de localisation des données à l'emplacement spécifié. |
CREATE_TABLE
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
CREATE_TABLE |
DATABASE |
glue:CreateTable
|
Un directeur disposant de cette autorisation peut créer une table de métadonnées ou un lien de ressource dans le catalogue de données de la base de données spécifiée.
L'exemple suivant accorde à l'utilisateur l'datalake_user1autorisation de créer des tables dans la retail base de données sous le AWS compte 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
Lorsqu'un directeur crée une table dans le catalogue de données, toutes les autorisations de Lake Formation sur la table sont accordées au principal, avec la possibilité d'accorder ces autorisations à d'autres personnes.
Subventions entre comptes
Si un compte propriétaire de base de données accorde une autorisation CREATE_TABLE à un compte destinataire et qu'un utilisateur du compte destinataire crée avec succès une table dans la base de données du compte propriétaire, les règles suivantes s'appliquent :
-
L'utilisateur et les administrateurs du lac de données du compte destinataire disposent de toutes les autorisations relatives à Lake Formation. Ils peuvent accorder des autorisations sur la table aux autres principaux de leur compte. Ils ne peuvent pas accorder d'autorisations aux principaux sur le compte du propriétaire ou sur tout autre compte.
-
Les administrateurs du lac de données du compte propriétaire peuvent accorder des autorisations sur la table aux autres principaux de leur compte.
Autorisations de localisation des données
Lorsque vous tentez de créer une table pointant vers un emplacement Amazon S3, selon que vous disposez ou non des autorisations de localisation des données, ces CREATE_TABLE autorisations peuvent ne pas être suffisantes pour créer une table. Il est important de garder à l'esprit les trois cas suivants.
| Création d'un cas d'utilisation d'une table | Autorisations nécessaires |
|---|---|
| L'emplacement spécifié n'est pas géré par Lake Formation (il n'est pas enregistré). | CREATE_TABLEest suffisant. |
| L'emplacement spécifié est géré par Lake Formation (il est enregistré), et la base de données qui le contient ne possède aucune propriété de localisation ou possède une propriété de localisation qui n'est pas un préfixe Amazon S3 de l'emplacement de la table. | CREATE_TABLEest obligatoire, ainsi que les autorisations de localisation des données à l'emplacement spécifié. |
| L'emplacement spécifié est géré par Lake Formation (il est enregistré), et la base de données contenant possède une propriété de localisation qui pointe vers un emplacement enregistré et qui est un préfixe Amazon S3 de l'emplacement de la table. | CREATE_TABLEest suffisant. |
DATA_LOCATION_ACCESS
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
DATA_LOCATION_ACCESS |
Emplacement Amazon S3 | (Autorisations Amazon S3 sur l'emplacement, qui doivent être spécifiées par le rôle utilisé pour enregistrer l'emplacement.) |
Il s'agit de la seule autorisation de localisation des données. Un principal disposant de cette autorisation peut créer une base de données ou une table de métadonnées pointant vers l'emplacement Amazon S3 spécifié. L'emplacement doit être enregistré. Un directeur qui dispose d'autorisations de localisation des données sur un emplacement possède également des autorisations de localisation sur les emplacements des enfants.
L'exemple suivant accorde des autorisations de localisation des données s3://products/retail à l'utilisateur du AWS
compte datalake_user1 1111-2222-3333.
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_ACCESSn'est pas nécessaire pour interroger ou mettre à jour les données sous-jacentes. Cette autorisation s'applique uniquement à la création de ressources de catalogue de données.
Pour plus d'informations sur les autorisations de localisation des données, consultezUnderlying data access control.
DELETE
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
DELETE |
TABLE |
(Aucune autorisation IAM supplémentaire n'est requise si l'emplacement est enregistré.) |
Un principal disposant de cette autorisation peut insérer, mettre à jour et lire les données sous-jacentes à l'emplacement Amazon S3 indiqué dans le tableau. Le directeur peut également consulter le tableau sur la console Lake Formation et récupérer des informations sur le tableau à l'aide de l'AWS GlueAPI.
L'exemple suivant accorde l'DELETEautorisation à l'utilisateur datalake_user1 sur la table de la base de données inventory dans le AWS compte retail 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DELETE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Cette autorisation s'applique uniquement aux données d'Amazon S3, et non aux données d'autres magasins de données tels qu'Amazon Relational Database Service (Amazon RDS).
DESCRIBE
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
DESCRIBE |
Lien vers les ressources du tableau Lien vers les ressources de la base |
|
DESCRIBE |
DATABASE |
glue:GetDatabase |
DESCRIBE |
TABLE |
glue:GetTable |
DESCRIBE |
LF-Tag |
|
Un principal disposant de cette autorisation peut consulter la base de données, la table ou le lien de ressource spécifié. Aucune autre autorisation de catalogue de données n'est accordée implicitement, et aucune autorisation d'accès aux données n'est accordée implicitement. Les bases de données et les tables apparaissent dans les éditeurs de requêtes des services intégrés, mais aucune requête ne peut être effectuée à leur encontre à moins que d'autres autorisations de Lake Formation (par exemple,SELECT) ne soient accordées.
Par exemple, un utilisateur qui possède une DESCRIBE base de données peut voir la base de données et toutes les métadonnées de la base de données (description, emplacement, etc.). Toutefois, l'utilisateur ne peut pas savoir quelles tables contient la base de données et ne peut pas supprimer, modifier ou créer des tables dans la base de données. De même, un utilisateur qui possède DESCRIBE une table peut voir la table et ses métadonnées (description, schéma, emplacement, etc.), mais ne peut pas supprimer, modifier ou exécuter des requêtes sur la table.
Voici quelques règles supplémentaires pour DESCRIBE :
-
Si un utilisateur dispose d'autres autorisations Lake Formation sur une base de données, une table ou un lien de ressource, elles
DESCRIBEsont implicitement accordées. -
Si un utilisateur ne dispose
SELECTque d'un sous-ensemble de colonnes pour un tableau (partielSELECT), il est limité à l'affichage de ces colonnes. -
Vous ne pouvez pas accorder d'autorisation
DESCRIBEà un utilisateur qui a effectué une sélection partielle sur une table. À l'inverse, vous ne pouvez pas spécifier de listes d'inclusion ou d'exclusion de colonnes pour lesDESCRIBEtables accordées sur.
L'exemple suivant accorde l'DESCRIBEautorisation à l'utilisateur datalake_user1 sur le lien de ressource de la table dans la base de données inventory-link dans le AWS compte retail 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
DROP
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
DROP |
DATABASE |
glue:DeleteDatabase |
DROP |
TABLE |
glue:DeleteTable
|
DROP |
LF-Tag |
lakeformation:DeleteLFTag
|
DROP |
Lien vers les ressources de la base Lien vers les ressources du tableau |
|
Un principal disposant de cette autorisation peut supprimer une base de données, une table ou un lien de ressource dans le catalogue de données. Vous ne pouvez pas accorder l'autorisation DROP sur une base de données à un compte ou à une organisation externe.
Avertissement
La suppression d'une base de données entraîne la suppression de toutes les tables de la base de données.
L'exemple suivant accorde l'DROPautorisation à l'utilisateur datalake_user1 sur la base de données retail dans le AWS compte 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'
L'exemple suivant accorde des DROP autorisations à l'utilisateur datalake_user1 sur la table de inventory la base de donnéesretail.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
L'exemple suivant accorde DROP à l'utilisateur datalake_user1 sur la table un lien de ressource inventory-link dans la base de donnéesretail.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
INSERT
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
INSERT |
TABLE |
(Aucune autorisation IAM supplémentaire n'est requise si l'emplacement est enregistré.) |
Un principal disposant de cette autorisation peut insérer, mettre à jour et lire les données sous-jacentes à l'emplacement Amazon S3 indiqué dans le tableau. Le directeur peut également consulter le tableau dans la console Lake Formation et récupérer des informations sur le tableau à l'aide de l'AWS GlueAPI.
L'exemple suivant accorde l'INSERTautorisation à l'utilisateur datalake_user1 sur la table de la base de données inventory dans le AWS compte retail 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "INSERT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Cette autorisation s'applique uniquement aux données d'Amazon S3, et non aux données d'autres magasins de données tels qu'Amazon RDS.
SELECT
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
SELECT |
|
(Aucune autorisation IAM supplémentaire n'est requise si l'emplacement est enregistré.) |
Un directeur disposant de cette autorisation peut consulter une table dans le catalogue de données et interroger les données sous-jacentes dans Amazon S3 à l'emplacement spécifié par la table. Le directeur peut consulter le tableau dans la console Lake Formation et récupérer des informations sur le tableau à l'aide de l'AWS GlueAPI. Si le filtrage des colonnes a été appliqué lorsque cette autorisation a été accordée, le principal peut consulter les métadonnées uniquement pour les colonnes incluses et ne peut interroger les données qu'à partir des colonnes incluses.
Note
Il est de la responsabilité du service d'analyse intégré d'appliquer le filtrage des colonnes lors du traitement d'une requête.
L'exemple suivant accorde l'SELECTautorisation à l'utilisateur datalake_user1 sur la table de la base de données inventory dans le AWS compte retail 1111-2222-3333.
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
Cette autorisation s'applique uniquement aux données d'Amazon S3, et non aux données d'autres magasins de données tels qu'Amazon RDS.
Vous pouvez filtrer (restreindre l'accès à) des colonnes spécifiques à l'aide d'une liste d'inclusion ou d'exclusion facultative. Une liste d'inclusion indique les colonnes accessibles. Une liste d'exclusion indique les colonnes inaccessibles. En l'absence de liste d'inclusion ou d'exclusion, toutes les colonnes du tableau sont accessibles.
Les résultats de glue:GetTable renvoient uniquement les colonnes que l'appelant est autorisé à consulter. Les services intégrés tels qu'Amazon Athena et Amazon Redshift respectent les listes d'inclusion et d'exclusion des colonnes.
L'exemple suivant accorde une autorisation SELECT à l'utilisateur figurant datalake_user1 sur la table à inventory l'aide d'une liste d'inclusion.
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"]}}'
L'exemple suivant donne des autorisations SELECT sur la inventory table à l'aide d'une liste d'exclusion.
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"]}}}'
Les restrictions suivantes s'appliquent à l'SELECTautorisation :
-
Lors de l'octroi
SELECT, vous ne pouvez pas inclure l'option d'octroi si le filtrage des colonnes est appliqué. -
Vous ne pouvez pas restreindre le contrôle d'accès aux colonnes qui sont des clés de partition.
-
Un principal disposant de l'
SELECTautorisation sur un sous-ensemble de colonnes d'une table ne peut pas obtenir l'INSERTautorisationALTERDROP,DELETE, ou sur cette table. De même, un principal disposant de l'INSERTautorisationALTERDROPDELETE,, ou sur une table ne peut pasSELECTobtenir l'autorisation de filtrage des colonnes.
L'SELECTautorisation apparaît toujours sur la page Autorisations relatives aux données de la console Lake Formation sous forme de ligne séparée. L'image suivante montre que cela SELECT est accordé aux utilisateurs datalake_user2 et datalake_user3 sur toutes les colonnes du inventory tableau.
Super
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
Super |
DATABASE |
glue:*Database*
|
Super |
TABLE |
glue:*Table*, glue:*Partition* |
Cette autorisation permet au principal d'effectuer toutes les opérations de Lake Formation prises en charge sur la base de données ou la table. Vous ne pouvez pas accorder d'autorisation Super sur une base de données à un compte externe.
Cette autorisation peut coexister avec les autres autorisations de Lake Formation. Par exemple, vous pouvez accorder les INSERT autorisations SuperSELECT, et sur une table de métadonnées. Le principal peut ensuite effectuer toutes les opérations prises en charge sur la table. Lorsque vous révoquezSuper, les INSERT autorisations SELECT et sont conservées et le principal ne peut effectuer que des opérations de sélection et d'insertion.
Au lieu de l'octroyer Super à un directeur individuel, vous pouvez l'accorder au groupeIAMAllowedPrincipals. Le IAMAllowedPrincipals groupe est créé automatiquement et inclut tous les utilisateurs et rôles IAM autorisés à accéder aux ressources de votre catalogue de données par vos politiques IAM. Lorsqu'il Super est accordé IAMAllowedPrincipals pour une ressource de catalogue de données, l'accès à la ressource est effectivement contrôlé uniquement par les politiques IAM.
Vous pouvez Super obtenir l'autorisation d'accéder automatiquement IAMAllowedPrincipals aux nouvelles ressources du catalogue en tirant parti des options de la page Paramètres de la console Lake Formation.
-
Pour l'accorder
SuperàIAMAllowedPrincipalstoutes les nouvelles bases de données, sélectionnez Utiliser uniquement le contrôle d'accès IAM pour les nouvelles bases de données. -
IAMAllowedPrincipalsPour l'accorderSuperà toutes les nouvelles tables des nouvelles bases de données, sélectionnez Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables des nouvelles bases de données.Note
Cette option entraîne la sélection par défaut de la case Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données dans la boîte de dialogue Créer une base de données. Il ne fait rien de plus que cela. C'est la case à cocher de la boîte de dialogue Créer une base de données qui permet d'accorder
SuperàIAMAllowedPrincipals.
Ces options de la page Paramètres sont activées par défaut. Pour plus d’informations, consultez les ressources suivantes :
SUPER_USER
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
Super user |
Catalog |
glue:GetCatalog
|
Vous ne pouvez accorder l'Super userautorisation qu'à des entités spécifiques sur les catalogues du catalogue de données par défaut. Vous ne pouvez pas accorder d'Super userautorisation sur le catalogue par défaut ou sur d'autres types de ressources tels que les bases de données et les tables, ou aux principaux de comptes externes. L'Super userautorisation d'autorisation permet au principal d'effectuer toutes les opérations de Lake Formation prises en charge sur les bases de données et les tables du catalogue accordé.
Avec cette Super user autorisation, le principal (bénéficiaire) est en mesure d'effectuer les actions suivantes sur les ressources (catalogues, bases de données et tables) du catalogue :
-
CREATE_DATABASE,DESCRIBEautorisations sur le catalogue. -
DROP,ALTER,CREATE_TABLE, autorisationsDESCRIBE(effectivementSUPER) sur toutes les bases de données du catalogue. -
DROP,ALTER,DESCRIBE,,SELECTINSERT,DELETE(effectivementSUPER) autorisations sur toutes les tables de toutes les bases de données du catalogue. -
Allautorisations (en fait SUPER) sur les catalogues du catalogue. -
Autorisations accordables (possibilité d'accorder ces autorisations à d'autres principaux) sur tous les catalogues, bases de données et tables du catalogue.
Avec l'Super userautorisation sur une ressource du catalogue, le bénéficiaire n'est pas autorisé à effectuer ou à déléguer ALTER des DROP actions sur le catalogue.
ASSOCIATE
| Autorisations | Accordé sur cette ressource | Le bénéficiaire a également besoin |
|---|---|---|
ASSOCIATE |
LF-Tag |
|
Un directeur disposant de cette autorisation sur un tag LF peut attribuer le tag LF à une ressource de catalogue de données. Accorder ASSOCIATE implicitement des subventionsDESCRIBE.
Cet exemple accorde à l'utilisateur datalake_user1 l'ASSOCIATEautorisation d'utiliser le tag LF avec la clé. module Il autorise l'affichage et l'attribution de toutes les valeurs pour cette clé, comme indiqué par l'astérisque (*).
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'