Demande d’un accès aux données Amazon S3 via les octrois d’accès S3 - 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.

Demande d’un accès aux données Amazon S3 via les octrois d’accès S3

Après avoir utilisé Amazon S3 Access Grants pour créer une autorisation d'accès qui donne aux principaux AWS Identity and Access Management (IAM), aux identités de votre annuaire d'entreprise ou aux applications autorisées l'accès à vos données S3, vos bénéficiaires peuvent demander des informations d'identification pour accéder à ces données.

Lorsqu'une application ou Service AWS utilise l'opération GetDataAccess API pour demander à S3 Access Grants l'accès à vos données S3 au nom d'un bénéficiaire, S3 Access Grants vérifie d'abord que vous avez accordé cet accès d'identité aux données. S3 Access Grants utilise ensuite l'opération AssumeRoleAPI pour obtenir un jeton d'identification temporaire et le transmet au demandeur. Ce jeton d’informations d’identification temporaire est un jeton AWS Security Token Service (AWS STS).

La demande GetDataAccess doit inclure le paramètre target, qui spécifie la portée des données S3 à laquelle s’appliquent les informations d’identification temporaires. Cette portée target peut être identique à la portée de l’octroi ou à un sous-ensemble de cette portée, mais la portée target doit être comprise dans la portée de l’octroi accordée au demandeur. La demande doit également spécifier le paramètre permission pour indiquer le niveau d’autorisation pour les informations d’identification temporaires, que ce soit READ, WRITE ou READWRITE.

Le demandeur peut spécifier le niveau de privilège du jeton temporaire dans sa demande d’informations d’identification. À l’aide du paramètre privilege, le demandeur peut réduire ou augmenter la portée d’accès des informations d’identification temporaires, dans les limites de la portée de l’octroi. La valeur par défaut du paramètre privilege est Default, ce qui signifie que la portée cible des informations d’identification renvoyées est la portée de l’octroi d’origine. L’autre valeur possible pour privilege est Minimal. Si la portée target est réduite par rapport à la portée de l’octroi d’origine, la portée des informations d’identification temporaires est désactivée pour correspondre à la portée target, à condition que la portée target soit comprise dans la portée de l’octroi.

Le tableau suivant détaille l’effet du paramètre privilege sur deux octrois. Un octroi a la portée S3://DOC-EXAMPLE-BUCKET1/bob/*, qui inclut l’intégralité du préfixe bob/ dans le compartiment DOC-EXAMPLE-BUCKET1. L’autre octroi a la portée S3://DOC-EXAMPLE-BUCKET1/bob/reports/*, qui inclut uniquement le préfixe bob/reports/ dans le compartiment DOC-EXAMPLE-BUCKET1.

Portée de l’octroi Portée demandée Privilège Portée renvoyée Effet
S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/* Default DOC-EXAMPLE-BUCKET1/bob/*

Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe bob/ dans le compartiment DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/ Minimal DOC-EXAMPLE-BUCKET1/bob/

Sans le caractère générique * après le nom de préfixe bob/, le demandeur n’a accès qu’à l’objet nommé bob/ dans le compartiment DOC-EXAMPLE-BUCKET1. Il n’est pas courant d’avoir un tel objet. Le demandeur n’a accès à aucun autre objet, pas même à ceux ayant des noms de clé commençant par le préfixe bob/.

S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/images/* Minimal DOC-EXAMPLE-BUCKET1/bob/images/*

Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe bob/images/* dans le compartiment DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Default DOC-EXAMPLE-BUCKET1/bob/reports/*

Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe bob/reports dans le compartiment DOC-EXAMPLE-BUCKET1, ce qui correspond à la portée de l’octroi correspondant.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Minimal DOC-EXAMPLE-BUCKET1/bob/reports/file.txt

Le demandeur a accès uniquement à l’objet doté du nom de clé bob/reports/file.txt dans le compartiment DOC-EXAMPLE-BUCKET1. Le demandeur n’a accès à aucun autre objet.

Le paramètre durationSeconds définit la durée des informations d’identification temporaires, en secondes. La valeur par défaut est de 3600 secondes (1 heure), mais le demandeur (le bénéficiaire) peut spécifier une plage allant de 900 secondes (15 minutes) à 43200 secondes (12 heures). Si le bénéficiaire demande une valeur supérieure à ce maximum, la demande échoue.

Note

Dans votre demande de jeton temporaire, si l’emplacement est un objet, définissez la valeur du paramètre targetType dans votre demande sur Object. Ce paramètre est obligatoire seulement si l’emplacement est un objet et que le niveau de privilège est Minimal. Si l’emplacement est un compartiment ou un préfixe, vous n’avez pas besoin de spécifier ce paramètre.

Pour plus d'informations, consultez GetDataAccessle manuel Amazon Simple Storage Service API Reference.

Vous pouvez demander des informations d'identification temporaires en utilisant AWS Command Line Interface (AWS CLI), l'API REST Amazon S3 et les AWS SDK.

Pour l'installer AWS CLI, reportez-vous à la section Installation du AWS CLI dans le guide de AWS Command Line Interface l'utilisateur.

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

Exemple Demander des informations d’identification temporaires

Requête :

aws s3control get-data-access \ --account-id 111122223333 \ --target s3://DOC-EXAMPLE-BUCKET/prefixA* \ --permission READ \ --privilege Default \ --region us-east-2

Réponse :

{ "Credentials": { "AccessKeyId": "Example-key-id", "SecretAccessKey": "Example-access-key", "SessionToken": "Example-session-token", "Expiration": "2023-06-14T18:56:45+00:00"}, "MatchedGrantTarget": "s3://DOC-EXAMPLE-BUCKET/prefixA**" }

Pour plus d'informations sur la prise en charge par l'API REST d'Amazon S3 pour la demande d'informations d'identification temporaires auprès de S3 Access Grants, consultez GetDataAccessle manuel Amazon Simple Storage Service API Reference.

Cette section fournit un exemple de la manière dont les bénéficiaires demandent des informations d'identification temporaires à S3 Access Grants à l'aide des AWS SDK.

Java

L’exemple de code suivant renvoie les informations d’identification temporaires que le bénéficiaire utilise pour accéder à vos données S3. Pour utiliser cet exemple de code, remplacez les user input placeholders par vos propres informations.

Exemple Obtenir des informations d’identification temporaires

Requête :

public void getDataAccess() { GetDataAccessRequest getDataAccessRequest = GetDataAccessRequest.builder() .accountId("111122223333") .permission(Permission.READ) .privilege(Privilege.MINIMAL) .target("s3://DOC-EXAMPLE-BUCKET/prefixA*") .build(); GetDataAccessResponse getDataAccessResponse = s3Control.getDataAccess(getDataAccessRequest); LOGGER.info("GetDataAccessResponse: " + getDataAccessResponse); }

Réponse :

GetDataAccessResponse( Credentials=Credentials( AccessKeyId="Example-access-key-id", SecretAccessKey="Example-secret-access-key", SessionToken="Example-session-token", Expiration=2023-06-07T06:55:24Z ))