Terraform 如何在AWS事件桥中创建自定义事件总线?

Terraform 如何在AWS事件桥中创建自定义事件总线?,terraform,terraform-provider-aws,aws-event-bridge,Terraform,Terraform Provider Aws,Aws Event Bridge,我在网上找不到文档或示例Terraform模块 如何在AWS事件桥中创建自定义事件总线?在撰写本文时,AWS的Terraform提供程序尚不支持创建事件桥事件总线 我们必须使用默认事件总线,或者使用AWS CLI或控制台创建它 警告:EventBridge目前有几个严重的IAM漏洞:您不能限制IAM主体也可以发布事件的总线,它使用服务主体而不是服务链接角色主体来访问诸如用于加密总线的KMS密钥之类的内容 您可以使用null_资源provisioner作为缺少的提供程序资源的解决方案(假设您使用环

我在网上找不到文档或示例Terraform模块


如何在AWS事件桥中创建自定义事件总线?

在撰写本文时,AWS的Terraform提供程序尚不支持创建事件桥事件总线

我们必须使用默认事件总线,或者使用AWS CLI或控制台创建它

警告:EventBridge目前有几个严重的IAM漏洞:您不能限制IAM主体也可以发布事件的总线,它使用服务主体而不是服务链接角色主体来访问诸如用于加密总线的KMS密钥之类的内容

您可以使用null_资源provisioner作为缺少的提供程序资源的解决方案(假设您使用环境变量或IAM实例配置文件来验证AWS提供程序):


如果您使用的是命名的AWS配置文件而不是环境变量,则需要使用
--profile profile\u name
指定,与在shell上运行时相同。

存在一个涉及terraform中不支持事件桥的票证:

通过引用github用户的以下代码片段,terraform hack中的cloudformation支持在terraform中声明事件桥:

resource "aws_cloudformation_stack" "eventbridge_bus" {   
  name = "eventbridge-bus"
  template_body = <<EOF 
Resources:
  EventBus:
    Type: AWS::Events::EventBus
    Properties:
      Name: bus-name
EOF
}
resource“aws\u cloudformation\u stack”“eventbridge\u bus”{
name=“eventbridge总线”

template_body=随着对的最新更新,另一个答案中提到的EOFtemplate_body样式不再是指定CloudFormation堆栈的首选方式。下面是一个使用新堆栈声明样式的代码片段示例,该样式实现了相同的功能(提供自定义EventBridge总线):

资源“aws\u云信息\u堆栈”“事件桥\u总线”{
name=“eventbridge总线”

template_body=这还不受支持。我们必须使用默认事件总线,或使用AWS CLI或控制台创建它。EventBridge目前存在两个严重的IAM差距:您无法限制IAM主体也可以发布事件的总线,它使用服务主体而不是服务链接角色主体来访问KMS等内容ys用于加密总线。可能还需要6个月才能完成烘焙…这不起作用。这是我使用此配置执行terraform init时得到的结果,非常奇怪,但其中的某些字符序列会引发错误。但是--复制/粘贴帖子中链接的github问题的原始文件确实有效。视觉上完全相同。
resource "aws_cloudformation_stack" "eventbridge_bus" {   
  name = "eventbridge-bus"
  template_body = <<EOF 
Resources:
  EventBus:
    Type: AWS::Events::EventBus
    Properties:
      Name: bus-name
EOF
}
resource "aws_cloudformation_stack" "eventbridge_bus" {
  name = "eventbridge-bus"

  template_body = <<STACK
{
  "Resources" : {
    "bus" : {
      "Type" : "AWS::Events::EventBus",
      "Properties" : {
        "Name": "bus-name"
      }
    }
  }
}
STACK
}