AWS SDK for PHP 버전 3을 사용한 Amazon S3 버킷 액세스 권한 관리 - AWS SDK for PHP

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SDK for PHP 버전 3을 사용한 Amazon S3 버킷 액세스 권한 관리

ACL(액세스 제어 목록)은 리소스 기반 액세스 정책 옵션 중 하나로, 해당 옵션을 사용해 버킷과 객체에 대한 액세스를 관리할 수 있습니다. ACL로 다른 AWS 계정에 기본적인 읽기/쓰기 권한을 부여할 수 있습니다. 자세한 내용은 ACL을 사용한 액세스 관리를 참조하세요.

다음 예에서는 작업 방법을 보여줍니다.

  • GetBucketAcl을 사용하여 버킷에 대한 액세스 제어 정책을 가져옵니다.

  • PutBucketAcl을 사용하여 ACL로 버킷에 대한 권한을 설정합니다.

AWS SDK for PHP에 대한 모든 예제 코드는 GitHub에서 사용할 수 있습니다.

보안 인증

예제 코드를 실행하기 전에 보안 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 기본 사용법에 설명된 AWS SDK for PHP를 가져옵니다.

액세스 제어 목록 정책 가져오기 및 설정

가져오기

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

샘플 코드

// Create a S3Client $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); // Gets the access control policy for a bucket $bucket = 'my-s3-bucket'; try { $resp = $s3Client->getBucketAcl([ 'Bucket' => $bucket ]); echo "Succeed in retrieving bucket ACL as follows: \n"; var_dump($resp); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; } // Sets the permissions on a bucket using access control lists (ACL). $params = [ 'ACL' => 'public-read', 'AccessControlPolicy' => [ // Information can be retrieved from `getBucketAcl` response 'Grants' => [ [ 'Grantee' => [ 'DisplayName' => '<string>', 'EmailAddress' => '<string>', 'ID' => '<string>', 'Type' => 'CanonicalUser', 'URI' => '<string>', ], 'Permission' => 'FULL_CONTROL', ], // ... ], 'Owner' => [ 'DisplayName' => '<string>', 'ID' => '<string>', ], ], 'Bucket' => $bucket, ]; try { $resp = $s3Client->putBucketAcl($params); echo "Succeed in setting bucket ACL.\n"; } catch (AwsException $e) { // Display error message echo $e->getMessage(); echo "\n"; }