本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon EventBridge 日程安排
在使用 EventBridge 日程安排器之前,必须完成以下步骤。
报名参加 AWS
如果您没有 AWS 账户,请完成以下步骤来创建一个。
要注册 AWS 账户
打开https://portal.aws.amazon.com/billing/注册。
按照屏幕上的说明操作。
在注册时,将接到电话,要求使用电话键盘输入一个验证码。
当您注册时 AWS 账户,就会创建AWS 账户根用户一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
创建 IAM 用户
要创建管理员用户,请选择以下选项之一。
选择一种方法来管理您的管理员 | 目的 | 方式 | 您也可以 |
---|---|---|---|
在IAM身份中心中 (建议) |
使用短期凭证访问 AWS。 这符合安全最佳实操。有关最佳实践的信息,请参阅《IAM用户指南》IAM中的安全最佳实践。 |
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的入门。 | 通过在《AWS Command Line Interface 用户指南》 AWS IAM Identity Center中配置 AWS CLI 要使用的来配置编程访问权限。 |
IAM 中 (不推荐使用) |
使用长期凭证访问 AWS。 | 按照《IAM用户指南》中创建用于紧急访问的IAM用户中的说明进行操作。 | 通过《用户指南》中的 “管理IAM用户的访问密钥” IAM 来配置编程访问权限。 |
使用托管策略
在上一步中,您设置了一个拥有访问您 AWS 资源的凭证的IAM用户。在大多数情况下,为了安全地使用 EventBridge 日程安排,我们建议您创建单独的用户、群组或角色,这些用户、群组或角色仅具有使用 EventBridge 日程安排程序所需的权限。 EventBridge 对于常见用例,计划程序支持以下托管策略。
-
AmazonEventBridgeSchedulerFullAccess— 使用控制台和,授予对 EventBridge 调度程序的完全访问权限。API
-
AmazonEventBridgeSchedulerReadOnlyAccess— 授予对 EventBridge 日程安排器的只读访问权限。
您可以像在上一步中附加策略一样将这些托管AdministratorAccess
策略附加到您的IAM委托人。有关使用基于身份的IAM策略管理 EventBridge 日程安排程序访问权限的更多信息,请参阅。在调度程序中使用基于身份的策略 EventBridge
设置执行角色
执行IAM角色是指 EventBridge 调度员为了代表你与其他人互动而扮演 AWS 服务 的角色。您可以将权限策略附加到此角色以授予 EventBridge 调度程序调用目标的访问权限。
在使用控制台创建新计划时,也可以创建新的执行角色。如果您使用控制台,S EventBridge cheduler 会代表您创建一个角色,其权限基于您选择的目标。当 EventBridge Scheduler 为您创建角色时,该角色的信任策略包括限制哪些委托人可以代表您担任角色的条件键。这样可以防范潜在的混淆代理安全问题。
以下步骤介绍如何创建新的执行角色以及如何授予 EventBridge 调度器调用目标的访问权限。本主题介绍常用模板化目标的权限。有关为其他目标添加权限的信息,请参阅 在调度器中 EventBridge 使用模板化目标。
要使用创建执行角色 AWS CLI
-
复制以下代入角色JSON策略并将其另存为本地
Scheduler-Execution-Role.json
。此信任策略允许 EventBridge 调度员代表您担任该角色。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
重要
要在生产环境中设置执行角色,我们建议实施额外的保护措施,以防止出现混淆代理问题。有关更多信息和示例策略,请参阅 EventBridge 调度器中的副手预防混乱。
-
在 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" } ] } } }
-
要创建允许 EventBridge 调度器调用目标的新策略,请选择以下常用目标之一。复制JSON权限策略并将其作为
.json
文件保存在本地。 -
运行以下命令,新建权限策略。将
替换为您想授予此策略的名称。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" } }
-
要将该策略附加到您的执行角色,请运行以下命令。
替换ARN为您在上一步中创建的策略。将your-policy-arn
替换为您执行角色的名称。SchedulerExecutionRole
$
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-nameSchedulerExecutionRole
该
attach-role-policy
操作不会在命令行上返回响应。
设置目标
在创建 EventBridge 调度程序计划之前,至少需要一个目标供调度调用。您可以使用现有 AWS 资源,也可以创建新资源。以下步骤说明如何使用创建新的标准 Amazon SQS 队列 AWS CloudFormation。
创建新的 Amazon SQS 队列
-
复制以下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" ] } } } } -
在中 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" }
-
运行以下命令以查看 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 调度器调度程序并调用目标。