@@ -64,22 +64,23 @@ module "cloud_logs" {
6464
6565locals  {
6666  use_kms_module     =  . kms_encryption_enabled_buckets  &&  var. existing_kms_key_crn  ==  null 
67-   kms_region         =  . kms_encryption_enabled_buckets  ?  module. existing_kms_crn_parser [0 ]. region  :  null 
68-   existing_kms_guid  =  . kms_encryption_enabled_buckets  ?  module . existing_kms_crn_parser [ 0 ] . service_instance   :   var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [0 ]. service_instance  :  null 
69-   kms_service_name   =  . kms_encryption_enabled_buckets  ?  module . existing_kms_crn_parser [ 0 ] . service_name   :   var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [0 ]. service_name  :  null 
70-   kms_account_id     =  . kms_encryption_enabled_buckets  ?  module . existing_kms_crn_parser [ 0 ] . account_id   :   var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [0 ]. account_id  :  null 
67+   kms_region         =  . kms_encryption_enabled_buckets  ?  var . existing_kms_key_crn   !=   null   ?  module . existing_kms_key_crn_parser [ 0 ] . region   :   module. existing_kms_crn_parser [0 ]. region  :  null 
68+   existing_kms_guid  =  . kms_encryption_enabled_buckets  ?  var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [ 0 ] . service_instance   :  module . existing_kms_crn_parser [0 ]. service_instance  :  null 
69+   kms_service_name   =  . kms_encryption_enabled_buckets  ?  var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [ 0 ] . service_name   :  module . existing_kms_crn_parser [0 ]. service_name  :  null 
70+   kms_account_id     =  . kms_encryption_enabled_buckets  ?  var. existing_kms_key_crn  !=  null  ?  module. existing_kms_key_crn_parser [ 0 ] . account_id   :  module . existing_kms_crn_parser [0 ]. account_id  :  null 
7171
7272  data_bucket_name     =  " ${ local . prefix } ${ var . cloud_logs_data_cos_bucket_name } " 
7373  metrics_bucket_name  =  " ${ local . prefix } ${ var . cloud_logs_metrics_cos_bucket_name } " 
7474  cos_instance_guid    =  . existing_cos_instance_crn_parser . service_instance 
7575
76-   key_ring_name  =  " ${ local . prefix } ${ var . cloud_logs_cos_key_ring_name } " 
77-   key_name       =  " ${ local . prefix } ${ var . cloud_logs_cos_key_name } " 
76+   key_ring_name  =  local . use_kms_module   ?   " ${ local . prefix } ${ var . cloud_logs_cos_key_ring_name } "   :   null 
77+   key_name       =  local . use_kms_module   ?   " ${ local . prefix } ${ var . cloud_logs_cos_key_name } "   :   null 
7878  kms_key_crn    =  . kms_encryption_enabled_buckets  ?  var. existing_kms_key_crn  !=  null  ?  var. existing_kms_key_crn  :  module. kms [0 ]. keys [format (" %s.%s" . key_ring_name , local. key_name )]. crn  :  null 
79-   kms_key_id     =  . existing_kms_instance_crn  !=  null  ?  module. kms [0 ]. keys [format (" %s.%s" . key_ring_name , local. key_name )]. key_id   :  var . existing_kms_key_crn   !=   null   ?  module . existing_kms_key_crn_parser [ 0 ] . resource  :  null 
79+   kms_key_id     =  . existing_kms_key_crn   !=   null   ?  module . existing_kms_key_crn_parser [ 0 ] . resource   :  var . existing_kms_instance_crn  !=  null  ?  module. kms [0 ]. keys [format (" %s.%s" . key_ring_name , local. key_name )]. key_id  :  null 
8080
81-   create_cross_account_auth_policy      =  . existing_cloud_logs_crn  ==  null  ?  ! var. skip_cos_kms_iam_auth_policy  &&  var. ibmcloud_kms_api_key  ==  null  ?  false  :  true  :  false 
81+   create_cross_account_auth_policy      =  . existing_cloud_logs_crn  ==  null  ?  ! var. skip_cos_kms_iam_auth_policy  &&  var. ibmcloud_kms_api_key  ==  null  &&  var . ibmcloud_cos_api_key   ==   null   ?  false  :  true  :  false 
8282  create_cross_account_cos_auth_policy  =  . existing_cloud_logs_crn  ==  null  &&  var. ibmcloud_cos_api_key  !=  null  &&  ! var. skip_cloud_logs_cos_auth_policy 
83+   is_same_cross_account                 =  . ibmcloud_kms_api_key  ==  var. ibmcloud_cos_api_key 
8384}
8485
8586module  "existing_cos_instance_crn_parser"  {
@@ -99,7 +100,7 @@ module "buckets" {
99100    {
100101      bucket_name              =  local.data_bucket_name
101102      kms_key_crn              =  var.kms_encryption_enabled_buckets ?  local.kms_key_crn :  null 
102-       kms_guid                 =  var.kms_encryption_enabled_buckets ?  module.existing_kms_crn_parser[ 0 ].service_instance  :  null 
103+       kms_guid                 =  var.kms_encryption_enabled_buckets ?  local.existing_kms_guid  :  null 
103104      kms_encryption_enabled   =  var.kms_encryption_enabled_buckets
104105      region_location          =  var.region
105106      resource_instance_id     =  var.existing_cos_instance_crn
@@ -120,7 +121,7 @@ module "buckets" {
120121    {
121122      bucket_name                   =  local.metrics_bucket_name
122123      kms_key_crn                   =  var.kms_encryption_enabled_buckets ?  local.kms_key_crn :  null 
123-       kms_guid                      =  var.kms_encryption_enabled_buckets ?  module.existing_kms_crn_parser[ 0 ].service_instance  :  null 
124+       kms_guid                      =  var.kms_encryption_enabled_buckets ?  local.existing_kms_guid  :  null 
124125      kms_encryption_enabled        =  var.kms_encryption_enabled_buckets
125126      region_location               =  var.region
126127      resource_instance_id          =  var.existing_cos_instance_crn
@@ -206,16 +207,16 @@ module "existing_kms_crn_parser" {
206207}
207208
208209module  "existing_kms_key_crn_parser"  {
209-   count    =  local . use_kms_module  ?  1  :  0 
210+   count    =  var . existing_kms_key_crn   !=   null  ?  1  :  0 
210211  source   =  " terraform-ibm-modules/common-utilities/ibm//modules/crn-parser" 
211212  version  =  " 1.2.0" 
212-   crn      =  local . kms_key_crn 
213+   crn      =  var . existing_kms_key_crn 
213214}
214215
215216#  Create IAM Authorization Policy to allow COS to access KMS for the encryption key, if cross account KMS is passed in
216217resource  "ibm_iam_authorization_policy"  "cos_kms_policy"  {
217218  provider                     =  . kms 
218-   count                        =  . create_cross_account_auth_policy  ?  1  :  0 
219+   count                        =  . create_cross_account_auth_policy  ?  local . is_same_cross_account   ?   0   :   1  :  0 
219220  source_service_account       =  . existing_cos_instance_crn_parser . account_id 
220221  source_service_name          =  " cloud-object-storage" 
221222  source_resource_instance_id  =  . cos_instance_guid 
0 commit comments