

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.

# Gestion des accès pour S3 Tables
<a name="s3-tables-setting-up"></a>

Dans S3 Tables, les ressources incluent les compartiments de tables et les tables qu’ils contiennent. L'utilisateur root du compte Compte AWS qui a créé la ressource (le propriétaire de la ressource) et les utilisateurs Gestion des identités et des accès AWS (IAM) de ce compte qui disposent des autorisations nécessaires peuvent accéder à une ressource qu'ils ont créée. Le propriétaire de la ressource spécifie les autres personnes qui peuvent accéder à la ressource et les actions qu’elles sont autorisées à effectuer sur la ressource. Amazon S3 dispose de différents outils de gestion des accès que vous pouvez utiliser pour accorder à d’autres personnes l’accès à vos ressources S3. Si vous avez intégré vos tables à AWS Lake Formation, vous pouvez également gérer un accès précis à vos tables et à vos espaces de noms. Les rubriques suivantes fournissent une vue d’ensemble des ressources, des actions IAM et des clés de condition pour S3 Tables. Elles fournissent également des exemples de politiques basées sur les ressources et basées sur l’identité pour S3 Tables.

**Topics**
+ [Ressources](#s3-tables-resources)
+ [Actions pour S3 Tables](#s3-tables-actions)
+ [Clés de condition pour S3 Tables](#s3-tables-conditionkeys)
+ [Politiques basées sur l’identité IAM pour S3 Tables](s3-tables-identity-based-policies.md)
+ [Politiques basées sur les ressources pour S3 Tables](s3-tables-resource-based-policies.md)
+ [AWS politiques gérées pour les tables S3](s3-tables-security-iam-awsmanpol.md)
+ [Octroi d’un accès par le biais de la sémantique SQL](s3-tables-sql.md)
+ [Gestion de l’accès à une table ou à une base de données avec Lake Formation](grant-permissions-tables.md)

## Ressources
<a name="s3-tables-resources"></a>

Les ressources S3 Tables incluent des compartiments de tables et les tables qu’ils contiennent.
+ Compartiments de tables : les compartiments de tables sont spécialement conçus pour les tables et offrent un plus grand nombre de transactions par seconde (TPS) et un meilleur débit de requêtes par rapport aux tables autogérées dans des compartiments S3 à usage général. Les compartiments de tables offrent les mêmes caractéristiques de durabilité, de disponibilité, de capacité de mise à l’échelle et de performance que les compartiments Amazon S3 à usage général. 
+ Tables : les tables figurant dans vos compartiments de tables sont stockées au format Apache Iceberg. Vous pouvez interroger ces tables avec du code SQL standard dans des moteurs de requête qui prennent en charge Iceberg.

Amazon Resource Names (ARNs) pour les tables et les compartiments de tables contient l'`s3tables`espace de noms Région AWS, l' Compte AWS ID et le nom du compartiment. Pour accéder à vos tables et compartiments de tables et y effectuer des actions, vous devez utiliser les formats d’ARN suivants :
+ Format d’ARN des tables :

  `arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID`

## Actions pour S3 Tables
<a name="s3-tables-actions"></a>

Dans une politique basée sur l’identité ou sur les ressources, vous définissez quelles actions S3 Tables sont autorisées ou refusées pour des principaux IAM spécifiques. Les actions de tables correspondent à des opérations d’API au niveau du compartiment et de la table. Toutes les actions font partie d’un espace de noms IAM unique : `s3tables`.

Lorsque vous utilisez une action dans une politique, vous autorisez ou refusez généralement l’accès à l’opération d’API du même nom. Toutefois, dans certains cas, une seule action contrôle l’accès à plusieurs opérations d’API. Par exemple, les actions `s3tables:GetTableData` incluent des autorisations pour les opérations d’API `GetObject`, `ListParts` et `ListMultiparts`. 

Vous trouverez ci-dessous les actions prises en charge pour les compartiments de tables. Vous pouvez spécifier les actions suivantes dans l’élément `Action` d’une politique IAM ou d’une stratégie de ressource.


| Action | Description | Niveau d’accès | Accès intercomptes | 
| --- | --- | --- | --- | 
| s3tables:CreateTableBucket | Accorde l’autorisation de créer un nouveau compartiment | Write | Non | 
| s3tables:GetTableBucket | Accorde l’autorisation de récupérer l’ARN d’un compartiment de tables, le nom du compartiment de tables et sa date de création. | Write | Oui | 
| s3tables:ListTableBuckets | Accorde l’autorisation de répertorier tous les compartiments de tables du compte. | Read | Non | 
| s3tables:CreateNamespace | Accorde l’autorisation de créer un espace de noms dans un compartiment de tables | Write | Oui | 
| s3tables:GetNamespace | Accorde l’autorisation de récupérer les détails de l’espace de noms | Read | Oui | 
| s3tables:ListNamespaces | Accorde l’autorisation de répertorier tous les espaces de noms figurant dans le compartiment de tables | Read | Oui | 
| s3tables:DeleteNamespace | Accorde l’autorisation de supprimer un espace de noms dans un compartiment de tables | Write | Oui | 
| s3tables:DeleteTableBucket | Accorde l’autorisation de supprimer le compartiment  | Write | Oui  | 
| s3tables:PutTableBucketPolicy | Accorde l’autorisation d’ajouter ou de remplacer une politique de compartiment | Permissions Management | Non | 
| s3tables:GetTableBucketPolicy | Accorde l’autorisation de récupérer la stratégie de compartiment | Read | Non | 
| s3tables:DeleteTableBucketPolicy | Accorde l’autorisation de supprimer la politique de compartiment | Permissions Management | Non | 
| s3tables:GetTableBucketMaintenanceConfiguration | Accorde l’autorisation de récupérer la configuration de la maintenance d’un compartiment de table | Read | Oui  | 
| s3tables:PutTableBucketMaintenanceConfiguration | Accorde l’autorisation d’ajouter ou de remplacer la configuration de la maintenance d’un compartiment de tables | Write | Oui | 
| s3tables:PutTableBucketEncryption | Accorde l’autorisation d’ajouter ou de remplacer la configuration du chiffrement d’un compartiment de table | Write | Non | 
| s3tables:GetTableBucketEncryption | Accorde l’autorisation de récupérer ou de remplacer la configuration du chiffrement d’un compartiment de table | Read | Non | 
| s3tables:DeleteTableBucketEncryption | Accorde l’autorisation de supprimer ou de remplacer la configuration du chiffrement d’un compartiment de table | Write | Non | 

Les actions suivantes sont prises en charge pour les tables :


| Action | Description | Niveau d’accès | Accès intercomptes | 
| --- | --- | --- | --- | 
| s3tables:GetTableMaintenanceConfiguration | Accorde l’autorisation de récupérer la configuration de la maintenance d’une table | Read | Oui | 
| s3tables:PutTableMaintenanceConfiguration |  Accorde l’autorisation d’ajouter ou de remplacer la configuration de la maintenance d’une table | Write | Oui | 
| s3tables:PutTablePolicy | Accorde l’autorisation d’ajouter ou de remplacer une politique de table | Permissions Management | Non | 
| s3tables:GetTablePolicy | Accorde l’autorisation de récupérer la politique de table | Read | Non | 
| s3tables:DeleteTablePolicy | Accorde l’autorisation de supprimer la politique de table | Permissions management | Non | 
| s3tables:CreateTable | Accorde l’autorisation de créer une table dans un compartiment de tables | Write | Oui | 
| s3tables:GetTable | Accorde l’autorisation de récupérer les informations d’une table. | Read | Oui | 
| s3tables:GetTableMetadataLocation | Accorde l’autorisation de récupérer le pointeur racine de la table (fichier de métadonnées) | Read | Oui  | 
| s3tables:ListTables | Accorde l’autorisation de répertorier toutes les tables figurant dans un compartiment de tables | Read | Oui  | 
| s3tables:RenameTable | Accorde l’autorisation de modifier le nom d’une table | Write | Oui  | 
| s3tables:UpdateTableMetadataLocation | Accorde l’autorisation de mettre à jour le pointeur racine de la table (fichier de métadonnées) | Write | Oui  | 
| s3tables:GetTableData | Accorde l’autorisation de lire les métadonnées de la table et les objets de données stockés dans le compartiment de tables | Read | Oui | 
| s3tables:PutTableData | Accorde l’autorisation d’écrire les métadonnées de la table et les objets de données stockés dans le compartiment de tables | Write | Oui | 
| s3tables:GetTableEncryption  | Accorde l’autorisation de récupérer les paramètres de chiffrement d’une table | Write | Non | 
| s3tables:PutTableEncryption  | Accorde l’autorisation d’ajouter du chiffrement à une table | Write | Non | 
| s3tables:DeleteTable | Accorde l’autorisation de supprimer une table d’un compartiment de table | Write | Oui | 

Pour effectuer des actions de lecture et d’écriture au niveau des tables, S3 Tables prend en charge les opérations d’API Amazon S3 telles que `GetObject` et `PutObject`. Le tableau suivant fournit la liste des actions au niveau des objets. Lorsque vous accordez des autorisations de lecture et d’écriture à vos tables, vous utilisez les actions suivantes.


| Action | Objet S3 APIs | 
| --- | --- | 
| s3tables:GetTableData | GetObject, ListParts, HeadObject | 
| s3tables:PutTableData | PutObject, CreateMultipartUpload, CompleteMultipartUpload,  UploadPart, AbortMultipartUpload | 

Par exemple, si un utilisateur dispose d’autorisations `GetTableData`, il peut lire tous les fichiers associés à la table, tels que son fichier de métadonnées, son manifeste, ses fichiers de liste manifeste et ses fichiers de données Parquet.

## Clés de condition pour S3 Tables
<a name="s3-tables-conditionkeys"></a>

S3 Tables prend en charge les [clés de contexte de condition globales AWS](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html).

S3 Tables définit également les clés de condition suivantes, que vous pouvez utiliser dans une stratégie d’accès.


| Clé de condition | Description | Type | 
| --- | --- | --- | 
|  s3tables:tableName |  Filtre l’accès en fonction du nom des tables dans le compartiment de tables. Vous pouvez utiliser la clé de condition `s3tables:tableName` pour écrire des politiques IAM ou des stratégies de compartiments de table qui limitent l’accès des utilisateurs ou des applications uniquement aux tables remplissant cette condition de nom.   Il est important de noter que si vous utilisez la clé de condition `s3tables:tableName` pour contrôler l’accès, les modifications du nom des tables peuvent avoir un impact sur ces politiques. Exemple de valeur : "s3tables:tableName":"department\$1"  | String | 
|  s3tables:namespace |  Filtre l’accès en fonction des espaces de noms créés dans le compartiment de tables.  Vous pouvez utiliser la clé de condition `s3tables:namespace` pour écrire des politiques IAM, de table ou de compartiment de tables qui limitent l’accès des utilisateurs ou des applications aux tables figurant dans un espace de noms spécifique. *Exemple de valeur :* `"s3tables:namespace":"hr" `  Il est important de noter que si vous utilisez la clé de condition `s3tables:namespace` pour contrôler l’accès, les modifications apportées dans les espaces de noms peuvent avoir un impact sur ces politiques.  | String | 
|  s3tables:SSEAlgorithm |  Filtre l’accès par l’algorithme de chiffrement côté serveur utilisé pour chiffrer une table.  Vous pouvez utiliser la clé de condition `s3tables:SSEAlgorithm` pour écrire des politiques IAM, de table ou des stratégies de compartiment de table qui limitent l’accès des utilisateurs ou des applications aux tables chiffrées avec un certain type de chiffrement. *Exemple de valeur :* `"s3tables:SSEAlgorithm":"aws:kms" `  Il est important de noter que si vous utilisez la clé de condition `s3tables:SSEAlgorithm` pour contrôler l’accès, les modifications apportées dans les espaces de noms peuvent avoir un impact sur ces politiques.  | String | 
|  s3tables:KMSKeyArn |  Filtre l'accès par la AWS KMS clé ARN pour la clé utilisée pour chiffrer une table Vous pouvez utiliser la clé de condition `s3tables:KMSKeyArn` pour écrire des politiques IAM, de table ou des stratégies de compartiment de table qui limitent l’accès des utilisateurs ou des applications aux tables chiffrées avec un certain type de clé KMS.  Il est important de noter que si vous utilisez la clé de condition `s3tables:KMSKeyArn` pour contrôler l’accès, la modification de la clé KMS peut avoir un impact sur ces politiques.  | ARN | 

# Politiques basées sur l’identité IAM pour S3 Tables
<a name="s3-tables-identity-based-policies"></a>

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ni modifier les tables et les compartiments de tables. Ils ne peuvent pas non plus effectuer de tâches à l'aide de la console s3 AWS Command Line Interface (AWS CLI) ou d'Amazon S3 REST APIs. Pour créer des compartiments de tables et des tables et y accéder, un administrateur Gestion des identités et des accès AWS (IAM) doit accorder les autorisations nécessaires au rôle ou aux utilisateurs IAM. Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques dans l’onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dans le *Guide de l’utilisateur IAM*. 

La rubrique suivante présente des exemples de politiques basées sur l’identité IAM. Pour utiliser les exemples de politiques suivants, remplacez-les *user input placeholders* par vos propres informations.

**Topics**
+ [Exemple 1 : autoriser l’accès pour créer et utiliser des compartiments de tables](#example-1-s3-tables-identity-based-policies)
+ [Exemple 2 : autoriser l’accès pour créer et utiliser des tables dans un compartiment de tables](#example-2-s3-tables-identity-based-policies)

## Exemple 1 : autoriser l’accès pour créer et utiliser des compartiments de tables
<a name="example-1-s3-tables-identity-based-policies"></a>

**.**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:CreateTableBucket",
                "s3tables:PutTableBucketPolicy",
                "s3tables:GetTableBucketPolicy",
                "s3tables:ListTableBuckets",
                "s3tables:GetTableBucket"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## Exemple 2 : autoriser l’accès pour créer et utiliser des tables dans un compartiment de tables
<a name="example-2-s3-tables-identity-based-policies"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTableBucket",
                "s3tables:ListTables",
                "s3tables:CreateTable",
                "s3tables:PutTableData",
                "s3tables:GetTableData",
                "s3tables:GetTable",
                "s3tables:GetTableMetadataLocation",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:GetNamespace",
                "s3tables:CreateNamespace",
                "s3tables:ListNamespaces"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/*"
            ]
        }
    ]
}
```

------

# Politiques basées sur les ressources pour S3 Tables
<a name="s3-tables-resource-based-policies"></a>

S3 Tables fournit des politiques basées sur les ressources pour gérer l’accès aux tables et compartiments de tables : politiques de compartiments de tables et politiques de tables. Vous pouvez utiliser une politique de compartiment de tables pour accorder des autorisations d’accès à l’API au niveau du compartiment de tables, de l’espace de noms ou de la table. Les autorisations attachées au compartiment de tables peuvent s’appliquer à toutes les tables du compartiment ou à des tables spécifiques du compartiment, selon la définition de la politique. Vous pouvez utiliser une politique de tables pour accorder des autorisations au niveau de la table. 

Lorsque le service S3 Tables reçoit une demande, il commence par vérifier que le demandeur possède les autorisations nécessaires. Il évalue toutes les stratégies d’accès pertinentes, les politiques utilisateur et les politiques basées sur les ressources pour décider d’autoriser ou non la demande (politique utilisateur IAM, politique de rôle IAM, politique de compartiment de tables et politique de tables). Par exemple, si une politique de compartiment de tables accorde à un utilisateur les autorisations d’effectuer toutes les actions sur les tables du compartiment (y compris `DeleteTable`), mais qu’une table individuelle possède une politique de tables qui refuse l’action `DeleteTable` pour tous les utilisateurs, l’utilisateur ne peut pas supprimer la table.

La rubrique suivante contient des exemples de politiques de tables et de compartiments de tables. Pour utiliser ces politiques, remplacez les *user input placeholders* par vos propres informations.

**Note**  
Chaque politique qui accorde des autorisations pour modifier des tables doit inclure des autorisations pour `GetTableMetadataLocation` afin d’accéder au fichier racine de la table. Pour de plus amples informations, veuillez consulter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html).
Chaque fois que vous effectuez une activité d’écriture ou de suppression sur votre table, incluez les autorisations `UpdateTableMetadataLocation` dans votre stratégie d’accès.
Nous recommandons d’utiliser une politique de compartiment de tables pour régir l’accès aux actions au niveau du compartiment et une politique de tables pour régir l’accès aux actions au niveau de la table. Dans les cas où vous souhaitez définir le même ensemble d’autorisations sur plusieurs tables, nous vous recommandons d’utiliser une politique de compartiment de tables.

**Topics**
+ [Exemple 1 : politique de compartiment de tables autorisant l’accès à `PutBucketMaintenanceConfiguration` pour les compartiments d’un compte](#table-bucket-policy-1)
+ [Exemple 2 : stratégie de compartiment de table autorisant l’accès en lecture (SELECT) aux tables stockées dans l’espace de noms `hr`](#table-bucket-policy-2)
+ [Exemple 3 : politique de tables autorisant l’utilisateur à supprimer une table](#table-bucket-policy-3)

## Exemple 1 : politique de compartiment de tables autorisant l’accès à `PutBucketMaintenanceConfiguration` pour les compartiments d’un compte
<a name="table-bucket-policy-1"></a>

L’exemple de politique de compartiment de tables suivant autorise le `data steward` IAM à supprimer les objets non référencés pour tous les compartiments d’un compte en autorisant l’accès à `PutBucketMaintenanceConfiguration`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:PutTableBucketMaintenanceConfiguration"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## Exemple 2 : stratégie de compartiment de table autorisant l’accès en lecture (SELECT) aux tables stockées dans l’espace de noms `hr`
<a name="table-bucket-policy-2"></a>

L’exemple de stratégie de compartiment de table suivant autorise Jane, une utilisatrice dotée de l’ID de Compte AWS `123456789012` à lire les tables faisant partie de l’espace de noms `hr` d’un compartiment de table.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Jane"
            },
            "Action": [
                "s3tables:GetTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/*",
            "Condition": {
                "StringLike": {
                    "s3tables:namespace": "hr"
                }
            }
        }
    ]
}
```

------

## Exemple 3 : politique de tables autorisant l’utilisateur à supprimer une table
<a name="table-bucket-policy-3"></a>

L’exemple suivant de politique de tables autorise le rôle IAM `data steward` à supprimer une table.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "DeleteTable",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:DeleteTable",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:PutTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/tableUUID"
        }
    ]
}
```

------

# AWS politiques gérées pour les tables S3
<a name="s3-tables-security-iam-awsmanpol"></a>

Une politique AWS gérée est une politique autonome créée et administrée par AWS. AWS les politiques gérées sont conçues pour fournir des autorisations pour de nombreux cas d'utilisation courants afin que vous puissiez commencer à attribuer des autorisations aux utilisateurs, aux groupes et aux rôles.

N'oubliez pas que les politiques AWS gérées peuvent ne pas accorder d'autorisations de moindre privilège pour vos cas d'utilisation spécifiques, car elles sont accessibles à tous les AWS clients. Nous vous recommandons de réduire encore les autorisations en définissant des [politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) qui sont propres à vos cas d’utilisation.

Vous ne pouvez pas modifier les autorisations définies dans les politiques AWS gérées. Si les autorisations définies dans une politique AWS gérée sont AWS mises à jour, la mise à jour affecte toutes les identités principales (utilisateurs, groupes et rôles) auxquelles la politique est attachée. AWS est le plus susceptible de mettre à jour une politique AWS gérée lorsqu'une nouvelle politique Service AWS est lancée ou lorsque de nouvelles opérations d'API sont disponibles pour les services existants.

Pour plus d’informations, consultez [Politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *Guide de l’utilisateur IAM*.

## AWS politique gérée : AmazonS3TablesFullAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3tablesfullaccess"></a>

Vous pouvez associer la politique `AmazonS3TablesFullAccess` à vos identités IAM. Cette politique accorde des autorisations qui permettent un accès complet à Amazon S3 Tables. Pour plus d’informations sur cette politique, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html).

## AWS politique gérée : AmazonS3TablesReadOnlyAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3readonlyaccess"></a>

Vous pouvez associer la politique `AmazonS3TablesReadOnlyAccess` à vos identités IAM. Cette politique accorde des autorisations qui permettent d’accéder en lecture seule à Amazon S3 Tables. Pour plus d’informations sur cette politique, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html).

## AWS politique gérée : AmazonS3TablesLakeFormationServiceRole
<a name="s3-tables-security-iam-awsmanpol-amazons3tableslakeformationservicerole"></a>

Vous pouvez associer la politique `AmazonS3TablesLakeFormationServiceRole` à vos identités IAM. Cette politique accorde des autorisations permettant au rôle AWS Lake Formation de service d'accéder aux tables S3. AWS KMS les autorisations sont utilisées pour permettre à Lake Formation d'accéder aux tables chiffrées. Pour plus d’informations sur cette politique, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html).

## Amazon S3 Tables : mises à jour des politiques AWS gérées
<a name="s3-tables-security-iam-awsmanpol-updates"></a>

Consultez les détails des mises à jour des politiques AWS gérées pour Amazon S3 Tables depuis que S3 Tables a commencé à suivre ces modifications.


| Modifier | Description | Date | 
| --- | --- | --- | 
|  Tables Amazon S3 mises à jour`AmazonS3TablesFullAccess`.  |  S3 Tables a mis à jour la politique AWS-managed appelée`AmazonS3TablesFullAccess`. Cette mise à jour autorise le transfert d'un rôle au service de réplication de tables S3.  |  2 décembre 2025  | 
|  Amazon S3 Tables a ajouté `AmazonS3TablesLakeFormationServiceRole`.  |  S3 Tables a ajouté une nouvelle politique AWS gérée appelée`AmazonS3TablesLakeFormationServiceRole`. Cette politique accorde des autorisations qui permettent au rôle de service Lake Formation d’accéder à S3 Tables.   | 19 mai 2025 | 
|  Amazon S3 Tables a ajouté `AmazonS3TablesFullAccess`.  |  S3 Tables a ajouté une nouvelle politique AWS gérée appelée`AmazonS3TablesFullAccess`. Cette politique accorde des autorisations qui permettent un accès complet à Amazon S3 Tables.   | 3 décembre 2024 | 
|  Amazon S3 Tables a ajouté `AmazonS3TablesReadOnlyAccess`.  |  S3 Tables a ajouté une nouvelle politique AWS gérée appelée`AmazonS3TablesReadOnlyAccess`. Cette politique accorde des autorisations qui permettent d’accéder en lecture seule à Amazon S3 Tables.   | 3 décembre 2024 | 
|  Amazon S3 Tables a commencé à assurer le suivi des modifications.  |  Amazon S3 Tables a commencé à suivre les modifications apportées AWS à ses politiques gérées.  | 3 décembre 2024 | 

# Octroi d’un accès par le biais de la sémantique SQL
<a name="s3-tables-sql"></a>

Vous pouvez accorder des autorisations aux tables en utilisant la sémantique SQL dans les politiques relatives aux tables et les stratégies de compartiment de table. Voici des exemples de sémantique SQL que vous pouvez utiliser : `CREATE`, `INSERT`, `DELETE`, `UPDATE` et `ALTER`. La table suivante fournit la liste des actions d’API associées aux sémantiques SQL que vous pouvez utiliser comme référence pour accorder des autorisations à vos utilisateurs.

S3 Tables prend partiellement en charge les autorisations utilisant la sémantique SQL. Par exemple, l’API `CreateTable` crée uniquement une table vide dans le compartiment de tables. Vous avez besoin d’autorisations supplémentaires, telles que `UpdateTableMetadata`, `PutTableData` et `GetTableMetadataLocation`, pour pouvoir définir le schéma de table. Ces autorisations supplémentaires signifient également que vous autorisez également l’utilisateur à insérer des lignes dans la table. Si vous souhaitez régir l’accès uniquement sur la base de la sémantique SQL, nous vous recommandons d’utiliser [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) ou une solution tierce intégrée avec S3 Tables.


| Activité au niveau des tables | Actions IAM | 
| --- | --- | 
| SELECT | s3tables:GetTableData, s3tables:GetTableMetadataLocation | 
| CREATE | s3tables:CreateTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation,  | 
| INSERT | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| UPDATE | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| ALTER,RENAME | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation, s3tables:RenameTable  | 
| DELETE,DROP | s3tables:DeleteTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation  | 

**Note**  
L’autorisation `s3tables:DeleteTable` est requise pour supprimer une table d’un compartiment de table. Cette autorisation vous permet de supprimer définitivement une table ainsi que toutes les données et métadonnées associées. Utilisez cette autorisation avec précaution, car l’opération de suppression ne peut pas être annulée.

# Gestion de l’accès à une table ou à une base de données avec Lake Formation
<a name="grant-permissions-tables"></a>

Si vos compartiments de tables sont intégrés au service AWS d'analyse à l'aide de Lake Formation, Lake Formation gère l'accès à vos tables et exige que chaque principal IAM (utilisateur ou rôle) soit autorisé à effectuer les actions correspondantes. Lake Formation utilise son propre modèle d’autorisations (autorisations pour Lake Formation) qui permet un contrôle d’accès précis aux ressources du catalogue de données. 

Pour plus d’informations, consultez [Octroi d’autorisations Lake Formation](https://docs.aws.amazon.com//lake-formation/latest/dg/lf-permissions-overview.html) du *Guide du développeur AWS Lake Formation *.

Il existe deux principaux types d’autorisations dans AWS Lake Formation : 

1. Les autorisations d’accès aux métadonnées contrôlent la capacité de créer, de lire, de mettre à jour et de supprimer des bases de données et des tables de métadonnées dans le catalogue de données.

1. Les autorisations d’accès aux données sous-jacentes contrôlent la capacité à lire et à écrire des données dans les emplacements Amazon S3 sous-jacents vers lesquels pointent les ressources du catalogue de données.

Lake Formation utilise une combinaison de son propre modèle d’autorisations et du modèle d’autorisations IAM pour contrôler l’accès aux ressources des catalogues de données et aux données sous-jacentes :
+ Pour qu’une demande d’accès aux ressources du catalogue de données ou aux données sous-jacentes aboutisse, elle doit passer les contrôles d’autorisation par IAM et Lake Formation.
+ Les autorisations IAM contrôlent l'accès à la Formation AWS Glue APIs et aux ressources du lac, tandis que les autorisations Lake Formation contrôlent l'accès aux ressources du catalogue de données, aux sites Amazon S3 et aux données sous-jacentes.

Les autorisations Lake Formation ne s’appliquent que dans la région dans laquelle elles ont été accordées, et un principal doit être autorisé par un administrateur de lac de données ou un autre principal disposant des autorisations nécessaires pour obtenir les autorisations Lake Formation. 

**Note**  
Si vous êtes l’utilisateur qui a effectué l’intégration du compartiment de table, vous disposez déjà des autorisations Lake Formation pour accéder aux tables. Si vous êtes le seul principal à accéder aux tables, vous pouvez ignorer cette étape. Vous devez uniquement accorder des autorisations Lake Formation sur vos tables à d’autres principaux IAM. Cela permet aux autres principaux d’accéder à la table lors de l’exécution de requêtes. Pour de plus amples informations, veuillez consulter [Octroi de l’autorisation Lake Formation sur une table ou une base de données](#grant-lf-table). 

## Octroi de l’autorisation Lake Formation sur une table ou une base de données
<a name="grant-lf-table"></a>

Vous pouvez accorder à un principal des autorisations Lake Formation sur une table ou une base de données dans un compartiment de table par le biais de la console Lake Formation ou de l’ AWS CLI.

**Note**  
Lorsque vous accordez des autorisations sur une ressource du catalogue de données à un compte externe ou directement à un responsable IAM d'un autre compte, Lake Formation utilise le service AWS Resource Access Manager (AWS RAM) pour partager la ressource. Si le compte du bénéficiaire appartient à la même organisation que le compte du concédant, la ressource partagée est immédiatement accessible au bénéficiaire. Si le compte du bénéficiaire n’appartient pas à la même organisation, AWS RAM envoie une invitation au compte du bénéficiaire pour qu’il accepte ou rejette l’octroi de ressources. Ensuite, pour rendre la ressource partagée disponible, l'administrateur du lac de données du compte bénéficiaire doit utiliser la AWS RAM console ou AWS CLI accepter l'invitation. Pour plus d’informations sur le partage de données entre comptes, consultez [Partage de données entre comptes dans Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) dans le *Guide du développeur AWS Lake Formation *.

------
#### [ Console ]

1. Ouvrez la AWS Lake Formation console sur [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) et connectez-vous en tant qu'administrateur du lac de données. Pour plus d’informations sur la manière de créer un administrateur de lac de données, consultez [Création d’un administrateur de lac de données](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) dans le *Guide du développeur AWS Lake Formation *.

1. Dans le volet de navigation, choisissez **Autorisations de données**, puis **Accorder**. 

1. Sur la page **Accorder des autorisations**, sous **Principaux**, effectuez l’une des opérations suivantes :
   + Pour Amazon Athena ou Amazon Redshift, choisissez **Utilisateurs et rôles IAM**, puis sélectionnez le principal IAM que vous utilisez pour les requêtes.
   + Pour Amazon Data Firehose, choisissez **Utilisateurs et rôles IAM**, puis sélectionnez le rôle de service que vous avez créé pour un streaming vers les tables.
   + Pour Quick, choisissez **les utilisateurs et les groupes SAML**, puis entrez le nom de ressource Amazon (ARN) de votre utilisateur Quick admin.
   + Pour l'accès aux AWS GlueIceberg REST terminaux, choisissez **les utilisateurs et les rôles IAM**, puis sélectionnez le rôle IAM que vous avez créé pour votre client. Pour de plus amples informations, consultez [Création d’un rôle IAM pour votre client](s3-tables-integrating-glue-endpoint.md#glue-endpoint-create-iam-role).

1. Sous **Balises LF ou ressources de catalogue**, choisissez **Ressources de catalogue de données nommées**.

1. Pour **Catalogues**, choisissez le sous-catalogue que vous avez créé lorsque vous avez intégré votre compartiment de table, par exemple, `account-id:s3tablescatalog/amzn-s3-demo-bucket`.

1. Pour **Bases de données**, choisissez l’espace de noms de compartiments de tables S3 que vous avez créé.

1. (Facultatif) Pour **Tables**, choisissez la table S3 que vous avez créée dans le compartiment de table. 
**Note**  
Si vous créez une nouvelle table dans l’éditeur de requêtes Athena, ne sélectionnez pas de table. 

1. Effectuez l’une des actions suivantes :
   + Si vous avez spécifié une table à l’étape précédente, choisissez **Super** pour **Autorisations de table**.
   + Si vous n’avez pas spécifié de table à l’étape précédente, accédez à **Autorisations de base de données**. Pour le partage de données entre comptes, vous ne pouvez pas choisir **Super** pour accorder à l’autre principal toutes les autorisations sur votre base de données. Choisissez plutôt des autorisations plus détaillées, telles que **Décrire**.

1. Choisissez **Accorder**.

------
#### [ CLI ]

1. Assurez-vous d'exécuter les AWS CLI commandes suivantes en tant qu'administrateur du lac de données. Pour plus d’informations, consultez [Création d’un utilisateur de lac de données](https://docs.aws.amazon.com//lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) dans le *Guide du développeur AWS Lake Formation *.

1. Exécutez la commande suivante pour accorder des autorisations Lake Formation sur la table du compartiment de tables S3 à un principal IAM pour lui permettre d’accéder à la table. Pour utiliser cet exemple, remplacez les *`user input placeholders`* par vos propres informations. 

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role"
       },
       "Resource": {
           "Table": {
               "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket",
               "DatabaseName": "S3 table bucket namespace, for example, test_namespace",
               "Name": "S3 table bucket table name, for example test_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

------