Utilisez des informations d'identification temporaires provenant de AWS STS - AWS SDK for PHP

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.

Utilisez des informations d'identification temporaires provenant de AWS STS

AWS Security Token Service(AWS STS) vous permet de demander des privilèges limités, des informations d'identification temporaires pour les utilisateurs IAM ou pour les utilisateurs que vous authentifiez via une fédération d'identité. Pour une compréhension plus approfondie, consultez les informations d'identification de sécurité temporaires dans le Guide de l'utilisateur IAM. Vous pouvez utiliser des informations d'identification de sécurité temporaires pour accéder à la plupart des services AWS. Pour obtenir la liste des services qui acceptent les informations d'identification de sécurité temporaires, consultez la section AWSServices compatibles avec IAM dans le Guide de l'utilisateur IAM.

L'un des cas d'utilisation courants des informations d'identification temporaires consiste à accorder à des applications mobiles ou côté client l'accès à AWS des ressources en authentifiant les utilisateurs via des fournisseurs d'identité tiers (voir Web Identity Federation).

Obtenir des informations d'identification temporaires

AWS STS présente plusieurs opérations qui renvoient des informations d’identification temporaires, mais l’opération GetSessionToken est la plus simple à démontrer. En supposant que vous disposez d'une instance Aws\Sts\StsClient stockée dans la variable $stsClient, vous l'appelez comme suit.

$result = $stsClient->getSessionToken();

Le résultat pour GetSessionToken et les autres opérations AWS STS contient toujours une valeur 'Credentials'. Si vous imprimez le résultat (par exemple, print_r($result)), il ressemble à ce qui suit.

Array ( ... [Credentials] => Array ( [SessionToken] => '<base64 encoded session token value>' [SecretAccessKey] => '<temporary secret access key value>' [Expiration] => 2013-11-01T01:57:52Z [AccessKeyId] => '<temporary access key value>' ) ... )

Fournir des informations d'identification temporaires au AWS SDK for PHP

Vous pouvez utiliser des informations d'identification temporaires avec un autre AWS client en instanciant le client et en transmettant les valeurs reçues directement de AWS STS celui-ci.

use Aws\S3\S3Client; $result = $stsClient->getSessionToken(); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => [ 'key' => $result['Credentials']['AccessKeyId'], 'secret' => $result['Credentials']['SecretAccessKey'], 'token' => $result['Credentials']['SessionToken'] ] ]);

Vous pouvez également construire un objet Aws\Credentials\Credentials et l'utiliser lorsque vous instanciez le client.

use Aws\Credentials\Credentials; use Aws\S3\S3Client; $result = $stsClient->getSessionToken(); $credentials = new Credentials( $result['Credentials']['AccessKeyId'], $result['Credentials']['SecretAccessKey'], $result['Credentials']['SessionToken'] ); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => $credentials ]);

Toutefois, le meilleur moyen de fournir des informations d’identification temporaires consiste à utiliser la méthode d’assistance createCredentials() incluse avec le StsClient. Cette méthode extrait les données à partir d’un résultat AWS STS et crée l’objet Credentials pour vous.

$result = $stsClient->getSessionToken(); $credentials = $stsClient->createCredentials($result); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => $credentials ]);

Pour plus d’informations sur les raisons pour lesquelles vous pouvez avoir besoin d’utiliser des informations d’identification temporaires dans l’application ou le projet, consultez la section Scénarios d’autorisation d’un accès temporaire dans la documentation AWS STS.