diff --git a/terraform/azure-devops/create-service-connection/README.md b/terraform/azure-devops/create-service-connection/README.md index 926cec4..e475ea6 100644 --- a/terraform/azure-devops/create-service-connection/README.md +++ b/terraform/azure-devops/create-service-connection/README.md @@ -95,6 +95,26 @@ Pre-requisites: - A resource group to hold the Managed Identity has been pre-created - The user is an owner of the Azure scopes to create role assignments on +#### Managed Identity with FIC assigned to Entra ID security group + +This creates a Managed Identity with Federated Identity Credential and custom Azure RBAC (role-based access control) role assignments: + +```hcl +azdo_creates_identity = false +azdo_organization_url = "https://dev.azure.com/my-organization" +azdo_project_name = "my-project" +azure_role_assignments = [] +create_federation = true +create_managed_identity = true +entra_security_group_names = ["my-security-group"] +managed_identity_resource_group_id = "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/msi-rg" +``` + +Pre-requisites: + +- A resource group to hold the Managed Identity has been pre-created +- The user is an owner of the security enabled Entra ID group to add the Managed Identity to + #### App registration with FIC and ITSM metadata This creates an Entra ID app registration with IT service reference and notes fields populated as well as specifying co-owners: @@ -153,6 +173,7 @@ Generated with [terraform-docs](https://terraform-docs.io/). | Name | Version | |------|---------| +| [azuread](#provider_azuread) | 2.48.0 | | [azurerm](#provider_azurerm) | 3.101.0 | | [external](#provider_external) | 2.3.3 | | [random](#provider_random) | 3.6.1 | @@ -174,12 +195,13 @@ Generated with [terraform-docs](https://terraform-docs.io/). | [azdo_organization_url](#input_azdo_organization_url) | The Azure DevOps organization URL (e.g. https://dev.azure.com/contoso) | `string` | n/a | yes | | [azdo_project_name](#input_azdo_project_name) | The Azure DevOps project name to create the service connection in | `string` | n/a | yes | | [azdo_creates_identity](#input_azdo_creates_identity) | Let Azure DevOps create identity for service connection | `bool` | `false` | no | -| [azure_role_assignments](#input_azure_role_assignments) | Role assignments to create for the service connection's identity. If this is empty, the Contributor role will be assigned on the azurerm provider subscription. | `set(object({scope=string, role=string}))` | `[]` | no | +| [azure_role_assignments](#input_azure_role_assignments) | Role assignments to create for the service connection's identity. If this is empty, the Contributor role will be assigned on the azurerm provider subscription. | `set(object({scope=string, role=string}))` | `null` | no | | [create_federation](#input_create_federation) | Use workload identity federation instead of a App Registration secret | `bool` | `true` | no | | [create_managed_identity](#input_create_managed_identity) | Creates a Managed Identity instead of a App Registration | `bool` | `false` | no | | [entra_app_notes](#input_entra_app_notes) | Description to put in the Entra ID app registration notes field | `string` | `null` | no | | [entra_app_owner_object_ids](#input_entra_app_owner_object_ids) | Object ids of the users that will be co-owners of the Entra ID app registration | `list(string)` | `null` | no | | [entra_secret_expiration_days](#input_entra_secret_expiration_days) | Secret expiration in days | `number` | `90` | no | +| [entra_security_group_names](#input_entra_security_group_names) | Names of the security groups to add the service connection identity to | `list(string)` | `null` | no | | [entra_service_management_reference](#input_entra_service_management_reference) | IT Service Management Reference to add to the App Registration | `string` | `null` | no | | [managed_identity_resource_group_id](#input_managed_identity_resource_group_id) | The resource group to create the Managed Identity in | `string` | `null` | no | | [resource_prefix](#input_resource_prefix) | The prefix to put in front of resource names created | `string` | `"demo"` | no | diff --git a/terraform/azure-devops/create-service-connection/graph.png b/terraform/azure-devops/create-service-connection/graph.png index 25c54b4..66f4112 100644 Binary files a/terraform/azure-devops/create-service-connection/graph.png and b/terraform/azure-devops/create-service-connection/graph.png differ