-
Notifications
You must be signed in to change notification settings - Fork 2
Full chain of deploy added #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 13 commits
f1d3151
c36d6bd
215896e
e4868fe
5004d5c
c05350d
1959b55
260f233
c97839a
e8567ea
4b21975
0b2bd41
6907e5e
2df6577
87d99cc
7c83e01
279fed6
319c066
e093d1d
cfdd65e
a648fa8
03b8f64
053108d
9b752bc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Complete Example: SCC-WP with App Config and Trusted Profiles | ||
|
|
||
| This example demonstrates the full deployment of: | ||
|
|
||
| - IBM Cloud App Configuration | ||
| - IBM Cloud Security and Compliance Center Workload Protection (SCC-WP) | ||
| - IAM Trusted Profile Template with 3 Trusted Profiles | ||
| - Template assignment to account groups | ||
| - Configuration Aggregator to link SCC-WP with App Config | ||
|
|
||
| --- | ||
|
|
||
| ## Flow Overview | ||
|
|
||
| 1. Create or reuse a resource group | ||
| A resource group is created. | ||
|
|
||
| 2. Deploy App Config | ||
| App Config is deployed along with a collection for organizing features and properties. | ||
|
|
||
| 3. Deploy SCC Workload Protection | ||
| SCC-WP is deployed with the `graduated-tier` plan (customizable via variable). | ||
|
|
||
| 4. Create a Trusted Profile Template with 3 profiles | ||
| - App Config - Enterprise | ||
| For IAM template management across the enterprise. | ||
| - App Config - General | ||
| For reading platform and IAM services. | ||
| - SCC-WP Profile | ||
| For integrating SCC-WP with App Config and enterprise usage. | ||
|
|
||
| 5. Assign the template to account groups | ||
|
|
||
| 6. Create SCC-WP Config Aggregator | ||
| The aggregator connects SCC-WP to App Config and uses the enterprise trusted profile and template ID to enforce secure access. | ||
|
|
||
| --- | ||
|
|
||
| ## Usage | ||
|
|
||
| terraform init | ||
| terraform apply | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| provider "ibm" { | ||
| region = var.region | ||
| ibmcloud_api_key = var.ibmcloud_api_key | ||
| } | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| module "resource_group" { | ||
| source = "terraform-ibm-modules/resource-group/ibm" | ||
| version = "1.1.6" | ||
| resource_group_name = var.resource_group == null ? "${var.prefix}-rg" : null | ||
| existing_resource_group_name = var.resource_group | ||
| } | ||
|
|
||
| data "ibm_iam_account_settings" "iam_account_settings" {} | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| module "scc_wp" { | ||
| source = "terraform-ibm-modules/scc-workload-protection/ibm" | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| name = var.prefix | ||
| region = var.region | ||
| resource_group_id = module.resource_group.resource_group_id | ||
| resource_tags = var.resource_tags | ||
| access_tags = var.access_tags | ||
| scc_wp_service_plan = "graduated-tier" | ||
| } | ||
|
|
||
| module "app_config" { | ||
| source = "terraform-ibm-modules/app-configuration/ibm" | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| region = var.region | ||
| resource_group_id = module.resource_group.resource_group_id | ||
| app_config_name = "${var.prefix}-app-config" | ||
| app_config_tags = var.resource_tags | ||
|
|
||
| app_config_collections = [ | ||
| { | ||
| name = "${var.prefix}-collection" | ||
| collection_id = "${var.prefix}-collection" | ||
| description = "Collection for ${var.prefix}" | ||
| } | ||
| ] | ||
| } | ||
|
|
||
| module "trusted_profiles" { | ||
| source = "terraform-ibm-modules/trusted-profile-enterprise/ibm" | ||
|
||
| region = var.region | ||
| app_config_crn = module.app_config.app_config_crn | ||
| scc_wp_crn = module.scc_wp.wp_instance_crn | ||
| ibmcloud_api_key = var.ibmcloud_api_key | ||
| } | ||
|
|
||
| module "scc_wp_config_aggregator" { | ||
| source = "terraform-ibm-modules/scc-wp-config-aggregator/ibm" | ||
|
||
|
|
||
| app_config_instance_guid = module.app_config.app_config_guid | ||
| region = var.region | ||
| enterprise_id = var.enterprise_id | ||
| template_id = module.trusted_profiles.trusted_profile_template_id | ||
| enterprise_trusted_profile_id = module.trusted_profiles.trusted_profile_app_config_enterprise.profile_id | ||
| general_trusted_profile_id = module.trusted_profiles.trusted_profile_app_config_general.profile_id | ||
|
|
||
| depends_on = [module.trusted_profiles] | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| output "scc_wp_crn" { | ||
| description = "CRN of the SCC Workload Protection instance" | ||
| value = module.scc_wp.wp_instance_crn | ||
| } | ||
| output "scc_wp_config_aggregator_id" { | ||
| value = module.scc_wp_config_aggregator.scc_wp_config_aggregator_id | ||
| } | ||
| output "trusted_profile_template_id" { | ||
| value = module.trusted_profiles.trusted_profile_template_id | ||
| } | ||
|
|
||
| output "trusted_profile_enterprise_id" { | ||
| value = module.trusted_profiles.trusted_profile_app_config_enterprise.profile_id | ||
| } | ||
|
|
||
| output "app_config_guid" { | ||
| value = module.app_config.app_config_guid | ||
| } | ||
|
|
||
| output "app_config_crn" { | ||
| value = module.app_config.app_config_crn | ||
| } | ||
|
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
|
|
||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| variable "region" { | ||
| type = string | ||
| } | ||
|
|
||
| variable "prefix" { | ||
| type = string | ||
| } | ||
|
|
||
|
|
||
| variable "onboard_account_groups" { | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| type = bool | ||
| default = true | ||
| description = "Whether to onboard all account groups to the template." | ||
| } | ||
|
|
||
| variable "account_group_ids" { | ||
| type = list(string) | ||
| default = [] # ✅ ← IMPORTANT : éviter les prompts inutiles | ||
| description = "Liste des ID de groupes de comptes à assigner au modèle. Utilisé uniquement si onboard_account_groups est false." | ||
| } | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
|
|
||
| variable "resource_group" { | ||
| type = string | ||
| default = null | ||
| } | ||
|
|
||
| variable "resource_tags" { | ||
| type = list(string) | ||
| default = [] | ||
| } | ||
|
|
||
| variable "access_tags" { | ||
| type = list(string) | ||
| default = [] | ||
| } | ||
|
|
||
| variable "enterprise_id" { | ||
| type = string | ||
| description = "Enterprise ID for App Configuration aggregator" | ||
| } | ||
|
|
||
| variable "template_id" { | ||
| description = "The ID of the trusted profile template (optional if created later)" | ||
| type = string | ||
| default = null | ||
| } | ||
|
|
||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| variable "ibmcloud_api_key" { | ||
| type = string | ||
| description = "IBM Cloud API key" | ||
| sensitive = true | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| terraform { | ||
| required_version = ">= 1.3.0" | ||
|
|
||
| required_providers { | ||
| ibm = { | ||
| source = "ibm-cloud/ibm" | ||
| version = ">= 1.65.0, < 2.0.0" | ||
RiadhJouini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
| } | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
revert this change. You are removing it