【问题标题】:How to : terraform snowflake stage credentials and use AWS IAM role arn如何:terraform 雪花阶段凭证并使用 AWS IAM 角色 arn
【发布时间】:2021-10-17 10:55:53
【问题描述】:

我正在尝试对 snowflake_stage 进行 Terraform 并使用来自 IAM 角色的 arn(也已被 terraformed)作为凭据。 Snowflake SQL 在我使用时有效:

create stage dev
  URL='s3://name_of_bucket/'
  storage_integration = dev_integration
  credentials=(AWS_ROLE='arn:aws:iam:999999999999:role/service-role-name')
  encryption=(TYPE='AWS_SSE_KMS' KMS_KEY_ID='aws/key')
  FILE_FORMAT=DATABASE.PUBLIC.SCHEMA.FORMAT_NAME
  COPY_OPTION=(ON_ERROR='CONTINUE' PURGE='FALSE' RETURN_FAILED_ONLY='TRUE');

但是当我尝试使用以下方法编写等效的 Terraform 资源“snowflake_stage”时:

resource "snowflake_stage" "stage" {
  name = "dev"
  url  = "s3://name_of_bucket/"
  storage_integration = "dev_integration"
  schema = "public"
  credentials = "AWS_ROLE='aws_iam_role.snowflake_stage.arn'"
  encryption = "(TYPE='AWS_SSE_KMS' KMS_KEY_ID='aws/key')
  file_format = "DATABASE.PUBLIC.SCHEMA.FORMAT_NAME"
  copy_options = "(ON_ERROR='CONTINUE' PURGE='FALSE' RETURN_FAILED_ONLY='TRUE')"
}

我得到: SQL 编译错误:参数“{1}

的值无效 [不是属性列表:TOK_LIST]

加密上的值似乎需要“AWS_ROLE='..'”才有效。

我试过只使用:

credentials = aws_iam_role.snowflake_stage.arn

但出现了一组不同的错误。

如何组合:

credentials = "AWS_ROLE='

与 aws_iam_role.snowflake_stage.arn 然后附加:

`)"

对于凭证值?

【问题讨论】:

  • 我也试过:credentials = "AWS_ROLE='${aws_iam_role.snowflake_stage.arn}'" and credentials = "(AWS_ROLE='${aws_iam_role.snowflake_stage.arn}')" with the同样的错误。

标签: amazon-web-services terraform snowflake-cloud-data-platform amazon-iam terraform0.12+


【解决方案1】:

首先,您在encryption 中缺少关闭"。应该是:

encryption = "(TYPE='AWS_SSE_KMS' KMS_KEY_ID='aws/key')"

其次,对于角色:

credentials = "AWS_ROLE='${aws_iam_role.snowflake_stage.arn}'" 

【讨论】:

    【解决方案2】:

    这有点晚了,但加密应该是:

    encryption = "TYPE='AWS_SSE_KMS' KMS_KEY_ID='aws/key'"
    

    而不是:

    encryption = "(TYPE='AWS_SSE_KMS' KMS_KEY_ID='aws/key')"
    

    此外,只要您使用适当的角色和角色权限(S3、KMS 和 STS 策略文档)对其进行配置,就可以自行使用存储集成 然后你可以摆脱加密和凭据字段。

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多