아마존 EventBridge 스케줄러 설정 - EventBridge 스케줄러

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

아마존 EventBridge 스케줄러 설정

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

등록하기 AWS

계정이 없는 경우 다음 단계를 완료하여 계정을 만드세요. AWS 계정

가입하려면 AWS 계정
  1. https://portal.aws.amazon.com/billing/signup을 여세요.

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

    등록 절차 중에는 전화를 받고 키패드로 인증 코드를 입력하는 과정이 있습니다.

    에 AWS 계정가입하면 AWS 계정 루트 사용자a가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스 액세스 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 작업을 수행하는 것입니다.

IAM 사용자를 생성합니다.

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

관리자를 관리하는 방법 한 가지 선택 목적 By 다른 방법
IAM Identity Center에서

(권장)

단기 보안 인증 정보를 사용하여 AWS에 액세스합니다.

이는 보안 모범 사례와 일치합니다. 모범 사례에 대한 자세한 내용은 IAM 사용 설명서IAM 보안 모범 사례를 참조하세요.

AWS IAM Identity Center 사용 설명서의 시작하기 지침을 따르세요. 사용 AWS IAM Identity CenterAWS Command Line Interface 설명서에서 사용하도록 AWS CLI 구성하여 프로그래밍 액세스를 구성하십시오.
IAM에서

(권장되지 않음)

장기 보안 인증 정보를 사용하여 AWS에 액세스합니다. IAM 사용 설명서의 첫 IAM 관리 사용자 및 사용자 그룹 만들기에 나온 지침을 따릅니다. IAM 사용 설명서에 나온 IAM 사용자의 액세스 키 관리 단계를 수행하여 프로그래밍 방식의 액세스를 구성합니다.

관리형 정책 사용

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

이전 단계에서 AdministratorAccess 정책을 연결한 것과 같은 방식으로 이러한 관리형 정책을 IAM 보안 주체에 연결할 수 있습니다. ID 기반 IAM 정책을 사용하여 EventBridge Scheduler에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 을 참조하십시오. 자격 증명 기반 정책 사용

실행 역할 설정

실행 역할은 사용자를 대신하여 다른 사용자와 상호 작용하기 위해 EventBridge Scheduler가 맡는 IAM 역할입니다. AWS 서비스 이 역할에 권한 정책을 추가하여 EventBridge 스케줄러에게 호출 대상을 위한 액세스 권한을 부여합니다.

콘솔을 사용하여 새 일정을 생성할 때 새 실행 역할을 생성할 수도 있습니다. 콘솔을 사용하는 경우 EventBridge Scheduler는 선택한 대상에 따라 권한을 가진 역할을 사용자 대신 생성합니다. EventBridge Scheduler가 사용자를 대신하여 역할을 생성하는 경우 역할의 신뢰 정책에는 사용자를 대신하여 역할을 수임할 수 있는 주도자를 제한하는 조건 키가 포함됩니다. 이렇게 하면 혼동될 수 있는 대리인 보안 문제를 방지할 수 있습니다.

다음 단계는 새 실행 역할을 만드는 방법과 EventBridge 스케줄러에 대상을 호출할 수 있는 액세스 권한을 부여하는 방법을 설명합니다. 이 항목에서는 일반적인 템플릿 기반 대상에 대한 권한을 설명합니다. 다른 대상에 대한 권한 추가에 대한 자세한 내용은 템플릿 기반 대상 사용 섹션을 참조하세요.

를 사용하여 실행 역할을 만들려면 AWS CLI
  1. 다음 역할 수임 JSON 정책을 복사하고 로컬에 Scheduler-Execution-Role.json로 저장하세요. 이 신뢰 정책을 통해 EventBridge Scheduler는 사용자를 대신하여 역할을 맡을 수 있습니다.

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

    프로덕션 환경에서 실행 역할을 설정하려면 혼동되는 부수적인 문제를 방지하기 위한 추가 보호 조치를 구현하는 것이 좋습니다. 자세한 내용과 예제 정책은 혼동된 대리자 방지 섹션을 참조하세요.

  2. 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"
                    }
                ]
            }
        }
    }
  3. EventBridge Scheduler가 대상을 호출하도록 허용하는 새 정책을 만들려면 다음 공통 대상 중 하나를 선택합니다. JSON 권한 정책을 복사하여 로컬에 .json 파일로 저장합니다.

    Amazon SQS – SendMessage

    다음을 통해 EventBridge Scheduler는 계정의 모든 Amazon SQS 대기열에서 sqs:SendMessage 작업을 호출할 수 있습니다.

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

    다음은 EventBridge Scheduler가 사용자 계정의 모든 Amazon SNS 주제에 대해 sns:Publish 작업을 호출할 수 있도록 하는 방법입니다.

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

    다음을 통해 EventBridge 스케줄러는 계정의 모든 Lambda 함수에서 lambda:InvokeFunction 작업을 호출할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
  4. 다음 명령을 실행하여 새 권한 정책을 생성합니다. 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"
        }
    }
    
  5. 실행 역할에 정책을 연결하려면 다음 명령을 실행하세요. your-policy-arn을 이전 단계에서 생성한 정책의 ARN으로 변경합니다. SchedulerExecutionRole을 실행 역할의 이름으로 바꿉니다.

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

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

대상 설정

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

새로운 Amazon SQS 대기열을 생성하려면
  1. 다음 JSON AWS CloudFormation 템플릿을 복사하여 로컬에 다른 이름으로 저장합니다. SchedulerTargetSQS.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" ] } } } }
  2. 에서 다음 AWS CLI명령을 실행하여 Scheduler-Target-SQS.json 템플릿에서 AWS 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"
    }
  3. 다음 명령을 실행하여 AWS 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"
                }
            }
        ]
    }

    이 안내서의 뒷부분에서는 의 값을 사용하여 대기열을 EventBridge 스케줄러의 대상으로 설정해 보겠습니다. QueueARN

다음 단계

설정 단계를 완료한 후에는 시작 안내서를 사용하여 첫 번째 EventBridge 스케줄러 스케줄러를 만들고 대상을 호출하십시오.