

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在调度程序中使用基于身份的策略 EventBridge
<a name="security_iam_id-based-policy-examples"></a>

默认情况下，用户和角色无权创建或修改 EventBridge 日程安排器资源。要授予用户对所需资源执行操作的权限，IAM 管理员可以创建 IAM 策略。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

有关 EventBridge 计划程序定义的操作和资源类型（包括每种资源类型的格式）的详细信息，请参阅《*服务授权*参考》中的 [Amazon S EventBridge cheduler 的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)。 ARNs 

**Topics**
+ [策略最佳实践](#security_iam_id-based-policies-best-practices)
+ [EventBridge 调度器权限](#security_iam_id-based-policies-permissions)
+ [AWS EventBridge 日程安排器的托管策略](#security_iam_id-based-policies-managed-policies)
+ [客户托管的 EventBridge 日程安排器策略](#security_iam_id-based-policies-customer-managed-policies)
+ [AWS 托管策略更新](#security_iam_id-based-policies-updates)

## 策略最佳实践
<a name="security_iam_id-based-policies-best-practices"></a>

基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 EventBridge 日程安排资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向用户和工作负载授予权限，请使用为许多常见用例授予权限的*AWS 托管策略*。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## EventBridge 调度器权限
<a name="security_iam_id-based-policies-permissions"></a>

 为了让 IAM 委托人（用户、群组或角色）在 EventBridge 调度器中创建计划并通过控制台或 API 访问 EventBridge 计划程序资源，委托人必须在其权限策略中添加一组权限。您可以根据主体的工作职能配置这些权限。例如，仅使用 EventBridge 调度程序控制台查看现有计划列表的用户或角色无需拥有调用 `CreateSchedule` API 操作所需的权限。我们建议您调整基于身份的权限，以便仅提供最低访问权限。

 以下列表显示了 EventBridge 调度程序的资源及其相应的支持的操作。
+ **计划**
  + `scheduler:ListSchedules`
  + `scheduler:GetSchedule`
  + `scheduler:CreateSchedule`
  + `scheduler:UpdateSchedule`
  + `scheduler:DeleteSchedule`
+ **计划组**
  + `scheduler:ListScheduleGroups`
  + `scheduler:GetScheduleGroup`
  + `scheduler:CreateScheduleGroup`
  + `scheduler:DeleteScheduleGroup`
  + `scheduler:ListTagsForResource`
  + `scheduler:TagResource`
  + `scheduler:UntagResource`

 您可以使用 EventBridge 计划程序权限来创建自己的客户托管策略，以便与 EventBridge 日程安排器一起使用。您还可以使用下一节中描述的 AWS 托管策略为常见用例授予必要的权限，而无需管理自己的策略。

## AWS EventBridge 日程安排器的托管策略
<a name="security_iam_id-based-policies-managed-policies"></a>

 AWS 通过提供用于 AWS 创建和管理的独立 IAM 策略来解决许多常见用例。*托管* 策略也称为预定义策略，可针对常见使用场景授予必要的权限，让您不必调查需要哪些权限。有关更多信息，请参阅*《IAM 用户指南》*中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。您可以将以下 AWS 托管策略附加到账户中的用户，这些托管策略特定于 S EventBridge cheduler：
+  **AmazonEventBridgeSchedulerFullAccess**

  授予对计划和 EventBridge 计划组使用所有日程安排程序操作的权限。

  要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [AmazonEventBridgeSchedulerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEventBridgeSchedulerFullAccess.html)**。
+  **AmazonEventBridgeSchedulerReadOnlyAccess** 

  授予只读权限，以查看有关您的调度和调度组的详细信息。

  要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [AmazonEventBridgeSchedulerReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEventBridgeSchedulerReadOnlyAccess.html.html)**。

## 客户托管的 EventBridge 日程安排器策略
<a name="security_iam_id-based-policies-customer-managed-policies"></a>

 使用以下示例为 EventBridge 计划程序创建您自己的客户托管策略。[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)允许您根据主体的工作职能，仅授予团队中应用程序和用户所需的操作和资源的权限。

**Topics**
+ [示例：`CreateSchedule`](#security_iam_id-based-policies-customer-managed-policies-create-schedule)
+ [示例：`GetSchedule`](#security_iam_id-based-policies-customer-managed-policies-get-schedule)
+ [示例：`UpdateSchedule`](#security_iam_id-based-policies-customer-managed-policies-update-schedule)
+ [示例：`DeleteScheduleGroup`](#security_iam_id-based-policies-customer-managed-policies-delete-schedule-group)

### 示例：`CreateSchedule`
<a name="security_iam_id-based-policies-customer-managed-policies-create-schedule"></a>

 创建新计划时，您可以选择是使用客户管理的密钥还是使用[客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)对 EventBridge [AWS 拥有的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)计划程序上的数据进行加密。

 以下策略允许主体使用 AWS 拥有的密钥创建计划并应用加密。使用时 AWS 拥有的密钥， AWS 可以为您管理 AWS Key Management Service (AWS KMS) 上的资源，因此您无需其他权限即可与之交互 AWS KMS。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Action":
            [
                "scheduler:CreateSchedule"
            ],
            "Effect": "Allow",
            "Resource":
            [
                "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "scheduler.amazonaws.com"
                }
            }
        }
    ]
}
```

------

 使用以下策略允许委托人创建计划并使用 AWS KMS 客户托管密钥进行加密。要使用客户托管密钥，委托人必须有权访问您账户中的 AWS KMS 资源。此策略授予对单个指定 KMS 密钥的访问权限，该密钥用于加密 EventBridge 计划程序上的数据。或者，您可以使用通配符 (`*`) 来授予对账户中所有密钥或与给定名称模式匹配的子集的访问权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Action":
            [
                "scheduler:CreateSchedule"
            ],
            "Effect": "Allow",
            "Resource":
            [
            "arn:aws:scheduler:us-east-1:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            ]
        },
        {
            "Action":
            [
                "kms:DescribeKey",
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Effect": "Allow",
            "Resource":
            [
                "arn:aws:kms:us-west-2:123456789012:key/my-key-id"
            ],
            "Condition": {
                "StringLike": {
                "kms:ViaService": "scheduler.us-east-1.amazonaws.com",
                    "kms:EncryptionContext:aws:scheduler:schedule:arn": "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            }
        }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "scheduler.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 示例：`GetSchedule`
<a name="security_iam_id-based-policies-customer-managed-policies-get-schedule"></a>

 使用以下策略允许主体获取有关计划的信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Action":
            [
                "scheduler:GetSchedule"
            ],
            "Effect": "Allow",
            "Resource":
            [
                "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            ]
        }
    ]
}
```

------

### 示例：`UpdateSchedule`
<a name="security_iam_id-based-policies-customer-managed-policies-update-schedule"></a>

 使用以下策略允许主体通过调用 `scheduler:UpdateSchedule` 操作来更新计划。与之类似`CreateSchedule`，该策略取决于计划是使用客户托管密钥还是客户托管密钥进行加密。 AWS KMS AWS 拥有的密钥 对于配置了的计划 AWS 拥有的密钥，请使用以下策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Action":
            [
                "scheduler:UpdateSchedule"
            ],
            "Effect": "Allow",
            "Resource":
            [
                "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "scheduler.amazonaws.com"
                }
            }
        }
    ]
}
```

------

 对于配置了客户托管的密钥的计划，请使用以下策略。此政策包括允许委托人访问您账户中的 AWS KMS 资源的额外权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Action":
            [
                "scheduler:UpdateSchedule"
            ],
            "Effect": "Allow",
            "Resource":
            [
            "arn:aws:scheduler:us-east-1:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
    ]
        },
        {
            "Action":
            [
                "kms:DescribeKey",
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Effect": "Allow",
            "Resource":
            [
                "arn:aws:kms:us-west-2:123456789012:key/{{my-key-id}}"
            ],
            "Condition": {
                "StringLike": {
                "kms:ViaService": "scheduler.us-east-1.amazonaws.com",
                    "kms:EncryptionContext:aws:scheduler:schedule:arn": "arn:aws:scheduler:us-east-1:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"
            }
        }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "scheduler.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 示例：`DeleteScheduleGroup`
<a name="security_iam_id-based-policies-customer-managed-policies-delete-schedule-group"></a>

 使用以下策略允许主体删除计划组。删除组时，还会删除与该组相关联的计划。删除该组的主体还必须拥有删除与该组关联的计划的权限。此策略授予主体对指定的计划组以及该组中的所有计划调用 `scheduler:DeleteScheduleGroup` 操作的权限：

**注意**  
 EventBridge 计划程序不支持为单个计划指定资源级别权限。例如，以下语句无效，不应包含在您的策略中：  
 `"Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/{{my-schedule-name}}"` 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "scheduler:DeleteSchedule",
            "Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/*"
        },
        {
            "Effect": "Allow",
            "Action": "scheduler:DeleteScheduleGroup",
            "Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/{{my-group}}/*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "scheduler.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## AWS 托管策略更新
<a name="security_iam_id-based-policies-updates"></a>


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
| [AmazonEventBridgeSchedulerFullAccess](#security_iam_id-based-policies-managed-policies)：新托管策略 | EventBridge Scheduler 增加了对新托管策略的支持，该策略允许用户完全访问所有资源，包括计划和计划组。 | 2022 年 11 月 10 日 | 
| [AmazonEventBridgeSchedulerReadOnlyAccess](#security_iam_id-based-policies-managed-policies)：新托管策略 | EventBridge Scheduler 增加了对新托管策略的支持，该策略向用户授予对所有资源（包括计划和计划组）的只读访问权限。 | 2022 年 11 月 10 日 | 
| [AmazonEventBridgeSchedulerReadOnlyAccess](#security_iam_id-based-policies-managed-policies)— 更新了托管策略 | EventBridge 计划程序更新了`AmazonEventBridgeSchedulerReadOnlyAccess`托管策略，使用通配符操作（`scheduler:List*`和`scheduler:Get*`），以确保在添加新的只读操作后，策略保持最新状态。 | 2026年3月25日 | 
| EventBridge 日程安排器开始跟踪更改 | EventBridge 计划程序开始跟踪其 AWS 托管策略的更改。 | 2022 年 11 月 10 日 | 