設置 Amazon EventBridge 調度程序 - EventBridge 排程器

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設置 Amazon EventBridge 調度程序

您必須先完成下列步驟,才能使用「 EventBridge 排程器」。

註冊成為 AWS

如果您沒有 AWS 帳戶,請完成以下步驟來建立一個。

若要註冊成為 AWS 帳戶
  1. 打開https://portal.aws.amazon.com/billing/註冊

  2. 請遵循線上指示進行。

    部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。

    當您註冊一個時 AWS 帳戶,將創建AWS 帳戶根使用者一個。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務

建立 IAM 使用者

若要建立管理員使用者,請選擇下列其中一個選項。

選擇一種管理管理員的方式 By 您也可以
在IAM身分識別中心

(建議)

使用短期憑證存取 AWS。

這與安全性最佳實務一致。如需有關最佳做法的資訊,請參閱《IAM使用指南》IAM中的「安全性最佳作法」。

請遵循 AWS IAM Identity Center 使用者指南入門中的說明。 AWS IAM Identity Center在《使用AWS Command Line Interface 者指南》中設定 AWS CLI 要使用的,以設定程式設計方式存取。
在 IAM

(不建議使用)

使用長期憑證存取 AWS。 遵循《使用者指南》中「建立您的第一個IAM管理員使用者和使IAM用者群組」中的指 透過管理使IAM用者指南中的使用IAM者存取金鑰來設定程式設計方式存取。

使用受管政策

在上一個步驟中,您可以使用認證設定IAM使用者來存取您的 AWS 資源。在大多數情況下,若要安全地使用 EventBridge Scheduler,建議您建立僅具有必要權限的個別使用者、群組或角色,以便使用 EventBridge Scheduler。 EventBridge Scheduler 針對常見使用案例支援下列受管理的原則。

您可以將這些受管理的原則附加至IAM主參與者,方法與上一步驟中附加AdministratorAccess原則的方式相同。如需使用以身分識別為基礎的IAM原則管理 EventBridge 排程器存取權的詳細資訊,請參閱。在排程器中使用身分識別型原則 EventBridge

設定執行角色

執行角色是 EventBridge 排程器為了代表您與其他 AWS 服務 人互動而假定的IAM角色。您可以將權限原則附加至此角色,以授與 EventBridge 排程器呼叫目標的存取權。

您也可以在使用主控台建立新排程時建立新的執行角色。如果您使用主控台, EventBridge Scheduler 會根據您選擇的目標,代表您建立具有權限的角色。當 EventBridge Scheduler 為您建立角色時,角色的信任原則包含條件金鑰,限制哪些主體可以代表您擔任該角色。這樣可以防止潛在混淆的副安全問題

下列步驟說明如何建立新的執行角色,以及如何授與 EventBridge 排程器存取權以叫用目標。本主題說明常用範本化目標的權限。如需為其他目標新增權限的資訊,請參閱在排程器中使用範本化目標 EventBridge

若要使用建立執行角色 AWS CLI
  1. 複製下列假設角色JSON原則並將其儲存為本機Scheduler-Execution-Role.json。此信任原則允許 EventBridge 排程器代表您擔任該角色。

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

    T 在生產環境中設置執行角色,我們建議實施其他保護措施以防止混淆的副問題。如需詳細資訊和原則範例,請參閱 EventBridge 調度程序中的混淆副預防

  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 排程器」呼叫目標的新原則,請選擇下列其中一個通用目標。複製JSON權限原則並將其儲存為.json檔案在本機。

    Amazon SQS – SendMessage

    以下內容允許 EventBridge 排程器在您帳戶中的所有 Amazon SQS 佇列上呼叫sqs:SendMessage動作。

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

    以下內容允許 EventBridge 排程器針對您帳戶中的所有 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"
                }
            }
        ]
    }

    在本指南稍後,您將使用的值QueueARN將佇列設定為 EventBridge 排程器的目標。

後續步驟?

完成設定步驟後,請使用入門指南建立第一個 EventBridge 排程器排程器並叫用目標。