Concepts de S3 Access Grants - Amazon Simple Storage Service

Concepts de S3 Access Grants

Flux de travail de S3 Access Grants

Le flux de travail de S3 Access Grants est le suivant :

  1. Créez une instance S3 Access Grants. Consultez Utilisation de S3 Access Grants.

  2. Dans votre instance S3 Access Grants, enregistrez des emplacements dans vos données Amazon S3 et associez ces emplacements à des rôles Gestion des identités et des accès AWS (IAM). Consultez Enregistrement d’un emplacement.

  3. Créez des autorisations pour les bénéficiaires, qui leur permettent d’accéder à vos ressources S3. Consultez Octroi d’autorisations avec S3 Access Grants.

  4. Le bénéficiaire demande des informations d’identification temporaires à S3 Access Grants. Consultez Demande d’un accès aux données Amazon S3 via S3 Access Grants.

  5. Le bénéficiaire accède aux données S3 à l’aide de ces informations d’identification temporaires. Consultez Accès aux données S3 à l’aide des informations d’identification fournies par S3 Access Grants.

Pour plus d’informations, consultez Bien démarrer avec S3 Access Grants.

Instances S3 Access Grants

Une instance S3 Access Grants est un conteneur logique pour les autorisations individuelles. Lorsque vous créez une instance S3 Access Grants, vous devez spécifier une Région AWS. Chaque Région AWS de votre Compte AWS peut avoir une instance S3 Access Grants. Pour plus d’informations, consultez Utilisation de S3 Access Grants.

Si vous souhaitez utiliser S3 Access Grants pour accorder l’accès à des identités d’utilisateur et de groupe issues de votre annuaire d’entreprise, vous devez également associer votre instance S3 Access Grants à une instance AWS IAM Identity Center. Pour plus d’informations, consultez S3 Access Grants et identités d’annuaire d’entreprise.

Une instance S3 Access Grants qui vient d’être créée est vide. Vous devez enregistrer un emplacement dans l’instance, qui peut être le chemin par défaut S3 (s3://), un compartiment ou un préfixe au sein d’un compartiment. Après avoir enregistré au moins un emplacement, vous pouvez créer des autorisations d’accès qui donnent accès aux données de cet emplacement.

Emplacements

Un emplacement S3 Access Grants associe des compartiments ou des préfixes à un rôle Gestion des identités et des accès AWS (IAM). S3 Access Grants endossera ce rôle IAM pour fournir des informations d’identification temporaires au bénéficiaire qui accédera à cet emplacement particulier. Vous devez d’abord enregistrer au moins un emplacement auprès de votre instance S3 Access Grants avant de pouvoir créer des autorisations d’accès.

Nous vous recommandons d’enregistrer l’emplacement par défaut (s3://) et de le mapper à un rôle IAM. L’emplacement situé sur le chemin S3 par défaut (s3://) couvre l’accès à tous vos compartiments S3 dans la Région AWS de votre compte. Lorsque vous créez une autorisation d’accès, vous pouvez restreindre la portée de cette autorisation à un compartiment, à un préfixe ou à un objet situé à l’emplacement par défaut.

Les cas d’utilisation plus complexes liés à la gestion des accès peuvent vous obliger à enregistrer un autre emplacement que l’emplacement par défaut. Voici quelques exemples de tels cas d’utilisation :

  • Supposons qu’amzn-s3-demo-bucket soit un emplacement enregistré dans votre instance S3 Access Grants et qu’un rôle IAM lui soit associé, mais que ce rôle IAM se voit refuser l’accès à un préfixe particulier dans le compartiment. Dans ce cas, vous pouvez enregistrer le préfixe auquel le rôle IAM n’a pas accès en tant qu’emplacement distinct et associer cet emplacement à un autre rôle IAM disposant de l’accès nécessaire.

  • Supposons que vous souhaitiez créer des autorisations qui limitent l’accès aux utilisateurs au sein d’un point de terminaison de cloud privé virtuel (VPC). Dans ce cas, vous pouvez enregistrer un emplacement pour un compartiment dans lequel le rôle IAM restreint l’accès à ce point de terminaison du VPC. Ultérieurement, lorsqu’un bénéficiaire demandera des informations d’identification à S3 Access Grants, S3 Access Grants endossera le rôle IAM de l’emplacement pour fournir des informations d’identification temporaires. Ces informations d’identification refuseront l’accès au compartiment spécifique, sauf si l’appelant se trouve dans le point de terminaison du VPC. Cette autorisation de refus sera appliquée en plus de l’autorisation READ, WRITE ou READWRITE habituellement spécifiée dans l’autorisation d’accès.

Si votre cas d’utilisation vous oblige à enregistrer plusieurs emplacements dans votre instance S3 Access Grants, vous pouvez enregistrer l’un des emplacements suivants :

  • Emplacement S3 par défaut (s3://)

  • Un compartiment (par exemple, amzn-s3-demo-bucket) ou plusieurs compartiments

  • Un compartiment et un préfixe (par exemple, amzn-s3-demo-bucket/prefix*) ou plusieurs préfixes

Pour connaître le nombre maximal d’emplacements que vous pouvez enregistrer dans votre instance S3 Access Grants, consultez Limitations de S3 Access Grants. Pour plus d’informations sur l’enregistrement d’un emplacement S3 Access Grants, consultez Enregistrement d’un emplacement.

Une fois que vous avez enregistré le premier emplacement dans votre instance S3 Access Grants, celle-ci ne dispose toujours d’aucune autorisation d’accès individuelle. Aucun accès n’a donc encore été accordé à aucune de vos données S3. Vous pouvez désormais créer des autorisations d’accès pour accorder un accès. Pour plus d’informations sur la création d’autorisations d’accès, consultez Octroi d’autorisations avec S3 Access Grants.

Autorisations

Une autorisation individuelle dans une instance S3 Access Grants permet à une identité spécifique, à savoir un principal IAM ou un utilisateur/groupe dans un annuaire d’entreprise, d’obtenir l’accès à un emplacement qui est enregistré dans votre instance S3 Access Grants.

Lorsque vous créez une autorisation, vous n’êtes pas obligé d’accorder l’accès à l’ensemble de l’emplacement enregistré. Vous pouvez limiter l’étendue de l’accès de l’autorisation au sein d’un emplacement. Si l’emplacement enregistré est le chemin S3 par défaut (s3://), vous devez limiter la portée de l’autorisation à un compartiment, à un préfixe dans un compartiment ou à un objet spécifique. Si l’emplacement enregistré de l’autorisation est un compartiment ou un préfixe, vous pouvez donner accès à l’intégralité du compartiment ou du préfixe, ou vous pouvez aussi restreindre la portée de l’autorisation à un préfixe, un sous-préfixe ou un objet.

Dans l’autorisation, vous définissez également son niveau d’accès sur READ, WRITE ou READWRITE. Supposons que vous disposiez d’une autorisation qui donne au groupe de l’annuaire d’entreprise 01234567-89ab-cdef-0123-456789abcdef l’accès en lecture au compartiment s3://amzn-s3-demo-bucket/projects/items/*. Les utilisateurs de ce groupe peuvent avoir un accès READ à chaque objet dont le nom de clé d’objet commence par le préfixe projects/items/ dans le compartiment nommé amzn-s3-demo-bucket.

Pour le nombre maximum d’autorisations d’accès que vous pouvez créer dans votre instance S3 Access Grants, consultez Limitations de S3 Access Grants. Pour plus d’informations sur la création d’autorisations d’accès, consultez Création d’octrois.

Informations d’identification temporaires S3 Access Grants

Une fois que vous avez créé une autorisation, une application autorisée qui utilise l’identité spécifiée dans cette autorisation peut demander des informations d’accès ponctuelles. Pour ce faire, l’application appelle l’opération d’API S3 GetDataAccess. Les bénéficiaires peuvent utiliser cette opération d’API pour demander l’accès aux données S3 que vous avez partagées avec eux.

L’instance S3 Access Grants évalue la demande GetDataAccess par rapport aux autorisations dont elle dispose. S’il existe une autorisation correspondante pour le demandeur, S3 Access Grants endosse le rôle IAM associé à l’emplacement de cette autorisation. S3 Access Grants délimite ensuite les autorisations de la session IAM précisément au compartiment, préfixe ou objet S3 spécifié par l’étendue de l’octroi.

Le délai d’expiration des informations d’identification d’accès temporaire est défini par défaut sur 1 heure, mais vous pouvez le définir sur une valeur quelconque comprise entre 15 minutes et 12 heures. Consultez la durée maximale d’une session dans la référence de l’API AssumeRole.

Fonctionnement

Dans le schéma suivant, un emplacement Amazon S3 par défaut avec la ^portée s3:// est enregistré avec le rôle IAM s3ag-location-role. Ce rôle IAM est autorisé à effectuer des actions Amazon S3 dans le compte lorsque ses informations d’identification sont obtenues via S3 Access Grants.

Au sein de cet emplacement, deux autorisations d’accès individuelles sont créées pour deux utilisateurs IAM. L’utilisateur IAM Bob se voit octroyer l’accès READ et l’accès WRITE sur le préfixe bob/ dans le compartiment DOC-BUCKET-EXAMPLE. Un autre rôle IAM, Alice, se voit octroyer uniquement l’accès READ sur le préfixe alice/ dans le compartiment DOC-BUCKET-EXAMPLE. Un octroi, coloré en bleu, est défini pour permettre à Bob d’accéder au préfixe bob/ dans le compartiment DOC-BUCKET-EXAMPLE. Un octroi, coloré en vert, est défini pour permettre à Alice d’accéder au préfixe alice/ dans le compartiment DOC-BUCKET-EXAMPLE.

Lorsqu’il est temps pour Bob de lire (READ) les données, le rôle IAM associé à l’emplacement dans lequel se trouve son octroi appelle l’opération d’API GetDataAccess de S3 Access Grants. Si Bob essaie de lire (READ) un préfixe ou un objet S3 quelconque commençant par s3://DOC-BUCKET-EXAMPLE/bob/*, la demande GetDataAccess renvoie un ensemble d’informations d’identification de session IAM temporaires avec l’autorisation à s3://DOC-BUCKET-EXAMPLE/bob/*. De même, Bob peut écrire (WRITE) sur n’importe quel préfixe ou objet S3 commençant par s3://DOC-BUCKET-EXAMPLE/bob/*, car l’octroi le permet également.

De même, Alice peut lire (READ) tout ce qui commence par s3://DOC-BUCKET-EXAMPLE/alice/. Toutefois, si elle essaie d’écrire (WRITE) sur un compartiment, un préfixe ou un objet quelconque dans s3://, elle recevra une erreur Accès refusé (403 Forbidden), car aucun octroi ne lui donne l’accès WRITE sur aucune donnée. En outre, si Alice demande un niveau d’accès quelconque (READ ou WRITE) à des données situées en dehors de s3://DOC-BUCKET-EXAMPLE/alice/, elle recevra à nouveau une erreur Accès refusé.

Fonctionnement de S3 Access Grants

Ce modèle s’adapte à un nombre élevé d’utilisateurs et de compartiments, et simplifie la gestion de ces autorisations. Au lieu de modifier des stratégies de compartiment S3 potentiellement volumineuses chaque fois que vous souhaitez ajouter ou supprimer une relation individuelle d’accès par préfixe utilisateur, vous pouvez ajouter et supprimer des octrois discrets et individuels.