

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

# Amazon EventBridge 스케줄러 설정
<a name="setting-up"></a>

EventBridge 스케줄러를 사용하려면 먼저 다음 단계를 완료해야 합니다.

**Topics**
+ [에 가입 AWS](#setting-up-aws-sign-up)
+ [IAM 사용자를 생성합니다.](#setting-up-create-iam-user)
+ [관리형 정책 사용](#setting-up-managed-policies)
+ [실행 역할 설정](#setting-up-execution-role)
+ [대상 설정](#setting-up-target)
+ [다음 단계](#setting-up-whats-next)

## 에 가입 AWS
<a name="setting-up-aws-sign-up"></a>

이 없는 경우 다음 단계를 AWS 계정완료하여 생성합니다.

**에 가입하려면 AWS 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지시 사항을 따르세요.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면 AWS 계정*AWS 계정 루트 사용자*이 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

## IAM 사용자를 생성합니다.
<a name="setting-up-create-iam-user"></a>

다음 옵션 중 하나를 선택하여 관리 사용자를 생성합니다.


****  

| 관리자를 관리하는 방법 한 가지 선택 | 목적 | By | 다른 방법 | 
| --- | --- | --- | --- | 
| IAM Identity Center에서 (권장) | 단기 보안 인증 정보를 사용하여 AWS에 액세스합니다.이는 보안 모범 사례와 일치합니다. 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)를 참조하세요. | AWS IAM Identity Center 사용 설명서의 [시작하기](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) 지침을 따릅니다. | AWS Command Line Interface 사용 설명서에서 [사용하도록 AWS CLI 를 구성 AWS IAM Identity Center](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html)하여 프로그래밍 방식 액세스를 구성합니다. | 
| IAM에서 (권장되지 않음) | 장기 보안 인증 정보를 사용하여 AWS에 액세스합니다. | IAM 사용 설명서의 [비상 액세스를 위한 IAM 사용자 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html)에 나와 있는 지침을 따르세요. | IAM 사용 설명서에 나온 [IAM 사용자의 액세스 키 관리](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html)를 수행하여 프로그래밍 방식의 액세스를 구성합니다. | 

## 관리형 정책 사용
<a name="setting-up-managed-policies"></a>

이전 단계에서는 AWS 리소스에 액세스할 수 있는 자격 증명을 사용하여 IAM 사용자를 설정합니다. 대부분의 경우 EventBridge 스케줄러를 안전하게 사용하려면 EventBridge 스케줄러를 사용하는 데 필요한 권한만 있는 별도의 사용자, 그룹 또는 역할을 생성하는 것이 좋습니다. EventBridge 스케줄러는 일반 사용 사례를 위해 다음과 같은 관리형 정책을 지원합니다.
+  AmazonEventBridgeSchedulerFullAccess - 콘솔과 API를 사용하여 EventBridge Scheduler에 대한 전체 액세스 권한을 부여합니다.
+  AmazonEventBridgeSchedulerReadOnlyAccess – EventBridge Scheduler에 대한 읽기 전용 액세스 권한을 부여합니다.

이전 단계에서 `AdministratorAccess` 정책을 연결한 것과 같은 방식으로 이러한 관리형 정책을 IAM 보안 주체에 연결할 수 있습니다. 자격 증명 기반 IAM 정책을 사용하여 EventBridge 스케줄러에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 [EventBridge Scheduler에서 자격 증명 기반 정책 사용](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## 실행 역할 설정
<a name="setting-up-execution-role"></a>

*실행 역할은* EventBridge 스케줄러가 AWS 서비스 사용자를 대신하여 다른와 상호 작용하기 위해 수임하는 IAM 역할입니다. 이 역할에 권한 정책을 연결하여 EventBridge 스케줄러에 대상을 간접적으로 호출할 수 있는 액세스 권한을 부여합니다.

 콘솔을 사용하여 [새 일정을 생성](getting-started.md#getting-started-console)할 때 새 실행 역할을 생성할 수도 있습니다. 콘솔을 사용하는 경우 EventBridge 스케줄러는 선택한 대상에 따라 권한을 가진 역할을 사용자 대신 생성합니다. EventBridge 스케줄러가 사용자를 대신하여 역할을 생성할 때 역할의 신뢰 정책에는 사용자를 대신하여 역할을 수임할 수 있는 보안 주체를 제한하는 [조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)가 포함됩니다. 이렇게 하면 [혼동될 수 있는 대리인 보안 문제](cross-service-confused-deputy-prevention.md)를 방지할 수 있습니다.

 다음 단계에서는 새로운 실행 역할을 생성하는 방법과 EventBridge 스케줄러에게 대상을 간접적으로 호출할 수 있는 액세스 권한을 부여하는 방법을 설명합니다. 이 항목에서는 일반적인 템플릿 기반 대상에 대한 권한을 설명합니다. 다른 대상에 대한 권한 추가에 대한 자세한 내용은 [EventBridge Scheduler에서 템플릿 기반 대상 사용](managing-targets-templated.md) 섹션을 참조하세요.

**를 사용하여 실행 역할을 생성하려면 AWS CLI**

1. 다음 역할 수임 JSON 정책을 복사하고 로컬에 `Scheduler-Execution-Role.json`로 저장하세요. 이 신뢰 정책은 EventBridge 스케줄러가 사용자를 대신하여 역할을 맡을 수 있도록 합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "scheduler.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------
**중요**  
 프로덕션 환경에서 실행 역할을 설정하려면 혼동되는 부수적인 문제를 방지하기 위한 추가 보호 조치를 구현하는 것이 좋습니다. 자세한 내용과 예제 정책은 [EventBridge Scheduler의 혼동된 대리자 방지](cross-service-confused-deputy-prevention.md) 섹션을 참조하세요.

1.  AWS Command Line Interface (AWS CLI)에서 다음 명령을 입력하여 새 역할을 생성합니다. `SchedulerExecutionRole`을 이 역할에 부여하려는 이름으로 바꾸세요.

   ```
   $ aws iam create-role --role-name SchedulerExecutionRole --assume-role-policy-document file://Scheduler-Execution-Role.json
   ```

   성공하면 다음과 같은 결과가 출력됩니다.

   ```
   {
       "Role": {
           "Path": "/",
           "RoleName": "Scheduler-Execution-Role",
           "RoleId": "BR1L2DZK3K4CTL5ZF9EIL",
           "Arn": "arn:aws:iam::123456789012:role/SchedulerExecutionRole",
           "CreateDate": "2022-03-10T18:45:01+00:00",
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "scheduler.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           }
       }
   }
   ```

1. EventBridge 스케줄러가 대상을 간접적으로 호출하도록 허용하는 새 정책을 만들려면 다음 공통 대상 중 하나를 선택하세요. JSON 권한 정책을 복사하여 로컬에 `.json` 파일로 저장합니다.

------
#### [ Amazon SQS – SendMessage ]

    다음은 EventBridge 스케줄러가 사용자 계정의 모든 Amazon SQS 대기열에서 `sqs:SendMessage` 작업을 직접적으로 호출하도록 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "sqs:SendMessage"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

------
#### [ Amazon SNS – Publish ]

    다음은 EventBridge 스케줄러가 사용자 계정의 모든 Amazon SNS 주제에서 `sns:Publish` 작업을 직접적으로 호출하도록 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "sns:Publish"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

------
#### [ Lambda – Invoke ]

    다음은 EventBridge 스케줄러가 사용자 계정의 모든 Lambda 함수에서 `lambda:InvokeFunction` 작업을 직접적으로 호출하도록 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

------

1. 다음 명령을 실행하여 새 권한 정책을 생성합니다. `PolicyName`를 이 정책에 부여하려는 이름으로 바꾸세요.

   ```
   $ aws iam create-policy --policy-name PolicyName --policy-document file://PermissionPolicy.json
   ```

   성공하면 다음과 같은 결과가 출력됩니다. 정책 ARN을 기록합니다. 다음 단계에서 이 ARN을 사용하여 정책을 실행 역할에 연결합니다.

   ```
   {
       "Policy": {
           "PolicyName": "PolicyName",
           "CreateDate": "2022-03-015T19:31:18.620Z",
           "AttachmentCount": 0,
           "IsAttachable": true,
           "PolicyId": "ZXR6A36LTYANPAI7NJ5UV",
           "DefaultVersionId": "v1",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:policy/PolicyName",
           "UpdateDate": "2022-03-015T19:31:18.620Z"
       }
   }
   ```

1. 실행 역할에 정책을 연결하려면 다음 명령을 실행하세요. `your-policy-arn`을 이전 단계에서 생성한 정책의 ARN으로 변경합니다. `SchedulerExecutionRole`을 실행 역할의 이름으로 바꿉니다.

   ```
   $ aws iam attach-role-policy --policy-arn your-policy-arn --role-name SchedulerExecutionRole
   ```

   이 `attach-role-policy` 작업은 명령줄에서 응답을 반환하지 않습니다.

## 대상 설정
<a name="setting-up-target"></a>

EventBridge 스케줄러 일정을 생성하기 전에 일정에서 간접적으로 호출할 대상이 하나 이상 있어야 합니다. 기존 AWS 리소스를 사용하거나 새 리소스를 생성할 수 있습니다. 다음 단계에서는를 사용하여 새 표준 Amazon SQS 대기열을 생성하는 방법을 보여줍니다 CloudFormation.

**새로운 Amazon SQS 대기열을 생성하려면**

1. 다음 JSON CloudFormation 템플릿을 복사하여 로컬에 로 저장합니다`Scheduler-Target-SQS.json`.

   ```
   {
      "AWSTemplateFormatVersion": "2010-09-09",
      "Resources": {
         "MyQueue": {
            "Type": "AWS::SQS::Queue",
            "Properties": {
               "QueueName": "MyQueue"
                }
            }
         },
      "Outputs": {
         "QueueName": {
            "Description": "The name of the queue",
            "Value": {
               "Fn::GetAtt": [
                  "MyQueue",
                  "QueueName"
               ]
            }
         },
         "QueueURL": {
            "Description": "The URL of the queue",
            "Value": {
               "Ref": "MyQueue"
            }
         },
         "QueueARN": {
            "Description": "The ARN of the queue",
            "Value": {
               "Fn::GetAtt": [
                  "MyQueue",
                  "Arn"
               ]
            }
         }
      }
   }
   ```

1. 에서 다음 명령을 AWS CLI실행하여 `Scheduler-Target-SQS.json` 템플릿에서 CloudFormation 스택을 생성합니다.

   ```
   $ aws cloudformation create-stack --stack-name Scheduler-Target-SQS --template-body file://Scheduler-Target-SQS.json
   ```

   성공하면 다음과 같은 결과가 출력됩니다.

   ```
   {
       "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890"
   }
   ```

1. 다음 명령을 실행하여 CloudFormation 스택에 대한 요약 정보를 봅니다. 이 정보에는 스택의 상태와 템플릿에 지정된 출력이 포함됩니다.

   ```
   $ aws cloudformation describe-stacks --stack-name Scheduler-Target-SQS
   ```

   성공할 경우, 명령은 Amazon SQS 대기열을 만들고 다음과 같은 출력을 반환합니다.

   ```
   {
       "Stacks": [
           {
               "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890",
               "StackName": "Scheduler-Target-SQS",
               "CreationTime": "2022-03-17T16:21:29.442000+00:00",
               "RollbackConfiguration": {},
               "StackStatus": "CREATE_COMPLETE",
               "DisableRollback": false,
               "NotificationARNs": [],
               "Outputs": [
                   {
                       "OutputKey": "QueueName",
                       "OutputValue": "MyQueue",
                       "Description": "The name of the queue"
                   },
                   {
                       "OutputKey": "QueueARN",
                       "OutputValue": "arn:aws:sqs:us-west-2:123456789012:MyQueue",
                       "Description": "The ARN of the queue"
                   },
                   {
                       "OutputKey": "QueueURL",
                       "OutputValue": "https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue",
                       "Description": "The URL of the queue"
                   }
               ],
               "Tags": [],
               "EnableTerminationProtection": false,
               "DriftInformation": {
                   "StackDriftStatus": "NOT_CHECKED"
               }
           }
       ]
   }
   ```

   이 설명서의 뒷부분에서는 `QueueARN`의 값을 사용하여 대기열을 EventBridge 스케줄러의 대상으로 설정합니다.

## 다음 단계
<a name="setting-up-whats-next"></a>

설정 단계를 완료한 후, [시작](getting-started.md) 안내서를 사용하여 첫 번째 EventBridge 스케줄러 스케줄러를 생성하고 대상을 간접적으로 호출하십시오.