Configuration des stratégies IAM pour l'utilisation des points d'accès - Amazon Simple Storage Service

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.

Configuration des stratégies IAM pour l'utilisation des points d'accès

Les points d'accès Amazon S3 prennent en charge les politiques de ressources AWS Identity and Access Management (IAM) qui vous permettent de contrôler l'utilisation du point d'accès par ressource, par utilisateur ou selon d'autres conditions. Pour qu'une application ou un utilisateur puisse accéder à des objets via un point d'accès, il faut que le point d'accès et le compartiment sous-jacent autorisent la demande.

Important

L'ajout d'un point d'accès S3 à un compartiment ne modifie pas le comportement du compartiment lorsqu'on y accède directement par le nom du compartiment ou le nom Amazon Resource Name (ARN). Toutes les opérations existantes sur le compartiment continueront de fonctionner comme auparavant. Les restrictions que vous incluez dans une stratégie de point d'accès s'appliquent uniquement aux demandes effectuées via ce point d'accès.

Lorsque vous utilisez des politiques de ressources IAM, veillez à résoudre les avertissements de sécurité, les erreurs, les avertissements généraux et les suggestions AWS Identity and Access Management Access Analyzer avant d'enregistrer votre politique. IAM Access Analyzer exécute des vérifications de politiques pour valider votre politique par rapport à la grammaire de politique et aux bonnes pratiques IAM. Ces vérifications génèrent des résultats et fournissent des recommandations pour vous aider à créer des stratégies fonctionnelles et conformes aux bonnes pratiques en matière de sécurité.

Pour en savoir plus sur la validation des politiques à l'aide d'IAM Access Analyzer, consultez Validation de politique IAM Access Analyzer dans le Guide de l'utilisateur IAM. Pour afficher la liste des avertissements, erreurs et suggestions renvoyés par IAM Access Analyzer, consultez la Référence de vérification de stratégie IAM Access Analyzer.

Exemples de stratégie de point d'accès

Les exemples suivants montrent comment créer des stratégies IAM pour contrôler les demandes effectuées via un point d'accès.

Note

Les autorisations accordées dans une politique de point d'accès ne sont effectives que si le compartiment sous-jacent autorise également le même accès. Vous pouvez y parvenir de deux façons :

  1. (Recommandé) Déléguer le contrôle d'accès du compartiment au point d'accès, comme décrit à la section Délégation du contrôle d'accès aux points d'accès.

  2. Ajoutez les mêmes autorisations contenues dans la stratégie de point d'accès à la stratégie du compartiment sous-jacent. Le premier exemple de politique de point d'accès montre comment modifier la politique de compartiment sous-jacente pour autoriser l'accès nécessaire.

Exemple 1 : octroi de politique de point d'accès

La politique de point d'accès suivante accorde à l'utilisateur IAM Jane dans le compte 123456789012 des autorisations GET et PUT pour des objets avec le préfixe Jane/ via le point d'accès my-access-point dans le compte 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/Jane/*" }] }
Note

Pour que la stratégie de point d'accès accorde effectivement l'accès à Jane, il faut que le compartiment sous-jacent autorise également le même accès à Jane. Vous pouvez déléguer le contrôle d'accès du compartiment au point d'accès comme décrit à la section Délégation du contrôle d'accès aux points d'accès. Vous pouvez également ajouter la stratégie suivante au compartiment sous-jacent pour accorder les autorisations nécessaires à Jane. Notez que l'entrée Resource diffère entre les stratégies de point d'accès et de compartiment.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/Jane/*" }] }
Exemple 2 : politique de point d'accès avec condition d'étiquette

La politique de point d'accès suivante accorde à l'utilisateur IAM Mateo dans le compte 123456789012 des autorisations pour des objets GET via le point d'accès my-access-point du compte 123456789012 dont la valeur de la clé d'étiquette data est définie sur finance.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Principal" : { "AWS": "arn:aws:iam::123456789012:user/Mateo" }, "Action":"s3:GetObject", "Resource" : "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/*", "Condition" : { "StringEquals": { "s3:ExistingObjectTag/data": "finance" } } }] }
Exemple 3 : politique de point d'accès permettant d'établir la liste des compartiments

La politique de point d'accès suivante permet à l'utilisateur IAM Arnav dans le compte 123456789012 d'afficher les objets contenus dans le point d'accès sous-jacent du compartiment my-access-point dans le compte 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Arnav" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point" }] }
Exemple 4 :politique de contrôle des services

La stratégie de contrôle de service suivante exige que tous les nouveaux points d'accès soient créés avec une origine de réseau de cloud privé virtuel (VPC). Lorsque cette stratégie est mise en place, les utilisateurs de votre organisation ne peuvent pas créer de nouveaux points d'accès accessibles à partir d'Internet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } }] }
Exemple 5 : stratégie de compartiment pour limiter les opérations S3 aux origines réseau VPC

La stratégie de compartiment suivante limite l'accès à toutes les opérations d'objet S3 pour le compartiment DOC-EXAMPLE-BUCKET aux points d'accès ayant une origine réseau VPC.

Important

Avant d'utiliser une instruction comme celle présentée dans cet exemple, assurez-vous que vous n'avez pas besoin d'utiliser des fonctions qui ne sont pas prises en charge par les points d'accès, comme la réplication entre régions.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": [ "s3:AbortMultipartUpload", "s3:BypassGovernanceRetention", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjectVersion", "s3:DeleteObjectVersionTagging", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionAcl", "s3:PutObjectVersionTagging", "s3:RestoreObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } } ] }

Clés de condition

Les points d'accès S3 comportent des clés de condition que vous pouvez utiliser dans les politiques IAM pour contrôler l'accès à vos ressources. Les clés de condition suivantes ne représentent qu'une partie d'une politique IAM. Pour obtenir des exemples complets de politiques, consultez Exemples de stratégie de point d'accès, Délégation du contrôle d'accès aux points d'accès et Octroi d'autorisations pour les points d'accès intercompte.

s3:DataAccessPointArn

Cet exemple présente une chaîne que vous pouvez utiliser pour établir une correspondance sur un ARN de point d'accès. L'exemple suivant correspond à tous les points d'accès Compte AWS 123456789012de la région us-west-2:

"Condition" : { "StringLike": { "s3:DataAccessPointArn": "arn:aws:s3:us-west-2:123456789012:accesspoint/*" } }
s3:DataAccessPointAccount

Cet exemple présente un opérateur de chaîne que vous pouvez utiliser pour établir une correspondance sur l'ID de compte du propriétaire d'un point d'accès. L'exemple suivant correspond à tous les points d'accès appartenant au Compte AWS 123456789012.

"Condition" : { "StringEquals": { "s3:DataAccessPointAccount": "123456789012" } }
s3:AccessPointNetworkOrigin

Cet exemple présente un opérateur de chaîne que vous pouvez utiliser pour faire correspondre sur l'origine du réseau, soit Internet, soit VPC. L'exemple suivant ne correspond qu'aux points d'accès ayant une origine VPC.

"Condition" : { "StringEquals": { "s3:AccessPointNetworkOrigin": "VPC" } }

Pour plus d'informations sur l'utilisation des clés de condition avec Amazon S3, consultez la section Actions, ressources et clés de condition pour Amazon S3 dans la référence d'autorisation de service.

Délégation du contrôle d'accès aux points d'accès

Vous pouvez déléguer le contrôle d'accès à un compartiment aux points d'accès du compartiment. Dans l'exemple suivant, la politique de compartiment permet un accès complet à tous les points d'accès appartenant au compte du propriétaire du compartiment. Ainsi, tous les accès à ce compartiment sont contrôlés par les stratégies attachées à ses points d'accès. Nous vous recommandons de configurer vos compartiments de cette façon pour tous les cas d'utilisation qui ne demandent pas d'accès direct au compartiment.

Exemple 6 : politique de compartiment qui délègue le contrôle d'accès aux points d'accès
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Octroi d'autorisations pour les points d'accès intercompte

Pour créer un point d'accès à un compartiment qui appartient à un autre compte, vous devez d'abord créer le point d'accès en spécifiant le nom du compartiment et l'ID du propriétaire du compte. Ensuite, le propriétaire du compartiment doit mettre à jour la politique de compartiment pour autoriser les requêtes du point d'accès. La création d'un point d'accès est similaire à la création d'un DNS CNAME dans la mesure où le point d'accès ne donne pas accès au contenu du compartiment. Tous les accès aux compartiments sont contrôlés par la politique des compartiments. L'exemple de politique de compartiment suivant autorise les requêtes GET et LIST sur le compartiment depuis un point d'accès appartenant à un Compte AWS de confiance.

Remplacez l'ARN du bucket par l'ARN du bucket.

Exemple 7 — Politique de compartiment déléguant des autorisations à un autre Compte AWS
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : ["s3:GetObject","s3:ListBucket"], "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Access point owner's account ID" } } }] }