我想使用 Amazon Simple Notification Service(Amazon SNS)在 AWS Systems Manager 中创建修补通知。
简短描述
您可以通过将 Amazon SNS 与补丁管理器(AWS Systems Manager 的一项功能)集成为补丁管理器维护时段创建可自定义的通知。
**重要事项:**要创建可自定义的通知,请配置修补维护时段。
要使用 Systems Manager 为维护时段修补操作创建通知,请完成以下步骤:
- 为修补通知创建并订阅 Amazon SNS 主题。
- 创建 AWS Identity and Access Management(IAM)策略和 IAM 角色,以便 Systems Manager 发布到 SNS 主题。
- 在您的 Run Command 中指定 SNS 主题,Run Command 是 AWS Systems Manager 的一项功能。
解决方法
为修补通知创建 SNS 主题
首先,创建一个 SNS 主题:
- 打开 Amazon SNS 控制台。
- 选择您在修补的 AWS 区域。
- 在导航窗格中,选择主题。
- 选择创建主题。
- 选择 FIFO 或标准。
- 输入主题的名称。
- (可选)根据您的用例配置其余的设置。
- 选择创建主题。请注意以下各部分中要使用的 ARN 主题。
然后,使用您的首选联系方式订阅该联系人。
设置所需的 IAM 策略和角色,以便 Systems Manager 发布到 SNS 主题
首先,设置所需的 IAM 策略:
1. 打开 IAM 控制台。
2. 在导航窗格中,选择策略,然后选择创建策略。
3. 选择 JSON 选项卡。
4. 将默认 JSON 内容替换为以下内容:
**注意:**将 REGION 替换为您正在使用的区域,并将 ACCOUNT-ID 替换为您的 AWS 账户 ID。将 SNS-TOPIC-NAME 替换为您的 SNS 主题的名称。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["sns:Publish"],
"Resource": "arn:aws:sns:{REGION}:{ACCOUNT-ID}:{SNS-TOPIC-NAME}"
}
]
}
**注意:**您可以在 ARN 下的 SNS 主题页面中找到您的主题的特定资源 ARN。
5. 选择下一步: 标记。
6. (可选)添加一个或多个标记密钥值对以组织、跟踪或控制此策略的访问权限。然后,选择下一步: 审核。
7. 输入内联策略的名称。
8. (可选)输入策略的描述。
9. 选择创建策略。
然后,设置所需的 IAM 角色:
1. 打开 IAM 控制台。
2. 在导航窗格中,选择角色,然后选择创建角色。
3. 选择 AWS 服务角色类型,然后选择 Systems Manager。选择 Systems Manager 用例。
4. 在附加权限策略页面上,搜索您在上一节中创建的策略。然后,选择自定义策略的名称。
5. (可选)设置权限边界。有关详细信息,请参阅 IAM 实体的权限边界。
6. 选择下一步。
7. 输入角色名称和角色描述。
8. 选择编辑(在步骤 1: 选择可信实体或步骤 2: 选择权限部分中),以编辑角色的用例和权限。
9. 查看角色,然后选择创建角色。请注意以下部分的 IAM 角色名称。
要在维护时段中使用此角色,必须编辑维护时候服务角色,允许传递新创建的角色。对于资源,请指定您创建的角色的 ARN。有关详细信息,请参阅使用控制台配置维护时段的权限。
要完成 IAM 角色设置,请创建新策略,或使用以下值更新维护时候的内联策略:
**注意:**将 ACCOUNT-ID 替换为您的账户 ID,将 SNS-TOPIC-NAME 替换为您的 SNS 主题名称。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::{ACCOUNT_ID}:role/{SNS-TOPIC-ROLE}"
}
]
}
在 Run Command 中指定 SNS 主题
在 Run Command 中指定 SNS 主题:
- 打开 AWS Systems Manager 控制台。
- 在导航窗格中,选择维护时段。
- 选择执行修补的维护时段。
- 对于任务,选择 AWS-RunPatchBasline Run Command 任务或其他您想收到通知的 Run Command 任务,然后选择编辑。
- 对于 SNS 通知,请选择启用 SNS 通知。
- 输入您在上一部分中创建的 IAM 角色。
- 输入您在上一部分中创建的 SNS 主题 ARN。
- (可选)对于事件类型,选择您想收到通知的事件类型。例如,超时和尝试失败。
- 选择保存更改。
现在,已针对您为修补维护时段选择的命令和事件类型设置好了 SNS 通知。
以下是电子邮件通知示例:
{"commandId":"abcdef12-1234-1234-1234-abcdef123456",
"documentName":"AWS-RunPatchBaseline",
"instanceId":"i-abcdefg1234567",
"requestedDateTime":"2023-01-01T00:00:00.000Z",
"status":"Failed",
"detailedStatus":"Failed",
"eventTime":"2023-01-1T00:02:00.00Z"}