使用 Terraform 在 AWS Opensearch 上注册快照存储库

问题描述 投票:0回答:1

我正在使用 Terraform OpenSearch Provider 1.0 在 AWS OpenSearch 1.3 上注册快照存储库

provider "opensearch" {
  alias               = "manager"
  url                 = local.opensearch_endpoint_url
  aws_region          = var.region
  aws_assume_role_arn = local.opensearch_snapshot_manager_role_arn
}
resource "opensearch_snapshot_repository" "this" {
  provider = opensearch.manager

  name = "main_s3"
  type = "s3"
  settings = {
    bucket   = var.snapshot_bucket_name
    region   = var.region
    role_arn = var.snapshot_role_arn
  }
}

使用我的个人 AWS 凭证在本地启动时,此代码可以成功运行。 但当从在 EKS 中运行并使用运行程序凭据的 Gitlab CI 运行程序启动时,它会失败。

╷
│ Error: NoCredentialProviders: no valid providers in chain. Deprecated.
│   For verbose messaging see aws.Config.CredentialsChainVerboseErrors
│ 
│   with module.opensearch_config[0].opensearch_snapshot_repository.this[0],
│   on modules/terraform-opensearch-config/main.tf line 60, in resource "opensearch_snapshot_repository" "this":
│   60: resource "opensearch_snapshot_repository" "this" {
│ 
╵

这个 CI 运行程序可以使用 Terraform AWS Provider 创建 AWS 资源,因此 CI 运行程序已正确设置。 该问题特定于 CI 运行程序和 Terraform Opensearch Provider 夫妇。

Terraform Opensearch Provider 如何解析 AWS 凭证?如何调试这个身份验证问题?

terraform amazon-opensearch terraform-provider-opensearch
1个回答
0
投票

源 IAM 角色中的策略禁止承担为 Opensearch 提供商创建的 IAM 角色。

在启动 Terraform 之前尝试运行

aws sts assume-role
显示了真正的错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.