Demande d’un accès aux données Amazon S3 via S3 Access Grants
Une fois que vous avez créé une autorisation d’accès à l’aide de S3 Access Grants, les bénéficiaires peuvent demander des informations d’identification pour accéder aux données S3 auxquelles ils ont été autorisés à accéder. Les bénéficiaires peuvent être des principaux AWS Identity and Access Management (IAM), des identités de votre annuaire d’entreprise ou des applications autorisées.
Une application ou un Service AWS peut utiliser l’opération d’API GetDataAccess de S3 Access Grants pour lui demander l’accès à vos données S3 au nom d’un bénéficiaire. GetDataAccess commence par vérifier que vous avez accordé l’accès aux données à cette d’identité. S3 Access Grants utilise l’opération d’API AssumeRole pour obtenir un jeton d’informations d’identification temporaire et le transmettent 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 à celle de l’autorisation ou à un sous-ensemble de cette portée, mais la portée target doit être comprise dans la portée de l’autorisation accordée au bénéficiaire. 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.
Privilège
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://, qui inclut l’intégralité du préfixe amzn-s3-demo-bucket1/bob/*bob/ dans le compartiment . L’autre octroi a la portée amzn-s3-demo-bucket1S3://, qui inclut uniquement le préfixe amzn-s3-demo-bucket1/bob/reports/*bob/reports/ dans le compartiment . amzn-s3-demo-bucket1
| Portée de l’octroi | Portée demandée | Privilège | Portée renvoyée | Effet |
|---|---|---|---|---|
S3:// |
|
Default
|
|
Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe |
S3:// |
|
Minimal
|
|
Sans le caractère générique * après le nom de préfixe |
S3:// |
|
Minimal
|
|
Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe |
S3:// |
|
Default
|
|
Le demandeur a accès à tous les objets qui ont des noms de clé commençant par le préfixe |
S3:// |
|
Minimal
|
|
Le demandeur a accès uniquement à l’objet doté du nom de clé |
Identités des annuaires
GetDataAccess prend en compte toutes les identités impliquées dans une demande lors de la recherche d’autorisations appropriées. Pour les identités d’annuaire d’entreprise, GetDataAccess renvoie également les autorisations de l’identité IAM utilisée pour la session basée sur l’identité. Pour plus d’informations sur les sessions basées sur l’identité, consultez Octroi d’autorisations pour l’utilisation de sessions de console basées sur l’identité dans le Guide de l’utilisateur AWS Identity and Access Management. GetDataAccess génère des informations d’identification limitant la portée à l’autorisation la plus restrictive, comme indiqué dans la table suivante :
| Portée de l’autorisation pour l’identité IAM | Portée de l’autorisation pour une identité de l’annuaire | Portée demandée | Portée renvoyée | Privilège | Effet |
|---|---|---|---|---|---|
S3:// |
|
S3://
|
S3://
|
Default |
Le demandeur a accès à tous les objets dont le nom de clé commence par le préfixe bob/ dans le cadre de l’autorisation du rôle IAM. En revanche, l’accès est limité aux préfixes bob/images/ dans le cadre de l’autorisation de l’identité de l’annuaire. Le rôle IAM et l’identité de l’annuaire fournissent tous deux un accès à la portée demandée, à savoir |
S3:// |
|
S3://
|
S3://
|
Minimal |
Étant donné que le privilège est défini sur |
S3:// |
|
S3://
|
S3://
|
Default |
Le demandeur a accès à tous les objets dont le nom de clé commence par le préfixe bob/ dans le cadre de l’autorisation de l’identité de l’annuaire. En revanche, l’accès est limité aux préfixes bob/images/ dans le cadre de l’autorisation du rôle IAM. Le rôle IAM et l’identité de l’annuaire fournissent tous deux un accès à la portée demandée, à savoir |
S3:// |
|
S3://
|
S3://
|
Minimal |
Étant donné que le privilège est défini sur |
Durée
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.
Exemples
Vous pouvez demander des informations d’identification temporaires en utilisant l’AWS Command Line Interface (AWS CLI), l’API REST Amazon S3 ou les kits AWS SDK. Veuillez consulter ces exemples.
Pour plus d’informations, consultez GetDataAccess dans la Référence des API Amazon Simple Storage Service.
Pour installer la AWS CLI, consultez Installation de la AWS CLI dans le Guide de l’utilisateur AWS Command Line Interface.
Pour utiliser l’exemple de commande suivant, remplacez les par vos propres informations.user input
placeholders
Exemple Demander des informations d’identification temporaires
Requête :
aws s3control get-data-access \ --account-id111122223333\ --targets3://\amzn-s3-demo-bucket/prefixA*--permissionREAD\ --privilege Default \ --regionus-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://*", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::amzn-s3-demo-bucket/prefixA*111122223333:role/role-name" } }
Pour en savoir plus sur la prise en charge de l’API REST Amazon S3 pour demander des informations d’identification temporaires auprès de S3 Access Grants, consultez GetDataAccess dans la Référence des API Amazon Simple Storage Service.
Cette section fournit un exemple illustrant la manière dont les bénéficiaires demandent des informations d’identification temporaires à S3 Access Grants à l’aide des kits AWS SDK.