

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.

# Sécurité pour S3 Tables
<a name="s3-tables-security-overview"></a>

 Amazon S3 fournit plusieurs fonctionnalités et outils de sécurité. Vous trouverez ci-dessous une liste des fonctionnalités et outils pris en charge par S3 Tables. Une utilisation correcte de ces outils peut contribuer à garantir que vos ressources sont protégées et accessibles uniquement aux utilisateurs prévus. 

**Politiques basées sur l’identité**  
Les [politiques basées sur une identité](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) sont attachées à un utilisateur, un groupe ou un rôle IAM. Vous pouvez utiliser des politiques basées sur l’identité pour accorder à une identité IAM l’accès à vos tables et compartiments de tables. 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 ou d'Amazon S3 REST APIs. AWS CLI Vous pouvez créer des utilisateurs, des groupes et des rôles IAM dans votre compte et leur attacher des stratégies d’accès. Vous pouvez alors accorder l’accès à vos ressources. Pour créer des compartiments de tables et des tables et y accéder, un administrateur IAM doit accorder les autorisations nécessaires au rôle Gestion des identités et des accès AWS (IAM) ou aux utilisateurs. Pour plus d’informations, consultez [Gestion des accès pour S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html). 

**Politiques basées sur les ressources**  
[Les politiques basées sur les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) sont attachées à une ressource. Vous pouvez créer des politiques basées sur les ressources pour les tables et les compartiments de tables. Vous pouvez utiliser une politique de compartiment de tables pour contrôler les autorisations d’accès de l’API au niveau du compartiment de tables et de l’espace de noms. Vous pouvez également utiliser une politique de compartiment de tables pour contrôler les autorisations de l’API au niveau de la table sur plusieurs tables d’un compartiment. Selon la définition de la politique, les autorisations attachées au compartiment peuvent s’appliquer à toutes les tables du compartiment ou à des tables spécifiques du compartiment. Vous pouvez également utiliser une politique de tables pour accorder des autorisations d’accès de l’API au niveau de la table à des tables individuelles du compartiment.

Lorsque le service S3 Tables reçoit une demande pour effectuer une opération de compartiment de tables ou une opération de table, 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). Avec les politiques de compartiments de tables et les politiques de tables, vous pouvez personnaliser l’accès à vos ressources pour vous assurer que seules les identités que vous avez approuvées peuvent accéder à vos ressources et réaliser des actions sur ces dernières. Pour plus d’informations, consultez [Gestion des accès pour S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html). 

**AWS Organizations politiques de contrôle des services (SCPs) pour les tables S3.**  
Vous pouvez utiliser les tables Amazon S3 dans les politiques de contrôle des services (SCPs) pour gérer les autorisations accordées aux utilisateurs de votre organisation. À l’instar des politiques IAM et de ressources, tous les niveaux de table et de compartiment sont référencés dans le cadre de l’espace de noms `s3tables` dans les politiques. Pour plus d'informations, voir [Politiques de contrôle des services (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *guide de AWS Organizations l'utilisateur.*

**Topics**
+ [Protection des données des tables S3 grâce au chiffrement](s3-tables-encryption.md)
+ [Gestion des accès pour S3 Tables](s3-tables-setting-up.md)
+ [Connectivité VPC pour S3 Tables](s3-tables-VPC.md)
+ [Considérations et restrictions de sécurité pour S3 Tables](s3-tables-restrictions.md)

# Protection des données des tables S3 grâce au chiffrement
<a name="s3-tables-encryption"></a>

# Utilisation du chiffrement côté serveur avec des AWS KMS clés (SSE-KMS) dans des compartiments de tables
<a name="s3-tables-kms-encryption"></a>

**Topics**
+ [Comment fonctionne SSE-KMS pour les tables et les compartiments de table](#kms-tables-how)
+ [Application et définition de l’utilisation du SSE-KMS pour les tables et les compartiments de table](tables-require-kms.md)
+ [Surveillance et audit du chiffrement SSE-KMS pour les tables et compartiments de table](#kms-tables-audit)
+ [Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables](s3-tables-kms-permissions.md)
+ [Spécification du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS) dans des compartiments de table](s3-tables-kms-specify.md)

Les compartiments de table ont le chiffrement configuré par défaut et les objets sont automatiquement chiffrés à l’aide du chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3). Ce chiffrement s’applique à tous les tables figurant dans vos compartiments de table S3 et ne vous coûte rien.

Si vous avez besoin d'un contrôle accru sur vos clés de chiffrement, par exemple pour gérer la rotation des clés et l'attribution des politiques d'accès, vous pouvez configurer vos compartiments de table pour utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Les contrôles de sécurité intégrés AWS KMS peuvent vous aider à respecter les exigences de conformité liées au chiffrement. Pour en savoir plus sur SSE-KMS, consultez [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md).

## Comment fonctionne SSE-KMS pour les tables et les compartiments de table
<a name="kms-tables-how"></a>

Le chiffrement SSE-KMS avec les compartiments de table diffère du chiffrement SSE-KMS dans les compartiments à usage général sur les points suivants :
+ Vous pouvez définir les paramètres de chiffrement pour les compartiments de table et les tables individuelles.
+ Vous ne pouvez utiliser des clés gérées par le client qu'avec SSE-KMS. AWS les clés gérées ne sont pas prises en charge.
+ Vous devez accorder des autorisations à certains rôles et à certains responsables AWS de service pour accéder à votre AWS KMS clé. Pour de plus amples informations, veuillez consulter [Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables](s3-tables-kms-permissions.md). Cela inclut l’octroi de l’accès :
  + Au principal de maintenance S3 : pour effectuer la maintenance des tables sur des tables chiffrées
  + Votre rôle d'intégration des tables S3 : pour travailler avec des tables chiffrées dans les services AWS d'analyse
  + À votre rôle d’accès client : pour un accès direct aux tables chiffrées des clients Apache Iceberg
  + Au principal des métadonnées S3 : pour mettre à jour les tables de métadonnées S3 chiffrées
+ Les tables chiffrées utilisent des clés au niveau des tables qui minimisent le nombre de demandes afin de AWS KMS rendre l'utilisation des tables chiffrées SSE-KMS plus rentable. 

**Chiffrement SSE-KMS pour les compartiments de table**  
Lorsque vous créez un compartiment de table, vous pouvez choisir SSE-KMS comme type de chiffrement par défaut et sélectionner une clé KMS spécifique qui sera utilisée pour le chiffrement. Toutes les tables créées dans ce compartiment héritent automatiquement de ces paramètres de chiffrement de leur compartiment de table. Vous pouvez utiliser l' AWS CLI API S3 ou modifier ou AWS SDKs supprimer les paramètres de chiffrement par défaut d'un bucket de table à tout moment. Lorsque vous modifiez les paramètres de chiffrement d’un compartiment de table, ces paramètres s’appliquent uniquement aux nouvelles tables créées dans ce compartiment. Les paramètres de chiffrement des tables préexistantes ne sont pas modifiés. Pour de plus amples informations, veuillez consulter [Spécification du chiffrement pour les compartiments de table](s3-tables-kms-specify.md#specify-kms-table-bucket).

**Chiffrement SSE-KMS pour les tables**  
Vous avez également la possibilité de chiffrer une table individuelle avec une clé KMS différente, quelle que soit la configuration de chiffrement par défaut du compartiment. Pour définir le chiffrement d’une table individuelle, vous devez spécifier la clé de chiffrement souhaitée au moment de la création de la table. Si vous souhaitez modifier le chiffrement d’une table existante, vous devez créer une table avec la clé souhaitée et copier les données de l’ancienne table vers la nouvelle. Pour de plus amples informations, veuillez consulter [Spécification du chiffrement pour les tables](s3-tables-kms-specify.md#specify-kms-table).

Lorsque AWS KMS le chiffrement est utilisé, S3 Tables crée automatiquement des clés de données uniques au niveau des tables qui chiffrent les nouveaux objets associés à chaque table. Ces clés sont utilisées pendant une période limitée, ce qui permet de minimiser le besoin de AWS KMS demandes supplémentaires lors des opérations de chiffrement et de réduire le coût du chiffrement. Cela est similaire aux [Clés de compartiment S3 pour SSE-KMS](bucket-key.md#bucket-key-overview).

# Application et définition de l’utilisation du SSE-KMS pour les tables et les compartiments de table
<a name="tables-require-kms"></a>

Vous pouvez utiliser les politiques basées sur les ressources de S3 Tables, les stratégies de clé KMS, les politiques basées sur l’identité IAM, ou toute combinaison de celles-ci, pour imposer l’utilisation de SSE-KMS pour les tables S3 et les compartiments de table. Pour plus d’informations sur les politiques d’identité et de ressources pour les tables, consultez [Gestion des accès pour S3 Tables](s3-tables-setting-up.md). Pour en savoir plus sur l’écriture des stratégie de clé, consultez [Stratégies de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dans le *Guide du développeur AWS Key Management Service *. Les exemples suivants montrent comment vous pouvez utiliser les stratégies pour appliquer SSE-KMS.

## Application de l’utilisation de SSE-KMS pour toutes les tables avec une stratégie de compartiment de table
<a name="w2aac20c35c15b3c11b5b1"></a>

Il s’agit d’un exemple de stratégie de compartiment de table qui empêche les utilisateurs de créer des tables dans un compartiment de table spécifique à moins qu’ils ne chiffrent les tables avec une clé AWS KMS spécifique. Pour utiliser cette politique, remplacez-la *user input placeholders* par vos propres informations : 

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

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceKMSEncryptionAlgorithm",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3tables:CreateTable"
      ],
      "Resource": [
        "arn:aws:s3tables:us-west-2:111122223333:bucket/example-table-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "s3tables:sseAlgorithm": "aws:kms"
        }
      }
    },
    {
      "Sid": "EnforceKMSEncryptionKey",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3tables:CreateTable"
      ],
      "Resource": [
        "arn:aws:s3tables:us-west-2:111122223333:bucket/example-table-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "s3tables:kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
      }
    }
  ]
}
```

------

## Chiffrement SSE-KMS requis pour les utilisateurs avec une politique IAM
<a name="w2aac20c35c15b3c11b7b1"></a>

Cette politique d'identité IAM oblige les utilisateurs à utiliser une AWS KMS clé spécifique pour le chiffrement lors de la création ou de la configuration des ressources des tables S3. Pour utiliser cette politique, remplacez-la *user input placeholders* par vos propres informations :

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RequireSSEKMSOnTables",
      "Action": [
          "s3tables:CreateTableBucket",
          "s3tables:PutTableBucketEncryption",
          "s3tables:CreateTable"
      ],
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "s3tables:sseAlgorithm": "aws:kms"
        }
      }
    },
    {
      "Sid": "RequireKMSKeyOnTables",
      "Action": [
          "s3tables:CreateTableBucket",
          "s3tables:PutTableBucketEncryption",
          "s3tables:CreateTable"
      ],
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "s3tables:kmsKeyArn": "<key_arn>"
        }
      }
    }
  ]
}
```

## Restriction de l’utilisation d’une clé à un compartiment de table spécifique avec une stratégie de clé KMS
<a name="w2aac20c35c15b3c11b9b1"></a>

Cet exemple de stratégie de clé KMS permet à un utilisateur spécifique d’utiliser la clé uniquement pour les opérations de chiffrement dans un compartiment de table spécifique. Ce type de stratégie est utile pour limiter l’accès à une clé dans les scénarios entre comptes. Pour utiliser cette politique, remplacez-la *user input placeholders* par vos propres informations : 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Id",
  "Statement": [
    {
      "Sid": "AllowPermissionsToKMS",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:s3:arn": "<table-bucket-arn>/*"
        }
      }
    }
  ]
}
```

------

## Surveillance et audit du chiffrement SSE-KMS pour les tables et compartiments de table
<a name="kms-tables-audit"></a>

Pour vérifier l'utilisation de vos AWS KMS clés pour vos données cryptées SSE-KMS, vous pouvez utiliser AWS CloudTrail des journaux. Vous pouvez obtenir un aperçu de vos [opérations cryptographiques](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), telles que `GenerateDataKey` et`Decrypt`. CloudTrail prend en charge de nombreuses [valeurs d'attribut](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) pour filtrer votre recherche, notamment le nom de l'événement, le nom d'utilisateur et la source de l'événement.

Vous pouvez suivre les demandes de configuration de chiffrement pour les tables et les compartiments de tables Amazon S3 à l'aide d' CloudTrail événements. Les noms d'événements d'API suivants sont utilisés dans CloudTrail les journaux :
+ `s3tables:PutTableBucketEncryption`
+ `s3tables:GetTableBucketEncryption`
+ `s3tables:DeleteTableBucketEncryption`
+ `s3tables:GetTableEncryption`
+ `s3tables:CreateTable`
+ `s3tables:CreateTableBucket`

**Note**  
EventBridge n'est pas compatible avec les compartiments de table.

# Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables
<a name="s3-tables-kms-permissions"></a>

Lorsque vous utilisez le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) pour les tables des compartiments de tables S3, vous devez accorder des autorisations pour les différentes identités de votre compte. Au minimum, votre identité d’accès et le principal de maintenance de S3 Tables doivent avoir accès à votre clé, les autres autorisations requises dépendent de votre cas d’utilisation.

**Autorisations nécessaires**   
Pour accéder à une table chiffrée avec une clé KMS, vous devez disposer des autorisations suivantes sur cette clé :  
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
Pour utiliser SSE-KMS sur des tables, le principal du service de maintenance d’Amazon S3 Tables (`maintenance.s3tables.amazonaws.com`) a besoin de `kms:GenerateDataKey` et d’autorisations `kms:Decrypt` sur la clé.

**Autorisations supplémentaires**  
Ces autorisations supplémentaires sont requises en fonction de votre cas d’utilisation :  
+ **Autorisations pour les services AWS d'analyse et accès direct** : si vous utilisez des tables chiffrées SSE-KMS par le biais de services AWS d'analyse ou de moteurs tiers accédant directement aux tables S3, le rôle IAM que vous utilisez doit être autorisé à utiliser votre clé KMS.
+ **Autorisations lorsque Lake Formation est activée** : si vous avez opté AWS Lake Formation pour le contrôle d'accès, le rôle de service Lake Formation doit être autorisé à utiliser votre clé KMS.
+ **Autorisations pour les tables de métadonnées S3** : si vous utilisez le chiffrement SSE-KMS pour les tables de métadonnées S3, vous devez fournir au principal de service de métadonnées S3 (`metadata.s3.amazonaws.com`) l’accès à votre clé KMS. Cela permet aux métadonnées S3 de mettre à jour les tables chiffrées afin qu’elles reflètent vos dernières modifications de données.

**Note**  
Pour les clés KMS entre comptes, votre rôle IAM nécessite à la fois une autorisation d’accès par clé et une autorisation explicite dans la stratégie de clé. Pour plus d'informations sur les autorisations entre comptes pour les clés KMS, voir [Autoriser les AWS comptes externes à utiliser une clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) dans le *Guide du développeur AWS Key Management Service de services*.

**Topics**
+ [Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS](#tables-kms-maintenance-permissions)
+ [Octroi aux principaux IAM des autorisations leur permettant de travailler avec des tables chiffrées dans les services d'analyse intégrés AWS](#tables-kms-integration-permissions)
+ [Octroi aux principaux IAM des autorisations leur permettant de travailler avec des tables chiffrées lorsque Lake Formation est activé](#tables-kms-lf-permissions)
+ [Octroi des autorisations de principal de service de métadonnées S3 pour utiliser votre clé KMS](#tables-kms-metadata-permissions)

## Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS
<a name="tables-kms-maintenance-permissions"></a>

Cette autorisation est requise pour créer des tables chiffrées SSE-KMS et pour permettre la maintenance automatique des tables, comme le compactage, la gestion des instantanés et la suppression de fichiers non référencés sur les tables chiffrées.

**Note**  
Chaque fois que vous demandez la création d’une table chiffrée SSE-KMS, S3 Tables vérifie que le principal `maintenance.s3tables.amazonaws.com` a accès à votre clé KMS. Pour effectuer cette vérification, un objet de zéro octet est temporairement créé dans votre compartiment de table. Cet objet sera automatiquement supprimé par les opérations de maintenance de [suppression de fichiers non référencés](s3-table-buckets-maintenance.md#s3-table-bucket-maintenance-unreferenced). Si la clé KMS que vous avez spécifiée pour le chiffrement ne dispose pas d’un accès de maintenance, l’opération createTable échoue.

Pour accorder un accès de maintenance aux tables chiffrées SSE-KMS, vous pouvez utiliser l’exemple de stratégie de clé suivant. Dans cette politique, le principal du service `maintenance.s3tables.amazonaws.com` est autorisé à utiliser une clé KMS spécifique pour chiffrer et déchiffrer les tables d’un compartiment de table spécifique. Pour utiliser cette politique, remplacez-la *user input placeholders* par vos propres informations :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableKeyUsage",
            "Effect": "Allow",
            "Principal": {
                "Service": "maintenance.s3tables.amazonaws.com"            
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*"
                }
            }
        }
    ]
}
```

------

## Octroi aux principaux IAM des autorisations leur permettant de travailler avec des tables chiffrées dans les services d'analyse intégrés AWS
<a name="tables-kms-integration-permissions"></a>

Pour utiliser les tables S3 dans les services AWS d'analyse, vous devez intégrer vos compartiments de tables à AWS Glue Data Catalog. Cette intégration permet aux services AWS d'analyse de découvrir et d'accéder automatiquement aux données des tables. Pour plus d’informations sur l’intégration, consultez [Intégration des tables Amazon S3 aux services AWS d'analyse](s3-tables-integrating-aws.md).

Lorsque vous travaillez avec des tables chiffrées SSE-KMS via des services AWS d'analyse ou des moteurs tiers et open source accédant directement aux tables S3, le rôle IAM que vous utilisez doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement.

Vous pouvez accorder l'accès aux clés KMS par le biais d'une politique IAM associée à votre rôle ou via une politique de clé KMS.

------
#### [ IAM policy ]

Associez cette politique intégrée au rôle IAM que vous utilisez pour effectuer des requêtes afin d'autoriser l'accès aux clés KMS. Remplacez l'ARN de la clé KMS par le vôtre.

```
{
    "Version":"2012-10-17",		 	 	 ,                    
    "Statement": [
        {
            "Sid": "AllowKMSKeyUsage",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}
```

------
#### [ KMS key policy ]

Vous pouvez également joindre cette déclaration à votre politique de clé KMS pour autoriser le rôle IAM spécifié à utiliser la clé. Remplacez l'ARN du rôle par le rôle IAM que vous utilisez pour les requêtes.

```
{
    "Sid": "Allow use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::<catalog-account-id>:role/<role-name>"
        ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
    ],
    "Resource": "*"
}
```

------

## Octroi aux principaux IAM des autorisations leur permettant de travailler avec des tables chiffrées lorsque Lake Formation est activé
<a name="tables-kms-lf-permissions"></a>

Si vous avez opté AWS Lake Formation pour le contrôle d'accès à votre intégration S3 Tables, le rôle de service Lake Formation doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement. Lake Formation utilise ce rôle pour vendre des informations d'identification au nom des principaux accédant à vos tables.

L'exemple de politique de clé KMS suivant accorde au rôle de service Lake Formation l'autorisation d'utiliser une clé KMS spécifique dans votre compte pour les opérations de chiffrement. Remplacez les valeurs de l'espace réservé par les vôtres.

```
{
  "Sid": "AllowTableRoleAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation"
  },
  "Action": [
      "kms:GenerateDataKey", 
      "kms:Decrypt"
  ],
  "Resource": "<kms-key-arn>"
}
```

## Octroi des autorisations de principal de service de métadonnées S3 pour utiliser votre clé KMS
<a name="tables-kms-metadata-permissions"></a>

Pour permettre à Amazon S3 de mettre à jour les tables de métadonnées chiffrées SSE-KMS et d’effectuer la maintenance de ces tables de métadonnées, vous pouvez utiliser l’exemple de stratégie de clé suivant. Dans cette stratégie, vous autorisez les principaux de service `metadata.s3.amazonaws.com` et `maintenance.s3tables.amazonaws.com` à chiffrer et déchiffrer les tables d’un compartiment de table spécifique à l’aide d’une clé spécifique. Pour utiliser cette politique, remplacez-la *user input placeholders* par vos propres informations :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableKeyUsage",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "maintenance.s3tables.amazonaws.com",
                    "metadata.s3.amazonaws.com"
                ]           
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*"
                }
            }
        }
    ]
}
```

------

# Spécification du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS) dans des compartiments de table
<a name="s3-tables-kms-specify"></a>

Le chiffrement est configuré par défaut pour tous les compartiments de table Amazon S3, et toutes les nouvelles tables créées dans un compartiment de table sont automatiquement chiffrés au repos. Le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) est la configuration de chiffrement par défaut pour chaque compartiment de table. Si vous souhaitez spécifier un type de chiffrement différent, vous pouvez utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS).

 Vous pouvez spécifier le chiffrement SSE-KMS dans vos demandes `CreateTableBucket` ou `CreateTable`, ou vous pouvez définir la configuration de chiffrement par défaut dans le compartiment de table d’une demande `PutTableBucketEncryption`.

**Important**  
Pour autoriser la maintenance automatique de tables chiffrées SSE-KMS et des compartiments de table, vous devez accorder au principal du service maintenance.s3tables.amazonaws.com l’autorisation d’utiliser votre clé KMS. Pour de plus amples informations, veuillez consulter [Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables](s3-tables-kms-permissions.md).

## Spécification du chiffrement pour les compartiments de table
<a name="specify-kms-table-bucket"></a>

Vous pouvez spécifier SSE-KMS comme type de chiffrement par défaut lorsque vous créez un nouveau compartiment de table. Pour des exemples, consultez [Création d’un compartiment de tables](s3-tables-buckets-create.md). Après avoir créé un bucket de table, vous pouvez spécifier l'utilisation de SSE-KMS comme paramètre de chiffrement par défaut à l'aide des opérations de l'API REST AWS SDKs, et du AWS Command Line Interface ()AWS CLI.

**Note**  
 Lorsque vous spécifiez SSE-KMS comme type de chiffrement par défaut, la clé que vous utilisez pour le chiffrement doit autoriser l’accès au principal du service de maintenance de S3 Tables. Si le principal du service de maintenance n’y a pas accès, vous ne pourrez pas créer de tables dans ce compartiment de table. Pour de plus amples informations, veuillez consulter [Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions).

### En utilisant le AWS CLI
<a name="w2aac20c35c15b3c17b9b9b1"></a>

Pour utiliser l'exemple de AWS CLI commande suivant, remplacez le *user input placeholders* par vos propres informations.

```
aws s3tables put-table-bucket-encryption \
    --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket; \
    --encryption-configuration '{
        "sseAlgorithm": "aws:kms",
        "kmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }' \
    --region us-east-1
```

Vous pouvez supprimer le paramètre de chiffrement par défaut pour un bucket de table à l'aide de l'opération [DeleteTableBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucketEncryption.html)d'API. Lorsque vous supprimez les paramètres de chiffrement, les nouvelles tables créées dans le compartiment de table utilisent le chiffrement SSE-S3 par défaut.

## Spécification du chiffrement pour les tables
<a name="specify-kms-table"></a>

Vous pouvez appliquer le chiffrement SSE-KMS à une nouvelle table lorsque vous la créez à l'aide de moteurs de requêtes, d'opérations d'API REST et du AWS Command Line Interface ()AWS CLI. AWS SDKs Les paramètres de chiffrement que vous spécifiez lors de la création d’une table ont priorité sur le paramètre de chiffrement par défaut du compartiment de table.

**Note**  
Lorsque vous utilisez le chiffrement SSE-KMS pour une table, la clé que vous utilisez pour le chiffrement doit autoriser l’accès au principal du service de maintenance de S3 Tables. Si le principal du service de maintenance n’y a pas accès, vous ne pourrez pas créer la table. Pour de plus amples informations, veuillez consulter [Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions).

**Autorisations **nécessaires****

Les autorisations suivantes sont requises pour créer des tables chiffrées
+ `s3tables:CreateTable`
+ `s3tables:PutTableEncryption`

## En utilisant le AWS CLI
<a name="w2aac20c35c15b3c17c13b1"></a>

L' AWS CLI exemple suivant crée une nouvelle table avec un schéma de base et la chiffre à l'aide d'une AWS KMS clé gérée par le client. Pour utiliser ces commandes, remplacez les *user input placeholders* par vos propres informations.

```
aws s3tables create-table \
  --table-bucket-arn "arn:aws:s3tables:Region:ownerAccountId:bucket/amzn-s3-demo-table-bucket" \
  --namespace "mydataset" \
  --name "orders" \
  --format "ICEBERG" \
  --encryption-configuration '{
    "sseAlgorithm": "aws:kms",
    "kmsKeyArn": "arn:aws:kms:Region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  }' \
  --metadata '{
    "iceberg": {
      "schema": {
        "fields": [
          {
            "name": "order_id",
            "type": "string",
            "required": true
          },
          {
            "name": "order_date",
            "type": "timestamp",
            "required": true
          },
          {
            "name": "total_amount",
            "type": "decimal(10,2)",
            "required": true
          }
        ]
      }
    }
  }'
```

La protection des données fait référence à la protection des données pendant que celles-ci sont en transit (à destination ou en provenance d’Amazon S3) et au repos (durant leur stockage sur les disques de centres de données Amazon S3). S3 Tables protège toujours les données en transit en utilisant le protocole Transport Layer Security (1.2 ou version ultérieure) via HTTPS. Pour protéger des données au repos dans un compartiment de table S3, vous disposez des options suivantes :

**Chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)**  
Le chiffrement est configuré par défaut pour tous les compartiments de table Amazon S3. L’option par défaut pour le chiffrement côté serveur est avec des clés gérées Amazon S3 (SSE-S3). Ce chiffrement ne vous coûte rien et s’applique à toutes les tables figurant dans vos compartiments de table S3, sauf si vous spécifiez une autre forme de chiffrement. Chaque objet est chiffré à l’aide d’une clé unique. Comme protection supplémentaire, SSE-S3 chiffre la clé elle-même à l’aide d’une clé racine dont il effectue une rotation régulière. SSE-S3 utilise l’un des chiffrements par bloc les plus puissants qui existent, Advanced Encryption Standard 256 bits (AES-256), pour chiffrer vos données.

**Chiffrement côté serveur avec AWS KMS clés (SSE-KMS)**  
Vous pouvez choisir de configurer des compartiments de tables ou des tables pour utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Les contrôles de sécurité intégrés AWS KMS peuvent vous aider à respecter les exigences de conformité liées au chiffrement. SSE-KMS vous permet de mieux contrôler vos clés de chiffrement en vous permettant d’effectuer les opérations suivantes :   
+ Créer, visualiser, modifier, surveiller, activer ou désactiver, faire tourner et planifier la suppression des clés KMS.
+ Définir les politiques qui contrôlent comment et par qui les clés KMS peuvent être utilisées.
+ Suivez l'utilisation des clés AWS CloudTrail pour vérifier que vos clés KMS sont utilisées correctement.
S3 Tables prend en charge l'utilisation de clés gérées par le client dans SSE-KMS pour chiffrer les tables. AWS les clés gérées ne sont pas prises en charge. Pour plus d’informations sur l’utilisation de SSE-KMS pour les tables S3 et les compartiments de table, consultez [Utilisation du chiffrement côté serveur avec des AWS KMS clés (SSE-KMS) dans des compartiments de tables](s3-tables-kms-encryption.md).

# 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"
       ]
   }'
   ```

------

# Connectivité VPC pour S3 Tables
<a name="s3-tables-VPC"></a>

Toutes les tables figurant dans S3 Tables sont au format Apache Iceberg et sont composées de deux types d’objets S3. Ces deux types d’objets sont des fichiers de données qui stockent les fichiers de données et de métadonnées qui effectuent le suivi des informations relatives aux fichiers de données à différents points dans le temps. Toutes les opérations relatives aux compartiments de tables, aux espaces de noms et aux tables (par exemple, `CreateNamespace`, `CreateTable`, etc.) sont routées via un point de terminaison S3 Tables (`s3tables.region.amazonaws.com`) et toutes les opérations au niveau des objets qui lisent ou écrivent les fichiers de données et de métadonnées continuent d’être routées via un point de terminaison de service S3 (`s3.region.amazonaws.com`). 

Pour accéder aux tables S3, Amazon S3 prend en charge deux types de points de terminaison VPC en utilisant AWS PrivateLink : les points de terminaison de passerelle et les points de terminaison d'interface. Un point de terminaison de passerelle est une passerelle que vous spécifiez dans votre table de routage pour accéder à S3 depuis votre VPC via le AWS réseau. Les points de terminaison d’interface étendent la fonctionnalité des points de terminaison de passerelle en utilisant des adresses IP privées pour acheminer les demandes vers Amazon S3 depuis votre VPC, sur site ou depuis un VPC dans une autre Région AWS à l’aide d’un appairage de VPC ou d’une AWS Transit Gateway. 

Pour accéder à S3 Tables depuis un VPC, nous vous recommandons de créer deux points de terminaison de VPC (un pour S3 et l’autre pour S3 Tables). Vous pouvez créer une passerelle ou un point de terminaison d’interface pour router les opérations de niveau fichier (objet) vers S3 et un point de terminaison d’interface pour router les opérations de niveau compartiment ou table vers S3 Tables. Vous pouvez créer et utiliser des points de terminaison de VPC pour les demandes de niveau fichier à l’aide de S3. Pour plus d'informations, consultez la section [Points de terminaison Gateway](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html) dans le Guide de *AWS PrivateLink*l'utilisateur. 

Pour en savoir plus sur la création et l'utilisation AWS PrivateLink de points de terminaison pour les tables S3, consultez les rubriques suivantes. Pour créer un point de terminaison d’interface de VPC, consultez [Création d’un point de terminaison de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) dans le *Guide AWS PrivateLink *.

**Topics**
+ [Création de points de terminaison de VPC pour S3 Tables](#s3-tables-endpoints)
+ [Accès aux compartiments de tables et aux tables via des points de terminaison à l'aide du AWS CLI](#s3-tables-endpoints-cli-sdks)
+ [Configuration d’un réseau VPC lors de l’utilisation de moteurs de requête](#s3-tables-query-engine)
+ [Utilisation des points de terminaison à double pile pour accéder aux tables et compartiments de table](#s3-tables-dual-stack-endpoints)
+ [Restriction de l’accès à S3 Tables au sein du réseau VPC](#s3-tables-VPC-policy)

## Création de points de terminaison de VPC pour S3 Tables
<a name="s3-tables-endpoints"></a>

Lorsque vous créez un point de terminaison de VPC, S3 Tables génère deux types de noms DNS spécifiques au point de terminaison : régional et zonal. 
+ Un nom DNS régional a le format suivant : `VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com`. Par exemple, pour l’ID de point de terminaison de VPC `vpce-1a2b3c4d`, le nom DNS généré sera similaire à `vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com`. 
+ Un nom DNS zonal a le format suivant : `VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com`. Par exemple, pour l’ID de point de terminaison de VPC `vpce-1a2b3c4d-5e6f.`, le nom DNS généré sera similaire à `vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com`. 

   Un nom DNS zonal inclut votre zone de disponibilité. Vous pouvez utiliser des noms DNS zonaux si votre architecture isole les zones de disponibilité. Les noms DNS S3 spécifiques au point de terminaison peuvent être résolus depuis le domaine DNS public S3. 

Vous pouvez également utiliser les options de DNS privé pour simplifier le routage du trafic S3 vers les points de terminaison de VPC et tirer parti du chemin réseau le plus économique disponible pour votre application. Le réseau DNS privé mappe le point de terminaison public de S3 Tables, par exemple `s3tables.region.amazonaws.com`, à une adresse IP privée dans votre VPC. Vous pouvez utiliser les options de DNS privé pour router le trafic S3 régional sans mettre à jour vos clients S3 pour utiliser les noms DNS spécifiques aux points de terminaison de vos points de terminaison d’interface.

## Accès aux compartiments de tables et aux tables via des points de terminaison à l'aide du AWS CLI
<a name="s3-tables-endpoints-cli-sdks"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour accéder aux compartiments de tables et aux tables via les points de terminaison de l'interface. Avec les `aws s3` commandes AWS CLI, acheminez le trafic via le point de terminaison Amazon S3. Les `aws s3tables` AWS CLI commandes utilisent le point de terminaison Amazon S3 Tables. 

`vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com` est un exemple de point de terminaison de VPC `s3tables`

Un point de terminaison de VPC `s3tables` n’inclut pas de nom de compartiment. Vous pouvez accéder au point de terminaison `s3tables` VPC à l'aide des `aws s3tables` AWS CLI commandes.

`amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com` est un exemple de point de terminaison de VPC `s3`

Vous pouvez accéder au point de terminaison `s3` VPC à l'aide des `aws s3` AWS CLI commandes.

### En utilisant le AWS CLI
<a name="set-s3tables-vpc-cli"></a>

Pour accéder aux compartiments de tables et aux tables via les points de terminaison de l'interface à l'aide des paramètres AWS CLI, utilisez les paramètres `-region` - et`--endpoint-url`. Pour effectuer des actions de niveau compartiment ou table, utilisez l’URL du point de terminaison S3 Tables. Pour effectuer des actions de niveau objet, utilisez l’URL du point de terminaison Amazon S3.

Dans les exemples suivants, remplacez le *user input placeholders* par vos propres informations.

**Exemple 1 : utilisation d’une URL de point de terminaison pour répertorier les compartiments de tables dans votre compte**

```
aws s3tables list-table-buckets --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com —region us-east-1
```

**Exemple 2 : utilisation d’une URL de point de terminaison pour répertorier les tables dans votre compartiment**

```
aws s3tables list-tables --table-bucket-arn arn:aws:s3tables:us-east-1:123456789301:bucket/amzn-s3-demo-bucket --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com --region us-east-1
```

## Configuration d’un réseau VPC lors de l’utilisation de moteurs de requête
<a name="s3-tables-query-engine"></a>

Effectuez les étapes suivantes pour configurer un réseau VPC lorsque vous utilisez des moteurs de requête. 

1. Pour commencer, vous pouvez créer ou mettre à jour un VPC. Pour plus d’informations, consultez [Création d’un VPC](https://docs.aws.amazon.com//vpc/latest/userguide/create-vpc.html#create-vpc-and-other-resources).

1.  Pour les opérations de niveau table ou compartiment de tables qui sont routées vers S3 Tables, créez un nouveau point de terminaison d’interface. Pour plus d'informations, consultez [Accéder à un AWS service à l'aide d'un point de terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

1.  Pour toutes les opérations de niveau objet qui sont routées vers Amazon S3, créez un point de terminaison de passerelle ou un point de terminaison d’interface. Pour plus d’informations sur les points de terminaison de passerelle, consultez [Création d’un point de terminaison de passerelle](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3).

1.  Configurez ensuite vos ressources de données et lancez un cluster Amazon EMR. Pour plus d’informations, consultez [Démarrer avec Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html).

1. Vous pouvez ensuite soumettre une application Spark avec une configuration supplémentaire en sélectionnant vos noms DNS depuis le point de terminaison de VPC. Par exemple, `spark.sql.catalog.ice_catalog.s3tables.endpoint` et `https://interface-endpoint.s3tables.us-east-1.vpce.amazonaws.com`. Pour plus d’informations, consultez [Soumettre un travail à votre cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html#emr-getting-started-manage).

## Utilisation des points de terminaison à double pile pour accéder aux tables et compartiments de table
<a name="s3-tables-dual-stack-endpoints"></a>

S3 Tables prend en charge la connectivité à double pile pour AWS PrivateLink. Les points de terminaison à double pile vous permettent d'accéder aux buckets de tables S3 à l'aide du protocole Internet version 6 (IPv6), en plus du IPv4 protocole, en fonction de ce que prend en charge votre réseau. Vous pouvez accéder à un compartiment S3 via un point de terminaison à double pile en utilisant la convention de dénomination suivante : 

```
s3tables.<region>.api.aws
```

Voici certaines informations que vous devez connaître avant d'essayer d'accéder à des tables S3 et à des compartiments de tables IPv6 dans votre VPC :
+ La double pile doit être activée sur le client que vous utilisez pour accéder aux tables et sur votre client S3.
+ IPv6 l'entrée n'est pas activée par défaut pour les groupes de sécurité VPC. Pour autoriser IPv6 l'accès, vous devez ajouter une nouvelle règle autorisant le protocole HTTPS (port TCP 443) à votre groupe de sécurité. Pour plus d'informations, consultez [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules) dans le * EC2user guide Amazon*
+ Si votre VPC n'a pas d' IPv6 CIDRs assignation, vous devrez ajouter manuellement un bloc IPv6 CIDR à votre VPC. *Pour plus d'informations, voir [https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html) dans le guide de l'utilisateur AWS PrivateLink *
+ Si vous utilisez des politiques IAM de filtrage d'adresses IP, elles doivent être mises à jour pour gérer IPv6 les adresses. Pour plus d’informations sur la gestion des autorisations d’accès avec IAM, consultez [Gestion des identités et des accès pour Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html).

Pour créer un nouveau point de terminaison d’un VPC qui utilise le point de terminaison à double pile pour S3 Tables, utilisez un exemple de commande de l’interface de ligne de commande :

```
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-id \
  --service-name com.amazonaws.aws-region.s3tables \
  --subnet-ids subnet-1 subnet-2 \
  --vpc-endpoint-type Interface \
  --ip-address-type dualstack \
  --dns-options "DnsRecordIpType=dualstack" \
  --security-group-ids sg-id \
  --region aws-region
```

Pour plus d’informations sur la création de point de terminaisons d’un VPC, consultez [https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) dans le Guide de l’utilisateur VPC.

Si votre réseau le prend en charge IPv6 et que vous souhaitez mettre à jour votre VPC pour l'activer, IPv6 vous pouvez utiliser la commande CLI suivante :

```
aws ec2 modify-vpc-endpoint \
  --vpc-endpoint-id vpce-id \
  --ip-address-type dualstack \
  --dns-options "DnsRecordIpType=dualstack" \
  --region aws-region
```

## Restriction de l’accès à S3 Tables au sein du réseau VPC
<a name="s3-tables-VPC-policy"></a>

Comme pour les politiques basées sur les ressources, vous pouvez attacher une politique de points de terminaison à votre point de terminaison de VPC qui contrôle l’accès aux tables et aux compartiments de tables. Dans l’exemple suivant, la politique de point de terminaison d’interface restreint l’accès à des compartiments de tables spécifiques uniquement.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy141511512309",
    "Statement": [
        {
            "Sid": "Access-to-specific-bucket-only",
            "Principal": "*",
            "Action": "s3tables:*",
            "Effect": "Allow",
            "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/*"
            ]
        }
    ]
}
```

------

# Considérations et restrictions de sécurité pour S3 Tables
<a name="s3-tables-restrictions"></a>

La liste suivante décrit les caractéristiques et les fonctionnalités de sécurité et de contrôle d’accès qui ne sont pas prises en charge ou qui sont restreintes pour S3 Tables.
+ Les stratégies d’accès public ne sont pas prises en charge. Les utilisateurs ne peuvent pas modifier les politiques de compartiments ou de tables pour autoriser l’accès public.
+ Les objets présignés URLs pour accéder aux objets associés à une table ne sont pas pris en charge.
+ Les demandes effectuées via HTTP ne sont pas prises en charge. Amazon S3 répond automatiquement par une redirection HTTP pour toutes les demandes effectuées via HTTP afin de les mettre à niveau vers HTTPS.
+ Vous devez utiliser AWS la version 4 de Signature lorsque vous envoyez des demandes à un point d'accès à l'aide du REST APIs.
+ Les requêtes effectuées via le protocole Internet version 6 (IPv6) ne sont prises en charge que pour les actions au niveau des objets sur les points de terminaison de stockage des tables, et non pour les actions au niveau des tables et des compartiments.
+ Les stratégies d’accès des tables et des compartiments de tables sont limitées à une taille de 20 Ko.