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"
main.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_type
是SERVICE_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 实例重用