

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

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

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

**Topics**
+ [에 가입 AWS](#setting-up-aws-sign-up)
+ [관리형 정책 사용](#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 계정
<a name="sign-up-for-aws"></a>

시작하려면이 AWS필요합니다 AWS 계정. 생성에 대한 자세한 AWS 계정내용은 *AWS Account Management 참조 안내서*의 [시작하기 AWS 계정](https://docs.aws.amazon.com//accounts/latest/reference/getting-started.html)를 참조하세요.

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

 AWS 계정 및 관리 사용자를 설정한 후에는 EventBridge 스케줄러를 사용하는 데 필요한 권한만 가진 별도의 사용자, 그룹 또는 역할을 생성하는 것이 좋습니다. EventBridge 스케줄러는 일반 사용 사례를 위해 다음과 같은 관리형 정책을 지원합니다.
+  AmazonEventBridgeSchedulerFullAccess - 콘솔과 API를 사용하여 EventBridge Scheduler에 대한 전체 액세스 권한을 부여합니다.
+  AmazonEventBridgeSchedulerReadOnlyAccess – EventBridge Scheduler에 대한 읽기 전용 액세스 권한을 부여합니다.

이러한 관리형 정책을 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 스케줄러 스케줄러를 생성하고 대상을 간접적으로 호출하십시오.