設定 Amazon EventBridge 排程器 - EventBridge 排程器

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

設定 Amazon EventBridge 排程器

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

註冊 AWS

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

註冊 AWS 帳戶
  1. 開啟 https://portal.aws.amazon.com/billing/signup

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

    註冊程序的一部分包括接聽電話或文字訊息,並在電話鍵盤上輸入驗證碼。

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

建立 IAM 使用者

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

選擇一種管理管理員的方式 根據 您也可以
在 IAM Identity Center

(建議)

使用短期憑證存取 AWS。

這與安全性最佳實務一致。有關最佳實務的資訊,請參閱 IAM 使用者指南中的 IAM 安全最佳實務

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

(不建議使用)

使用長期憑證存取 AWS。 遵循《IAM 使用者指南》中建立 IAM 使用者以進行緊急存取的指示。 IAM 使用者指南》中的透過管理 IAM 使用者的存取金鑰來設定程式設計存取。

使用 受管政策

在上一個步驟中,您會使用登入資料設定 IAM 使用者來存取您的 AWS 資源。在大多數情況下,若要安全地使用 EventBridge 排程器,我們建議您建立單獨的使用者、群組或角色,只具有使用 EventBridge 排程器的必要許可。EventBridge 排程器支援下列常見使用案例的受管政策。

您可以將這些受管政策連接至您的 IAM 主體,就像您在上一個步驟中連接AdministratorAccess政策一樣。如需使用身分型 IAM 政策管理 EventBridge 排程器存取權的詳細資訊,請參閱 在 EventBridge 排程器中使用身分型政策

設定執行角色

執行角色是 EventBridge 排程器擔任的 IAM 角色,以便 AWS 服務 代表您與其他 互動。您可以將許可政策連接至此角色,以授予 EventBridge 排程器調用目標的存取權。

當您使用主控台建立新的排程時,也可以建立新的執行角色。如果您使用 主控台,EventBridge 排程器會根據您選擇的目標,以 許可代表您建立角色。當 EventBridge 排程器為您建立角色時,角色的信任政策包含條件索引鍵,以限制哪些委託人可以代表您擔任該角色。這可防止潛在的混淆代理人安全問題

下列步驟說明如何建立新的執行角色,以及如何授予 EventBridge 排程器調用目標的存取權。本主題說明熱門範本目標的許可。如需新增其他目標許可的詳細資訊,請參閱 在 EventBridge Scheduler 中使用範本目標

使用 建立執行角色 AWS CLI
  1. 複製下列擔任角色 JSON 政策,並將其儲存為 Scheduler-Execution-Role.json。此信任政策允許 EventBridge 排程器代表您擔任該角色。

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

    若要在生產環境中設定執行角色,建議您實作額外的保護措施,以防止混淆代理人問題。如需詳細資訊和範例政策,請參閱 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 Scheduler 呼叫您帳戶中所有 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 Scheduler 呼叫您帳戶中所有 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 排程器排程器並叫用目標。