Amazon SES API 및 AWS SDK for PHP 버전 3을 사용하여 발신자 권한 부여 - AWS SDK for PHP

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

Amazon SES API 및 AWS SDK for PHP 버전 3을 사용하여 발신자 권한 부여

다른 AWS 계정, AWS Identity and Access Management 사용자 또는 AWS 서비스가 사용자를 대신해 Amazon Simple Email Service (Amazon SES)를 통해 이메일을 전송할 수 있도록 하려면 전송 권한 부여 정책을 만듭니다. 이는 소유한 보안 인증에 연결하는 JSON 문서입니다.

이 정책은 누가 어떤 조건으로 해당 보안 인증을 사용하여 전송할 수 있는지 명시적으로 나열합니다. 사용자와 사용자가 정책에서 명시적으로 권한을 부여한 개체 이외의 모든 발신자는 이메일을 전송할 수 없습니다. 보안 인증은 연결된 정책이 없을 수도, 하나 또는 여러 개일 수도 있습니다. 또한 다중 정책의 효과를 구현하기 위해 복수의 문을 포함한 단일 정책을 생성할 수도 있습니다.

자세한 내용은 Amazon SES에서 전송 권한 부여 사용을 참조하세요.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

의 모든 예제 코드는 여기에서 확인할 수 있습니다. AWS SDK for PHP GitHub

보안 인증 정보

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

Amazon SES 사용에 대한 자세한 내용은 Amazon SES 개발자 안내서를 참조하세요.

권한 있는 발신자 만들기

다른 AWS 계정 계정에 사용자를 대신해 이메일을 전송할 수 있는 권한을 부여하려면 보안 인증 정책을 사용하거나 확인된 이메일 주소 또는 도메인에서 이메일을 전송하도록 권한 부여를 추가하거나 업데이트합니다. ID 정책을 생성하려면 PutIdentityPolicy작업을 사용하십시오.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

샘플 코드

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $other_aws_account = "0123456789"; $policy = <<<EOT { "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAccount", "Effect":"Allow", "Resource":"$identity", "Principal":{ "AWS":[ "$other_aws_account" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] } EOT; $name = "policyName"; try { $result = $SesClient->putIdentityPolicy([ 'Identity' => $identity, 'Policy' => $policy, 'PolicyName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 있는 발신자에 대한 정책 검색

특정 이메일 보안 인증 또는 도메인 보안 인증과 연결된 전송 권한 부여 정책을 반환합니다. 지정된 이메일 주소 또는 도메인에 대한 전송 권한을 가져오려면 GetIdentityPolicy작업을 사용하십시오.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

샘플 코드

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $policies = ["policyName"]; try { $result = $SesClient->getIdentityPolicies([ 'Identity' => $identity, 'PolicyNames' => $policies, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 있는 발신자 나열

현재 AWS 지역의 특정 이메일 ID 또는 도메인 ID와 관련된 전송 권한 부여 정책을 나열하려면 ListIdentityPolicies작업을 사용하십시오.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

샘플 코드

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; try { $result = $SesClient->listIdentityPolicies([ 'Identity' => $identity, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 있는 발신자의 권한 취소

DeleteIdentityPolicy작업과 관련된 ID 정책을 AWS 계정 삭제하여 다른 사람이 이메일 ID 또는 도메인 ID를 사용하여 이메일을 보낼 수 있는 전송 권한을 제거합니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

샘플 코드

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $name = "policyName"; try { $result = $SesClient->deleteIdentityPolicy([ 'Identity' => $identity, 'PolicyName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }