

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

# Amazon SES AWS 계정 를 사용하여 단일 이메일 주소로 여러 등록 Amazon SES
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses"></a>

*Joe Wozniak 및 Shubhangi Vishwakarma, Amazon Web Services*

## 요약
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-summary"></a>

이 패턴은와 연결된 이메일 주소에서 실제 이메일 주소를 분리하는 방법을 설명합니다 AWS 계정. 계정 생성 시 AWS 계정 고유한 이메일 주소를 제공해야 합니다. 일부 조직에서는를 관리하는 팀이 메시징 팀과 함께 많은 고유한 이메일 주소를 AWS 계정 관리해야 합니다. 이는 많은 조직을 관리하는 대규모 조직에서는 어려울 수 있습니다 AWS 계정. 또한 이메일 시스템에서 이메일 주소의 로컬 부분 끝에 *더하기* 기호(\+)와 식별자를 추가하여 [이메일 필터링: 하위 주소 확장(RFC 5233)](https://datatracker.ietf.org/doc/html/rfc5233)에 정의된 더하기 주소 지정 또는 *하위* 주소를 허용하지 않는 경우 `admin+123456789123@example.com`이 패턴은 이러한 제한을 극복하는 데 도움이 될 수 있습니다.

이 패턴은 AWS 계정 소유자가 하나의 이메일 주소를 여러 이메일 주소와 연결할 수 있는 고유한 이메일 주소 벤딩 솔루션을 제공합니다 AWS 계정. 그러면 AWS 계정 소유자의 실제 이메일 주소가 테이블에서 생성된 이러한 이메일 주소와 연결됩니다. 이 솔루션은 고유한 이메일 계정에 대해 수신되는 모든 이메일을 처리하고, 각 계정의 소유자를 조회한 다음, 수신된 모든 메시지를 소유자에게 전달합니다. 

## 사전 조건 및 제한 사항
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-prereqs"></a>

**사전 조건 **
+ 에 대한 관리 액세스. AWS 계정
+ 개발 환경에 대한 액세스가 필요합니다.
+ (선택 사항) AWS Cloud Development Kit (AWS CDK) 워크플로 및 Python 프로그래밍 언어에 익숙하면 문제를 해결하거나 수정하는 데 도움이 됩니다.

**제한 사항 **
+ 벤딩되는 전체 이메일 주소 길이는 64자입니다. API 세부 정보는 *AWS Organizations API 참조*의 [CreateAccount](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreateAccount.html)를 참조하세요.

**제품 버전**
+ Node.js 버전 22.x 이상
+ Python 3.13 이상
+ Python 패키지 **pip** 및 **virtualenv**
+ AWS CDK CLI 버전 2.1019.2 이상
+ Docker 20.10.x 이상

## 아키텍처
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-architecture"></a>

**대상 기술 스택  **
+ CloudFormation 스택
+ AWS Lambda 함수
+ Amazon Simple Email Service(Amazon SES) 규칙 및 규칙 세트
+ AWS Identity and Access Management (IAM) 역할 및 정책
+ Amazon Simple Storage Service(S3) 버킷 및 버킷 정책
+ AWS Key Management Service (AWS KMS) 키 및 키 정책
+ Amazon Simple Notification Service(SNS) 주제 및 주제 정책
+ Amazon DynamoDB 테이블 

**대상 아키텍처 **

![단일 이메일 주소로 여러 AWS 계정을 등록하기 위한 대상 아키텍처](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/1be85b92-69e5-43b2-aeed-27b9509e145e/images/c7ae9d7a-d4e0-412e-97cb-0f3073e012e7.png)


이 다이어그램은 두 가지 흐름을 보여줍니다.
+ **이메일 주소 벤딩 흐름:** 다이어그램에서 이메일 주소 벤딩 흐름(하단 섹션)은 일반적으로 계정 벤딩 솔루션 또는 외부 자동화로 시작되거나 수동으로 호출됩니다. 요청 시 필요한 메타데이터가 포함된 페이로드와 함께 Lambda 함수가 호출됩니다. 함수는 이 정보를 사용하여 고유한 계정 이름과 이메일 주소를 생성하고 DynamoDB 데이터베이스에 저장한 다음 호출자에게 값을 반환합니다. 그런 다음 이러한 값을 사용하여 새를 생성할 수 있습니다 AWS 계정 (일반적으로 사용 AWS Organizations).
+ **이메일 전달 흐름:** 이 흐름은 이전 다이어그램의 위쪽 섹션에 설명되어 있습니다. 이메일 주소 벤딩 흐름에서 생성된 계정 이메일을 사용하여가 생성되면 AWS 계정 는 계정 등록 확인 및 정기 알림과 같은 다양한 이메일을 해당 이메일 주소로 AWS 보냅니다. 이 패턴의 단계에 따라 전체 도메인에 대한 이메일을 수신하도록 Amazon SES AWS 계정 를 사용하여를 구성합니다. 이 솔루션은 Lambda가 모든 수신 이메일을 처리하고, `TO` 주소가 DynamoDB 테이블에 있는지 확인한 다음, 대신 메시지를 계정 소유자의 이메일 주소로 전달하도록 하는 전달 규칙을 구성합니다. 이 프로세스를 사용하면 계정 소유자가 여러 계정을 하나의 이메일 주소와 연결할 수 있습니다.

**자동화 및 규모 조정**

이 패턴은 AWS CDK 를 사용하여 배포를 완전히 자동화합니다. 이 솔루션은 필요에 맞게 자동으로 확장되는(또는 확장되도록 구성할 수 있는) AWS 관리형 서비스를 사용합니다. Lambda 함수는 확장 요구 사항을 충족하기 위해 추가 구성이 필요할 수 있습니다. 자세한 내용은 Lambda 설명서의 [Lambda 함수 크기 조정](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html)을 참조하세요.

## 도구
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-tools"></a>

**서비스**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 사용하면 AWS 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 리전의 수명 주기 동안 리소스를 관리할 수 있습니다.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)는 명령줄 셸의 명령을 통해 AWS 서비스와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)는 빠르고 예측 가능하고 확장 가능한 성능을 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.
+ [Amazon Simple Email Service(Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html)를 사용하면 자신의 이메일 주소와 도메인을 사용하여 이메일을 보내고 받을 수 있습니다.
+ [Amazon Simple Notification Service(Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)를 사용하면 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 교환을 조정하고 관리할 수 있습니다.
+ [Amazon Simple Storage Service(S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

**배포에 필요한 도구**
+  AWS CLI 및 IAM 액세스 권한이 있는 개발 환경 AWS 계정. 자세한 내용은 [관련 리소스](#register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources) 섹션의 링크를 참조하세요. 
+ 개발 시스템에 다음을 설치합니다.
  + Git [다운로드 웹 사이트에서 사용할 수 있는 Git 명령줄 도구입니다](https://git-scm.com/downloads).
  +  AWS CLI 에 대한 액세스 자격 증명을 구성하는 입니다 AWS CDK. 자세한 내용은 [AWS CLI 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)를 참조하세요.
  + Python [다운로드 웹 사이트에서 사용할 수 있는 Python 버전 3](https://www.python.org/downloads/).13 이상.
  + Python 패키지 관리를 위한 UV. 자세한 내용은 개발자 가이드의 설치를 참조하세요.
  + Node.js 22.x 이상 설치 지침은 [Helm 설명서](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs)를 참조하세요.
  + AWS CDK CLI 버전 2.1019.2 이상. 설치 지침은 [AWS CDK Helm 설명서](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html#getting-started-install)를 참조하세요.
  + Docker 버전 20.10.x 이상 자세한 내용은 설명서의 도커 엔진 설치 섹션을 참조하세요.

**코드**

이 패턴의 코드는 GitHub [AWS 계정 GAWS Account Factory 이메일](https://github.com/aws-samples/aws-account-factory-email) 리포지토리에서 사용할 수 있습니다.

## 에픽
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-epics"></a>

### 대상 배포 환경 할당
<a name="allocate-a-target-deployment-environment"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 를 식별하거나 생성합니다 AWS 계정. | 전체 관리 액세스 권한이 있는 기존 또는 신규 AWS 계정 를 식별하여 이메일 솔루션을 배포합니다. | AWS 관리자, 클라우드 관리자 | 
| 배포 환경을 설정합니다. | 다음 단계에 따라 사용하기 쉬운 배포 환경을 구성하고 종속성을 설정합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | AWS DevOps, 앱 개발자 | 

### 확인된 도메인 설정
<a name="set-up-a-verified-domain"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 도메인을 식별 및 할당합니다. | 이메일 전달 기능을 사용하려면 전용 도메인이 필요합니다. Amazon SES로 확인할 수 있는 도메인 또는 하위 도메인을 식별하고 할당합니다. 이 도메인은 이메일 전달 솔루션이 배포 AWS 계정 된 내에서 수신 이메일을 수신할 수 있어야 합니다.<br />도메인 요구 사항:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 클라우드 관리자, 네트워크 관리자, DNS 관리자 | 
| 도메인을 확인합니다. | 식별된 도메인을 사용하여 수신 이메일을 수락할 수 있는지 확인합니다.<br />Amazon SES 설명서의 [Amazon SES 이메일 수신을 위한 도메인 확인](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-verification.html) 지침을 완료합니다. 이를 위해서는 도메인의 DNS 레코드를 담당하는 사람 또는 팀과의 협력이 필요합니다. | 앱 개발자, AWS DevOps | 
| MX 레코드를 설정합니다. |  AWS 계정 및 리전의 Amazon SES 엔드포인트를 가리키는 MX 레코드로 도메인을 설정합니다. 자세한 내용은 Amazon SES 설명서에서 [Amazon SES 이메일 수신을 위한 MX 레코드 게시하기](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html)를 참조하세요. | 클라우드 관리자, 네트워크 관리자, DNS 관리자 | 

### 이메일 벤딩 및 전달 솔루션 배포
<a name="deploy-the-email-vending-and-forwarding-solution"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| cdk.json의 기본값을 수정합니다. | 솔루션이 배포된 후 제대로 작동하도록 `cdk.json` 파일(리포지토리의 루트 내)에서 일부 기본값을 편집합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 앱 개발자, AWS DevOps | 
| 이메일 벤딩 및 전달 솔루션을 배포합니다. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 앱 개발자, AWS DevOps | 
| 솔루션이 배포되었는지 확인합니다. | 테스트를 시작하기 전에 솔루션이 성공적으로 배포되었는지 확인:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 앱 개발자, AWS DevOps | 

### 이메일 벤딩 및 전달이 예상대로 작동하는지 확인
<a name="verify-that-email-vending-and-forwarding-operate-as-expected"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| API가 작동 중인지 확인합니다. | 이 단계에서는 솔루션의 API에 테스트 데이터를 제출하고 솔루션이 예상 출력을 생성하는지, 백엔드 작업이 예상대로 수행되었는지 확인합니다.<br />테스트 입력을 사용하여 **Vend Email** Lambda 함수를 수동으로 실행합니다. (예를 보려면 [sample\_vend\_request.json 파일](https://github.com/aws-samples/aws-account-factory-email/blob/main/src/events/sample_vend_request.json)을 참조하세요.) `OwnerAddress`의 경우 유효한 이메일 주소를 사용합니다. API는 예상대로 값이 포함된 계정 이름과 계정 이메일을 반환해야 합니다. | 앱 개발자, AWS DevOps | 
| 이메일이 전달되고 있는지 확인합니다. | 이 단계에서는 시스템을 통해 테스트 이메일을 보내고 이메일이 예상 수신자에게 전달되는지 확인합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 앱 개발자, AWS DevOps | 

## 문제 해결
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-troubleshooting"></a>


| 문제 | Solution | 
| --- | --- | 
| 시스템이 예상대로 이메일을 전달하지 않습니다. | 설정이 올바른지 확인합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html)<br />도메인 설정을 확인한 후 다음 단계를 따르세요.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
|  AWS CDK 스택을 배포하려고 하면 다음과 비슷한 오류가 발생합니다.<br />“템플릿 형식 오류: 인식할 수 없는 리소스 유형”  | 대부분의 경우 이 오류 메시지는 대상 리전에 사용 가능한 AWS 서비스가 모두 제공되지 않음을 의미합니다. AWS Cloud9를 사용하여 솔루션을 배포하는 경우, AWS Cloud9 인스턴스가 실행되는 리전과 다른 리전을 대상으로 할 수 있습니다.기본적으로는에서 구성한 리전 및 계정에 AWS CDK 배포됩니다 AWS CLI.<br />가능한 해결책:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| 솔루션을 배포할 때 다음과 같은 오류 메시지가 나타납니다.<br />“Deployment failed: Error: AwsMailFwdStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. 환경이 부트스트랩되었습니까? 'cdk bootstrap'을 실행하세요.” | 대상 AWS 계정 및 리전에 AWS CDK 리소스를 배포한 적이 없는 경우 오류에 표시된 대로 먼저 `cdk bootstrap` 명령을 실행해야 합니다. 부트스트래핑 명령을 실행한 후에도 이 오류가 계속 표시된다면, AWS Cloud9 인스턴스가 실행되는 리전과 다른 리전에 솔루션을 배포하려고 하는 것일 수 있습니다.<br />이 문제를 해결하려면 솔루션을 배포하기 AWS CLI 전에 `AWS_DEFAULT_REGION` 환경 변수를 설정하거나를 사용하여 리전을 설정합니다. 또는 [AWS CDK 환경에 대한 AWS CDK 설명서](https://docs.aws.amazon.com/cdk/v2/guide/environments.html)의 지침에 따라 하드 코딩된 계정 ID 및 리전을 포함하도록 리포지토리 루트의 `app.py` 파일을 수정할 수 있습니다. | 

## 관련 리소스
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources"></a>
+ 설치에 대한 도움말은의 최신 버전 설치 또는 업데이트를 AWS CLI참조하세요. [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+ IAM 액세스 자격 증명 AWS CLI 으로를 설정하는 방법에 대한 도움말[은에 대한 설정 구성을 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 참조하세요.
+ 에 대한 도움말은 시작하기를 AWS CDK참조하세요. [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_install) 

## 추가 정보
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-additional"></a>

**비용**

이 솔루션을 배포하면 AWS 계정 소유자에게 다음 서비스 사용과 관련된 비용이 발생할 수 있습니다.  잠재적 비용을 인지하려면 이러한 서비스의 청구 방식을 이해하는 것이 중요합니다. 가격 정보는 다음 페이지를 참조하세요.
+ [Amazon SES 요금](https://aws.amazon.com/ses/pricing/)
+ [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)
+ [AWS KMS 요금](https://aws.amazon.com/kms/pricing/)
+ [AWS Lambda 요금](https://aws.amazon.com/lambda/pricing/)
+ [Amazon DynamoDB 요금](https://aws.amazon.com/dynamodb/pricing/)