gpt4 book ai didi

amazon-web-services - 在维护时段任务中配置 SNS 主题通知 IAM 角色

转载 作者:行者123 更新时间:2023-12-03 07:23:56 24 4
gpt4 key购买 nike

我目前设置了一个 AWS 维护时段,以便使某些 EC2 实例中的某些内容保持最新。我想设置一个 SNS 主题,以便在其中一项任务无法正确运行时向我发送电子邮件。到目前为止,我有以下 Cloudformation 模板,可以正常部署:

   MaintenanceWindowTask1:
Type: AWS::SSM::MaintenanceWindowTask
Properties:
Name: UpdateSSMAgent
WindowId: !Ref MaintenanceWindow
Targets:
- Key: TargetIds
Values:
- !Ref MaintenanceWindowTarget
TaskArn: UpdateSSMAgent
TaskType: RUN_COMMAND
TaskInvocationParameters:
MaintenanceWindowRunCommandParameters:
Parameters:
version:
- "{{ssm:/ssm-version}}"
allowDowngrade:
- "true"
NotificationConfig:
NotificationArn: !Ref SnsTopic
NotificationEvents:
- Failed
NotificationType: Command
Priority: 1
MaxConcurrency: 100%
MaxErrors: 1

问题在于我没有在 CFN 堆栈中定义通知 IAM 角色,因此无法发布该主题。

我一生都找不到任何有关适当定义的文档,而且我不想通过控制台设置 SNS 主题使用的 IAM 角色。

有人有解决方案或知道 SNS 通知 IAM 角色的正确 CFN 定义吗?

最佳答案

SNS 角色应使用 ServiceRoleArn 传递。 AWS 文档中显示了它应该是什么:

在 CloudFormation 中,角色是:

SMMSNSRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- ssm.amazonaws.com
Action:
- 'sts:AssumeRole'
Path: /
Policies:
- PolicyName: PublishToSNS
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: 'sns:Publish'
Resource: '*'

或者,您可以在 AWS 控制台中创建角色,在 IAM 控制台中检查它以了解它到底是什么,然后在 CloudFormation 中重新创建它。

更新:

在您的代码中:

   MaintenanceWindowTask1:
Type: AWS::SSM::MaintenanceWindowTask
Properties:
Name: UpdateSSMAgent
WindowId: !Ref MaintenanceWindow
Targets:
- Key: TargetIds
Values:
- !Ref MaintenanceWindowTarget
TaskArn: UpdateSSMAgent
TaskType: RUN_COMMAND
TaskInvocationParameters:
MaintenanceWindowRunCommandParameters:
Parameters:
version:
- "{{ssm:/ssm-version}}"
allowDowngrade:
- "true"
ServiceRoleArn: !GetAtt SMMSNSRole.Arn
NotificationConfig:
NotificationArn: !Ref SnsTopic
NotificationEvents:
- Failed
NotificationType: Command
Priority: 1
MaxConcurrency: 100%
MaxErrors: 1

关于amazon-web-services - 在维护时段任务中配置 SNS 主题通知 IAM 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65191513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com