Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器

Posted

技术标签:

【中文标题】Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器【英文标题】:Terraform aws - Unable to create AWS SFTP server using terraform script 【发布时间】:2020-10-16 04:37:51 【问题描述】:

我正在尝试使用terraform 脚本创建AWS SFTP 服务器。

我可以使用terraform validate 命令进行验证,也可以使用terraform plan 制定计划

但我在尝试运行 terraform apply 命令时遇到错误

错误:创建传输服务器时出错:InvalidRequestException:必须指定 IdentityProviderType 和 IdentityProviderDetails 在 .terraform/modules/sftp/sftp.tf 第 1 行,在资源“aws_transfer_server”“sftp”中: 1:资源“aws_transfer_server”“sftp”

我在我的脚本中提供了identity_provider_type = "SERVICE_MANAGED",但我仍然收到错误并且无法创建 AWS SFTP 服务器。

这是我的脚本

sftp.tf

provider "aws" 
   version = "~> 2.0"
   region  = "us-east-1"


resource "aws_transfer_server" "sftp" 
  identity_provider_type = "SERVICE_MANAGED"
  invocation_role = "arn:aws:iam::<id>"

  tags = 
        NAME     = "test-sftp"
  

ma​​in.tf

provider "aws" 
    version = "~> 2.0"
    region  = "us-east-1"


module "sftp" 
    source = "/home/sasi/TerraForm/terraform-scripts/modules/sftp"
    aws-transfer-server-name = "test-sftp"
    iam-role-name-for-sftp = "test-sftp-role"
    s3-access-policy-name = "s3-specific-bucket-access"
    sftp-user-name = "sasi-sftp"
    sftp-s3-bucket-name = "/sasi-learn-test-bucket"
    ssh-public-key-file-location = "$file("/home/sasi/TerraForm/terraform-scripts/modules/sftp/rsa.pub")"

【问题讨论】:

这听起来像是 AWS 提供商的一个错误,所以我很想raise it as an issue there。 【参考方案1】:

identity_provider_typeSERVICE_MANAGED 时,您似乎不需要invocation_role。以下是来自 Terraform 传输服务器资源 page 的信息:

invocation_role - (Optional) Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an identity_provider_type of API_GATEWAY.

由于您的identity_provider_type 不是API_GATEWAY,您可以尝试不提供invocation_role

【讨论】:

感谢您的回答,但它没有解决错误。我尝试通过添加具有有效角色的 invocation_role 属性,但仍然遇到与上述相同的错误 什么是 AWS 提供商和 Terraform 版本? 这是我的 aws 提供者版本属性 version = "~> 2.0" 我也更新了我的 main.tf(configuration) 脚本 我可以找到“terraform-provider-aws_v2.67.0_x4”文件,所以似乎 terraform aws provider 2.67.0 是我运行脚本时使用的版本

以上是关于Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器

为啥我使用 terraform 资源 aws_route53_record 创建的 Route53 记录无法公开解析?

Terraform 0.11:无法将动态安全组添加到 aws 实例

Terraform AWS:无法将先前创建的 root_block_device 与使用 aws_launch_configuration 启动的 AWS EC2 实例重用

Terraform AWS 中转网关和 *** 静态路由

通过 terraform 在 aws 中创建 VPC 问题