메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

AWS 계정 또는 IAM 사용자 임시 자격 증명을 사용하여 요청 - PHP용 AWS SDK

PHP용 AWS SDK의 클래스를 사용하여 임시 보안 자격 증명을 요청한 후 이 자격 증명을 사용하여 Amazon S3에 액세스하는 방법을 소개합니다.

참고

이미 PHP용 AWS SDK 사용 및 PHP 예제 실행의 지침에 따라 PHP용 AWS SDK가 올바르게 설치되어 있다고 가정합니다.

IAM 사용자 또는 AWS 계정은 PHP용 AWS SDK을 사용하여 임시 보안 자격 증명을 요청(요청 만들기 참조)한 후 이 자격 증명을 사용하여 Amazon S3에 액세스할 수 있습니다. 세션의 유효 기간이 만료되면 이 자격 증명도 만료됩니다. 세션은 기본적으로 1시간 동안 지속됩니다. IAM 사용자의 자격 증명을 사용할 경우 임시 보안 자격 증명을 요청할 때 1시간 ~ 36시간의 유효 기간을 지정할 수 있습니다. 임시 보안 자격 증명에 대한 자세한 내용은 IAM 사용 설명서임시 보안 자격 증명 단원을 참조하십시오.

AWS 계정 또는 IAM 사용자의 임시 보안 자격 증명을 사용하여 요청

1

Aws\Sts\StsClient 클래스의 factory() 메서드를 사용하여 AWS Security Token Service(AWS STS) 클라이언트의 인스턴스를 만듭니다.

2

Aws\Sts\StsClient::getSessionToken() 메서드를 실행하여 세션을 시작합니다.

메서드는 임시 보안 자격 증명을 반환합니다.

3

앞 단계에서 구한 임시 보안 자격 증명과 함께 Aws\S3\S3Client 클래스의 factory() 메서드를 사용하여 Amazon S3 클라이언트의 인스턴스를 만듭니다.

임시 보안 자격 증명을 사용하여 호출하는 S3Client 클래스의 모든 메서드는 Amazon S3에 인증된 요청을 보냅니다.

다음 PHP 코드 예제는 임시 보안 자격 증명을 요청한 후 이 자격 증명을 사용하여 Amazon S3에 액세스하는 방법을 보여줍니다.

Copy
use Aws\Sts\StsClient; use Aws\S3\S3Client; // In real applications, the following code is part of your trusted code. // It has your security credentials that you use to obtain temporary // security credentials. $sts = StsClient::factory(); $result = $sts->getSessionToken(); // The following will be part of your less trusted code. You provide temporary // security credentials so it can send authenticated requests to Amazon S3. // Create an Amazon S3 client using temporary security credentials. $credentials = $result->get('Credentials'); $s3 = S3Client::factory(array( 'key' => $credentials['AccessKeyId'], 'secret' => $credentials['SecretAccessKey'], 'token' => $credentials['SessionToken'] )); $result = $s3->listBuckets();

참고

AWS 계정 보안 자격 증명을 사용하여 구한 임시 보안 자격 증명의 유효 기간은 1시간입니다. IAM 사용자의 자격 증명을 사용하여 세션을 요청할 경우에만 세션 유효 기간을 지정할 수 있습니다.

예 임시 보안 자격 증명을 사용하여 Amazon S3에 요청

다음 PHP 코드 예제는 임시 보안 자격 증명을 사용하여 지정된 버킷의 객체 키를 나열합니다. 이 코드 예제에서는 기본 1시간의 세션에 대한 임시 보안 자격 증명을 구한 다음 이 자격 증명을 사용하여 Amazon S3에 인증된 요청을 보냅니다. 이 가이드의 PHP 예제 실행에 대한 자세한 내용은 PHP 예제 실행 단원을 참조하십시오.

IAM 사용자의 자격 증명을 사용하여 예제를 테스트하려면 AWS 계정에서 IAM 사용자를 생성해야 합니다. IAM 사용자를 만드는 방법에 대한 자세한 내용은 IAM 사용 설명서IAM 사용자와 관리자 그룹 처음 만들기 단원을 참조하십시오. 연합된 사용자의 임시 자격 증명을 사용하여 요청하기 - PHP용 AWS SDK에서 IAM 사용자의 자격 증명을 사용하여 세션을 요청할 경우 세션 유효 기간을 설정하는 방법을 참조할 수 있습니다.

Copy
<?php // Include the AWS SDK using the Composer autoloader. require 'vendor/autoload.php'; use Aws\Sts\StsClient; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; $sts = StsClient::factory(); $credentials = $sts->getSessionToken()->get('Credentials'); $s3 = S3Client::factory(array( 'key' => $credentials['AccessKeyId'], 'secret' => $credentials['SecretAccessKey'], 'token' => $credentials['SessionToken'] )); try { $objects = $s3->getIterator('ListObjects', array( 'Bucket' => $bucket )); echo "Keys retrieved!\n"; foreach ($objects as $object) { echo $object['Key'] . "\n"; } } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }

관련 리소스

이 페이지에서: