This module creates a private certificate in an existing Secrets Manager instance that has a configured Private Certificate Engine.
The module handles the following resource:
- Secrets Manager private certificate
 
module "secrets_manager_private_certificate" {
  source  = "terraform-ibm-modules/secrets-manager-private-cert/ibm"
  version = "latest" # Replace "latest" with a release version to lock into a specific release
  cert_name             = "example-private-cert"
  cert_description      = "an example private cert"
  cert_secrets_group_id = "the secret group ID to place the cert"
  cert_template         = "name of the cert template to use"
  cert_common_name      = "example.com"
  secrets_manager_guid   = module.secrets_manager.secrets_manager_guid
  secrets_manager_region = var.region
}You need the following permissions to run this module.
- Account Management
- IAM Access Groups service
Editorplatform access
 - IAM Identity service
Operatorplatform access
 - Resource Group service
Viewerplatform access
 
 - IAM Access Groups service
 - IAM Services
- Secrets Manager service
Administratorplatform accessManagerservice access
 
 - Secrets Manager service
 
| Name | Version | 
|---|---|
| terraform | >= 1.3.0 | 
| ibm | >=1.79.0, <2.0.0 | 
No modules.
| Name | Type | 
|---|---|
| ibm_sm_private_certificate.secrets_manager_private_certificate | resource | 
| Name | Description | Type | Default | Required | 
|---|---|---|---|---|
| cert_alt_names | Optional, Alternate names for the certificate to be created | list(string) | 
null | 
no | 
| cert_common_name | Fully qualified domain name or host domain name for the certificate to be created | string | 
n/a | yes | 
| cert_csr | Certificate signing request. If you don't include this parameter, the CSR that is used to generate the certificate is created internally | string | 
null | 
no | 
| cert_custom_metadata | Optional, Custom metadata for the certificate to be created | map(string) | 
{ | 
no | 
| cert_description | Optional, Extended description of certificate to be created. To protect privacy, do not use personal data, such as name or location, as a description for certificate | string | 
null | 
no | 
| cert_ip_sans | Optional, IP Subject Alternative Names (SANs) to define for the CA certificate, in a comma-delimited list | string | 
null | 
no | 
| cert_labels | Optional, Labels for the certificate to be created | list(string) | 
[] | 
no | 
| cert_name | Name of the certificate to be created in Secrets Manager | string | 
n/a | yes | 
| cert_other_sans | Optional, The custom Object Identifier (OID) or UTF8-string Subject Alternative Names (SANs) to define for the CA certificate. The alternative names must match the values that are specified in the 'allowed_other_sans' field in the associated certificate template | list(string) | 
[] | 
no | 
| cert_rotation | Optional, Rotation policy for the certificate to be created | object({ | 
{ | 
no | 
| cert_secrets_group_id | Optional, Id of Secrets Manager secret group to store the certificate in | string | 
"default" | 
no | 
| cert_template | Name of the certificate template to use | string | 
n/a | yes | 
| cert_ttl | Optional, Time-to-live (TTL) to assign to a private certificate | string | 
"364d" | 
no | 
| cert_uri_sans | Optional, URI Subject Alternative Names (SANs) to define for the CA certificate, in a comma-delimited list | string | 
null | 
no | 
| cert_version_custom_metadata | Optional, Custom version metadata for the certificate to be created | map(string) | 
{} | 
no | 
| exclude_cn_from_sans | Optional, Controls whether the common name is excluded from Subject Alternative Names (SANs). If set to true, the common name is not included in DNS or Email SANs if they apply | bool | 
false | 
no | 
| private_key_format | Optional, Format of the generated private key | string | 
"der" | 
no | 
| return_format | Optional, Format of the returned data | string | 
"pem" | 
no | 
| secrets_manager_guid | Secrets Manager GUID | string | 
n/a | yes | 
| secrets_manager_region | Region the Secrets Manager instance is in | string | 
n/a | yes | 
| service_endpoints | Service endpoint type to communicate with the provided secrets manager instance. Possible values are public or private | 
string | 
"public" | 
no | 
| Name | Description | 
|---|---|
| id | Private certificates secrets manager secret resource ID | 
| secret_crn | Private certificates secrets manager secret CRN | 
| secret_id | Private certificates secrets manager secret unique ID | 
You can report issues and request features for this module in GitHub issues in the module repo. See Report an issue or request a feature.
To set up your local development environment, see Local development setup in the project documentation.