Terraform创建AWS EventBridge-API目标连接时授权错误排查问询
问题分析与修复方案
错误核心原因
Error: creating EventBridge connection (xxxxx): ValidationException: Failed to create the connection(s). Failed to create the secret because the user is not authorized to perform the operation on secret 'events!connection/xxxx/xxxx'. [...] status code: 400, request id: xxxx
这个错误源于两个关键点:
- Terraform执行角色权限不足:当EventBridge连接使用
API_KEY这类需要存储凭证的授权类型时,会自动在Secrets Manager中创建对应名称的秘密资源,而当前执行Terraform的IAM角色没有操作该秘密的权限。 - 连接配置不符合实际需求:你明确说明Webhook无需认证,但却配置了
API_KEY授权类型,这会触发EventBridge创建不必要的Secret,进而暴露权限问题。
修复步骤
1. 修正EventBridge连接配置(优先推荐)
既然Webhook不需要认证,直接将授权类型改为NONE,彻底避免EventBridge创建Secret:
resource "aws_cloudwatch_event_connection" "this" { name = "xxx" authorization_type = "NONE" }
2. 若必须保留API_KEY授权(特殊场景)
如果因业务需求必须使用API_KEY类型,需要给Terraform执行角色补充以下Secrets Manager权限:
secretsmanager:CreateSecretsecretsmanager:PutSecretValuesecretsmanager:GetSecretValue
可选添加secretsmanager:DeleteSecret用于销毁资源时清理Secret。
示例IAM策略片段:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:PutSecretValue", "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:events!connection/*" } ] }
对原问题的解答
这个问题是连接配置不合理+Terraform执行角色缺少权限共同导致的,优先修正连接配置即可解决问题;若必须保留API_KEY授权,则需要补充IAM权限,不需要在.tf文件中为现有资源添加关联策略。
内容的提问来源于stack exchange,提问作者benjimin
相关产品推荐
相关产品推荐

