Skip to content

Commit f6ca9fc

Browse files
authored
feat: The service_credentials_source_service_role input has now been replaced by service_credentials_source_service_role_crn to allow consumers to create service specific roles. For example: service_credentials_source_service_role_crn = "crn:v1:bluemix:public:cloud-object-storage::::serviceRole:ObjectReader" (#250)
1 parent a485039 commit f6ca9fc

File tree

5 files changed

+28
-28
lines changed

5 files changed

+28
-28
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ No modules.
196196
| <a name="input_service_credentials_parameters"></a> [service\_credentials\_parameters](#input\_service\_credentials\_parameters) | List of all custom parameters for service credential. | `map(string)` | `null` | no |
197197
| <a name="input_service_credentials_source_service_crn"></a> [service\_credentials\_source\_service\_crn](#input\_service\_credentials\_source\_service\_crn) | The CRN of the source service instance to create the service credential. | `string` | `null` | no |
198198
| <a name="input_service_credentials_source_service_hmac"></a> [service\_credentials\_source\_service\_hmac](#input\_service\_credentials\_source\_service\_hmac) | The optional boolean parameter 'HMAC' for creating specific kind of credentials. For more information see https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/sm_service_credentials_secret#parameters | `bool` | `false` | no |
199-
| <a name="input_service_credentials_source_service_role"></a> [service\_credentials\_source\_service\_role](#input\_service\_credentials\_source\_service\_role) | The role to give the service credential in the source service. | `string` | `null` | no |
199+
| <a name="input_service_credentials_source_service_role_crn"></a> [service\_credentials\_source\_service\_role\_crn](#input\_service\_credentials\_source\_service\_role\_crn) | The CRN for the role to give the service credential in the source service. See https://cloud.ibm.com/iam/roles | `string` | `null` | no |
200200
| <a name="input_service_credentials_ttl"></a> [service\_credentials\_ttl](#input\_service\_credentials\_ttl) | The time-to-live (TTL) to assign to generated service credentials (in seconds). | `number` | `"7776000"` | no |
201201

202202
### Outputs

examples/complete/main.tf

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,15 @@ resource "ibm_iam_authorization_policy" "policy" {
225225

226226
# create service credentials secret
227227
module "secret_manager_service_credential" {
228-
depends_on = [ibm_iam_authorization_policy.policy]
229-
source = "../.."
230-
region = local.sm_region
231-
secrets_manager_guid = local.sm_guid
232-
secret_name = "${var.prefix}-service-credentials"
233-
secret_group_id = module.secrets_manager_group.secret_group_id
234-
secret_description = "created by secrets-manager-secret-module complete example"
235-
secret_type = "service_credentials" #checkov:skip=CKV_SECRET_6
236-
service_credentials_source_service_crn = module.cloud_object_storage.cos_instance_id
237-
service_credentials_source_service_role = "Writer"
238-
service_credentials_parameters = { "service-endpoints" : "public" }
228+
depends_on = [ibm_iam_authorization_policy.policy]
229+
source = "../.."
230+
region = local.sm_region
231+
secrets_manager_guid = local.sm_guid
232+
secret_name = "${var.prefix}-service-credentials"
233+
secret_group_id = module.secrets_manager_group.secret_group_id
234+
secret_description = "created by secrets-manager-secret-module complete example"
235+
secret_type = "service_credentials" #checkov:skip=CKV_SECRET_6
236+
service_credentials_source_service_crn = module.cloud_object_storage.cos_instance_id
237+
service_credentials_source_service_role_crn = "crn:v1:bluemix:public:iam::::serviceRole:Writer"
238+
service_credentials_parameters = { "service-endpoints" : "public" }
239239
}

examples/private/main.tf

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -234,15 +234,15 @@ resource "ibm_iam_authorization_policy" "policy" {
234234

235235
# create service credentials secret
236236
module "secret_manager_service_credential" {
237-
depends_on = [ibm_iam_authorization_policy.policy]
238-
source = "../.."
239-
region = local.sm_region
240-
secrets_manager_guid = module.secrets_manager.secrets_manager_guid
241-
secret_name = "${var.prefix}-service-credentials"
242-
secret_group_id = module.secrets_manager_group.secret_group_id
243-
secret_description = "created by secrets-manager-secret-module complete example"
244-
secret_type = "service_credentials" #checkov:skip=CKV_SECRET_6
245-
service_credentials_source_service_crn = module.cloud_object_storage.cos_instance_id
246-
service_credentials_source_service_role = "Writer"
247-
endpoint_type = "private"
237+
depends_on = [ibm_iam_authorization_policy.policy]
238+
source = "../.."
239+
region = local.sm_region
240+
secrets_manager_guid = module.secrets_manager.secrets_manager_guid
241+
secret_name = "${var.prefix}-service-credentials"
242+
secret_group_id = module.secrets_manager_group.secret_group_id
243+
secret_description = "created by secrets-manager-secret-module complete example"
244+
secret_type = "service_credentials" #checkov:skip=CKV_SECRET_6
245+
service_credentials_source_service_crn = module.cloud_object_storage.cos_instance_id
246+
service_credentials_source_service_role_crn = "crn:v1:bluemix:public:iam::::serviceRole:Writer"
247+
endpoint_type = "private"
248248
}

main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ locals {
2020
imported_cert_validate_check = regex("^${local.imported_cert_validate_msg}$", (!local.imported_cert_validate_condition ? local.imported_cert_validate_msg : ""))
2121

2222
# validate service credentials has source service information
23-
service_credentials_validate_condition = (var.secret_type == "service_credentials" && var.service_credentials_source_service_crn == null) || (var.secret_type == "service_credentials" && var.service_credentials_source_service_role == null) #checkov:skip=CKV_SECRET_6
24-
service_credentials_validate_msg = "When creating a service_credentials secret, values for `service_credentials_source_service_crn` and `service_credentials_source_service_role` are required."
23+
service_credentials_validate_condition = (var.secret_type == "service_credentials" && var.service_credentials_source_service_crn == null) || (var.secret_type == "service_credentials" && var.service_credentials_source_service_role_crn == null) #checkov:skip=CKV_SECRET_6
24+
service_credentials_validate_msg = "When creating a service_credentials secret, values for `service_credentials_source_service_crn` and `service_credentials_source_service_role_crn` are required."
2525
# tflint-ignore: terraform_unused_declarations
2626
service_credentials_validate_check = regex("^${local.service_credentials_validate_msg}$", (!local.service_credentials_validate_condition ? local.service_credentials_validate_msg : ""))
2727

@@ -127,7 +127,7 @@ resource "ibm_sm_service_credentials_secret" "service_credentials_secret" {
127127
crn = var.service_credentials_source_service_crn
128128
}
129129
role {
130-
crn = "crn:v1:bluemix:public:iam::::serviceRole:${var.service_credentials_source_service_role}"
130+
crn = var.service_credentials_source_service_role_crn
131131
}
132132
parameters = local.parameters
133133
}

variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ variable "service_credentials_source_service_crn" {
106106
default = null
107107
}
108108

109-
variable "service_credentials_source_service_role" {
109+
variable "service_credentials_source_service_role_crn" {
110110
type = string
111-
description = "The role to give the service credential in the source service."
111+
description = "The CRN for the role to give the service credential in the source service. See https://cloud.ibm.com/iam/roles"
112112
default = null
113113
}
114114

0 commit comments

Comments
 (0)