diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl index 3e5d925..5b1301e 100644 --- a/.terraform.lock.hcl +++ b/.terraform.lock.hcl @@ -44,21 +44,21 @@ provider "registry.terraform.io/hashicorp/time" { } provider "registry.terraform.io/snowflake-labs/snowflake" { - version = "0.98.0" - constraints = "~> 0.98.0" + version = "0.99.0" + constraints = "~> 0.99.0" hashes = [ - "h1:px+EFfOhP61pBTUNTbXk2c/NeE9ugXSCOTnf4lhHFSw=", - "zh:1c3d66b9d71b97047b2829ba73f6d7f322d91834b9d838f79322a2fea9c6a785", - "zh:2a3129968cda811d93f08b0fe04a2732dd106bb535d0e5b158c41fd7ea82846b", - "zh:36760fb23b17137d692a3971ef20e1c7a06af0521c6609bd0427c1245b2acf31", - "zh:3c42997f5477baa783fb2e3bba7f4733bd03c5dd77f03cf537b0e38f39a3298f", - "zh:5730d7704c69a14d74e24387549a4e31413acb7725797e51a4af9bb6e3c1321a", - "zh:592bb2f51e862ca200a43beeff07fd9afebc4276fa3bb26a96ce843592f429af", - "zh:ae0497b8055f129b10629822de620ca685f80c6cb14c5e7bc046f45377e830ef", - "zh:da2910d051cfc49d9f76542f8f926d0e6cb4c62b1c35178c0849cf065fa09e6b", - "zh:e42fbbe7c231493ed5cca572bf10a7c107b3aac9eda76868e91836dc486ea674", - "zh:ec1b96583cce1e6c06a9b7302c7ce741bb33363dca50d7515a0f3ea8138ee57d", - "zh:f1170a933fb13c573449f692c51d1073560625bb72110a0b13b6cc6e930589d4", + "h1:E8hN5nV1oGhnMvlKEMwzrmF4noxM6hpL5q8yJrHnG4U=", + "zh:148dde9fb9604e863a8a6ad3f3b62080feb57909c2a773e7de9fe2825c506675", + "zh:173ff842701344d28af0aa20419cedea274ae9f780d10ce6c1d4edfafeb473be", + "zh:2be74555623eb2ab65c81cfef6e58f0b023aec2f824f8acae1e580ae6ce636fe", + "zh:60e61d08609c2d593598bed706b5527252aef7facdf60cc5fb723709662c96c0", + "zh:6ddd44bccc5bb8639218405defaa79dfec81f63dccd260e6744584506e3c8326", + "zh:6fdfa10e4ba95345ad4fc82e0ad46ff2bea2f9d42f5af5a2ad2d8eb789b51afa", + "zh:a4d9b65fd9d7996dd8336fee22d4a60c658a4f5c9c56531c145b6b3a60a9701a", + "zh:a7a7cf97842abbb31a8e66dfe2515a9675619bd603982cbdde0ed174c72df674", + "zh:c24ff15f194e6da1ca0288b96c551e3555a2f8e01c79d9f6b18ab82d977389bf", + "zh:c70e0abafd92dd27d286e46138d3271c0cd93363b278e853d5e0de67c5b23f1a", + "zh:edbcf3168f2cf7810c3ae8eb30f5f374b3dca906df86711776df45d971f1e5e7", "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 19bf580..4557622 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. The format is base on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.37.00.000] - 2024-11-22 +### Added +- [Issue #66](https://github.com/j3-signalroom/iac-snowflake-resources-tf/issues/66) + +### Changed +- [Issue #67](https://github.com/j3-signalroom/iac-snowflake-resources-tf/issues/67) + ## [0.37.00.000] - 2024-11-22 ### Changed - Upgraded the version of Terraform AWS Provider to `5.77.0`, and Terraform Snowflake Provider to `0.98.0`. diff --git a/main.tf b/main.tf index 7893656..3ad5113 100644 --- a/main.tf +++ b/main.tf @@ -18,7 +18,7 @@ terraform { } snowflake = { source = "Snowflake-Labs/snowflake" - version = "~> 0.98.0" + version = "~> 0.99.0" } } } diff --git a/snowflake-securityadmin-resources.tf b/snowflake-securityadmin-resources.tf index 223ea90..83b0932 100644 --- a/snowflake-securityadmin-resources.tf +++ b/snowflake-securityadmin-resources.tf @@ -1,10 +1,17 @@ provider "snowflake" { - alias = "security_admin" - role = "SECURITYADMIN" - account = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"] - user = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["admin_user"] - authenticator = "JWT" - private_key = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["active_rsa_public_key_number"] == 1 ? data.aws_secretsmanager_secret_version.admin_private_key_1.secret_string : data.aws_secretsmanager_secret_version.admin_private_key_2.secret_string + alias = "security_admin" + role = "SECURITYADMIN" + + # The most recently version of Snowflake Terraform Provider requires the + # `organization_name` and `account_name` to be set, whereas the previous + # versions did not require this. That is why we are setting these values + # here. Plus, `account` as been deprecated in favor of `account_name`. + organization_name = "${split("-", jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"])[0]}" + account_name = "${split("-", jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"])[1]}" + + user = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["admin_user"] + authenticator = "JWT" + private_key = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["active_rsa_public_key_number"] == 1 ? data.aws_secretsmanager_secret_version.admin_private_key_1.secret_string : data.aws_secretsmanager_secret_version.admin_private_key_2.secret_string } resource "snowflake_account_role" "role" { diff --git a/snowflake-sysadmin-resources.tf b/snowflake-sysadmin-resources.tf index 4dcd9d4..82d2447 100644 --- a/snowflake-sysadmin-resources.tf +++ b/snowflake-sysadmin-resources.tf @@ -1,9 +1,16 @@ provider "snowflake" { - role = "SYSADMIN" - account = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"] - user = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["admin_user"] - authenticator = "JWT" - private_key = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["active_rsa_public_key_number"] == 1 ? data.aws_secretsmanager_secret_version.admin_private_key_1.secret_string : data.aws_secretsmanager_secret_version.admin_private_key_2.secret_string + role = "SYSADMIN" + + # The most recently version of Snowflake Terraform Provider requires the + # `organization_name` and `account_name` to be set, whereas the previous + # versions did not require this. That is why we are setting these values + # here. Plus, `account` as been deprecated in favor of `account_name`. + organization_name = "${split("-", jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"])[0]}" + account_name = "${split("-", jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["account"])[1]}" + + user = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["admin_user"] + authenticator = "JWT" + private_key = jsondecode(data.aws_secretsmanager_secret_version.admin_public_keys.secret_string)["active_rsa_public_key_number"] == 1 ? data.aws_secretsmanager_secret_version.admin_private_key_1.secret_string : data.aws_secretsmanager_secret_version.admin_private_key_2.secret_string } resource "snowflake_database" "example" {