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

如何通过Terraform将Secrets Manager中已有账号密码分配给OpenSearch实例

从AWS Secrets Manager导入凭据配置OpenSearch高级安全

要实现从Secrets Manager复用已有凭据配置OpenSearch的主用户,你需要通过Terraform数据源拉取秘密并解析后注入资源配置,具体步骤如下:

1. 配置Secrets Manager数据源

使用aws_secretsmanager_secret_version数据源获取目标秘密的最新版本。假设你的秘密以JSON格式存储(结构如{"master_username": "xxx", "master_password": "xxx"}),配置如下:

data "aws_secretsmanager_secret_version" "opensearch_master_creds" {
  secret_id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:opensearch-master-creds-xxxxxx" # 替换为你的秘密ARN或名称
}

# 解析JSON格式的秘密内容
locals {
  opensearch_master_creds = jsondecode(data.aws_secretsmanager_secret_version.opensearch_master_creds.secret_string)
}

2. 修改OpenSearch资源配置

将master_user_options中的明文凭据替换为解析后的本地变量值:

resource "aws_opensearch_domain" "example" {
  domain_name    = "ggkitty"
  engine_version = "Elasticsearch_7.1"

  cluster_config {
    instance_type = "r5.large.search"
  }

  advanced_security_options {
    enabled                        = true
    anonymous_auth_enabled         = true
    internal_user_database_enabled = true
    master_user_options {
      master_user_name     = local.opensearch_master_creds.master_username
      master_user_password = local.opensearch_master_creds.master_password
    }
  }

  encrypt_at_rest {
    enabled = true
  }

  domain_endpoint_options {
    enforce_https       = true
    tls_security_policy = "Policy-Min-TLS-1-2-2019-07"
  }

  node_to_node_encryption {
    enabled = true
  }

  ebs_options {
    ebs_enabled = true
    volume_size = 10
  }
}

关键注意事项

  • 权限要求: 执行Terraform的IAM角色必须拥有secretsmanager:GetSecretValue权限,否则无法拉取秘密内容。
  • 秘密格式: 如果你的秘密不是JSON格式(比如纯文本),可以直接使用data.aws_secretsmanager_secret_version.opensearch_master_creds.secret_string,但推荐用JSON存储多字段凭据。
  • 秘密版本: 默认拉取最新版本,如需指定版本可添加version_id或version_stage参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:03:12