You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform的IAM策略中引用Athena工作组ARN作为主体

如何在KMS IAM策略中引用Athena工作组的ARN(Terraform)
  • 同一配置/模块内直接引用资源属性
    你不需要通过output来引用该ARN,因为output是用于将值暴露给外部(如其他模块、外部读取Terraform state)的。在同一个Terraform配置文件里,直接使用Athena工作组资源的arn属性即可:

    修改后的策略代码:

    statement {
      sid       = ""
      effect    = "Allow"
      resources = ["*"]
    
      actions = [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*",
      ]
    
      principals {
        type        = "AWS"
        identifiers = [aws_athena_workgroup.athena_workgroup.arn]
      }
    }
    
  • 跨模块引用的情况
    如果KMS策略和Athena工作组不在同一个Terraform模块里,需要按以下步骤操作:

    1. 保留工作组所在模块outputs.tf中已定义的输出:
    output "workgroup_arn" {
      description = "arn of newly created Athena workgroup."
      value       = aws_athena_workgroup.athena_workgroup.arn
    }
    
    1. 在策略所在模块中声明模块引用(假设模块名为athena_workgroup_module):
    module "athena_workgroup_module" {
      source = "./path/to/your/workgroup/module"
      # 填写模块所需的其他变量
    }
    
    1. 在策略中引用模块的输出值:
    statement {
      sid       = ""
      effect    = "Allow"
      resources = ["*"]
    
      actions = [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*",
      ]
    
      principals {
        type        = "AWS"
        identifiers = [module.athena_workgroup_module.workgroup_arn]
      }
    }
    

内容的提问来源于stack exchange,提问作者Kaysss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:18:22