You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: backend azurerm auth permissions and entra id terminology (#903)
# Description
This PR is to update the azurerm backend docs to show least privilege
permissions and update the terminology from `Azure Active Directory` to
`Microsoft Entra ID` on the next minor release.
NOTE: I wrote the original content for this page before it was moved
over to this new repo. I have re-written it twice in the past. Just
giving you some context as to why I am updating it as you can't see my
name in the git history.
# Terraform Enterprise <!-- RELEASE_SHORT_TMPL (e.g. vYYYYMM-X) -->
- **App Deadline Date:** <!-- DEADLINE_DATE_TMPL (e.g. Wednesday,
December 8, 2021) -->
- **Release Branch:** <!-- RELEASE_BRANCH_TMPL (e.g.
ptfe-releases/v202112) -->
- **Release Slack Channel:** #proj-tfe-releases
## Contributor Sign Off
Congratulations, if your name is on this list that means you contributed
to this release. You must sign off on your
contributions by checking the box in front of your username. The number
in front of your username is the number of pull
requests authored by you that are going into this release.
Please review the changelog entries for your contributions. Your
changelog entries should be **feature-focused**, define
the **what** and **why**, and include any necessary information for
customers. Each changelog entry should make it clear
why the customer should care about the change. More information on
[how to write release notes can be found in
confluence](https://hashicorp.atlassian.net/wiki/spaces/TFENG/pages/2369355816/How+to+Write+Release+Notes+for+TFE).
Place your changelog entry into one of the following categories.
- **Known Issues:** Issues present in this release. Ideally each issue
will describe a workaround or provide information
on which release resolves the issue. This category is typically added
after a release is published.
- **Breaking Changes:** Changes that will require a customer to take
some action to modify their workflow, processes,
monitoring, etc.
- **Deprecations:** Things that will no longer be supported by the
application. Can be operating systems going
end-of-life, settings being removed, etc.
- **Highlights:** Noteworthy changes that the customer should see when
reading the release notes. These should be
approved by your Product Manager and/or Engineering Manager.
- **Features:** Newly added functionality to the application.
- **Improvements:** Updates to existing components of the application.
- **Bug Fixes:** Fixes to issues reported with the application.
- **Security:** Security enhancements to the application and its
infrastructure and patches for Common Vulnerabilities
and Exposures (CVEs).
When you are finished reviewing your contributions, check the box next
to your name.
<!-- CONTRIBUTORS_TMPL: paste contributor list -->
Please let @hashicorp/technical-program-mgmt know if you have any
questions.
- User Assigned Managed Identity with Federated Credentials **(Recommended)**
@@ -44,16 +44,16 @@ In most cases, you can infer the data plane URI from the `storage_account_name`
44
44
45
45
If you are using the ['Azure DNS zone endpoints' feature](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview#azure-dns-zone-endpoints-preview), the backend will need to lookup the data plane URI from the management plane. This requires that you set the `lookup_blob_endpoint` configuration option to `true` and the `Reader` role assignment on the storage account.
46
46
47
-
## Azure Active Directory
47
+
## Microsoft Entra ID
48
48
49
-
This method requires a valid Azure Active Directory principal and a predictable storage account data plane URI.
49
+
This method requires a valid Microsoft Entra ID principal and a predictable storage account data plane URI.
50
50
51
51
### Required Configuration Options
52
52
53
53
The following configuration options are always required for this method:
54
54
55
-
-`use_azuread_auth` - Set to `true` to use Azure Active Directory authentication to the storage account data plane. This can also be set via the `ARM_USE_AZUREAD` environment variable.
56
-
-`tenant_id` - The tenant ID of the Azure Active Directory principal is required to authenticate to the storage account data plane. If using Azure CLI, this can be inferred from the CLI session. This can also be set via the `ARM_TENANT_ID` environment variable.
55
+
-`use_azuread_auth` - Set to `true` to use Microsoft Entra ID authentication to the storage account data plane. This can also be set via the `ARM_USE_AZUREAD` environment variable.
56
+
-`tenant_id` - The tenant ID of the Microsoft Entra ID principal is required to authenticate to the storage account data plane. If using Azure CLI, this can be inferred from the CLI session. This can also be set via the `ARM_TENANT_ID` environment variable.
57
57
-`storage_account_name` - The name of the storage account to write the state file blob to.
58
58
-`container_name` - The name of the storage account container to write the state file blob to.
59
59
-`key` - The name of the blob within the storage account container to write the state file to.
@@ -68,23 +68,22 @@ These optional configuration options apply when [looking up the data plane URI](
68
68
69
69
### Storage Account Required Role Assignments
70
70
71
-
The recommended data plane role assignments required for this method are either one of:
71
+
The recommended data plane role assignment required for this method is:
72
72
73
-
-`Storage Blob Data Owner` on the storage account container (Recommended)
74
-
-`Storage Blob Data Contributor` on the storage account
73
+
-`Storage Blob Data Contributor` on the storage account container (Recommended for least privilege)
75
74
76
75
The recommended management plane role assignments required for this method are:
77
76
78
77
-`Reader` on the storage account *(Only required if `lookup_blob_endpoint` is set to `true`)*
79
78
80
-
### Azure Active Directory with OpenID Connect / Workload identity federation
79
+
### Microsoft Entra ID with OpenID Connect / Workload identity federation
81
80
82
81
#### Required Configuration Options
83
82
84
83
The following additional configuration options are always required for this sub-type:
85
84
86
85
-`use_oidc` - Set to `true` to use OpenID Connect / Workload identity federation to authenticate to the storage account data plane. This can also be set via the `ARM_USE_OIDC` environment variable.
87
-
-`client_id` - The client ID of the Azure Active Directory Service Principal / App Registration or User Assigned Managed Identity is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
86
+
-`client_id` - The client ID of the Microsoft Entra ID Service Principal / App Registration or User Assigned Managed Identity is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
88
87
89
88
#### Example Configuration for GitHub
90
89
@@ -123,7 +122,7 @@ terraform {
123
122
}
124
123
```
125
124
126
-
### Azure Active Directory with Compute Attached Managed Identity
125
+
### Microsoft Entra ID with Compute Attached Managed Identity
127
126
128
127
#### Required Configuration Options
129
128
@@ -153,7 +152,7 @@ terraform {
153
152
}
154
153
```
155
154
156
-
### Azure Active Directory with Azure CLI
155
+
### Microsoft Entra ID with Azure CLI
157
156
158
157
You must have a pre-authenticated Azure CLI session using any supported method.
159
158
@@ -178,7 +177,7 @@ terraform {
178
177
}
179
178
```
180
179
181
-
### Azure Active Directory with Client Secret
180
+
### Microsoft Entra ID with Client Secret
182
181
183
182
Terraform retains this method for backwards compatibility only, do not use it for any new workloads.
184
183
@@ -188,8 +187,8 @@ Terraform retains this method for backwards compatibility only, do not use it fo
188
187
189
188
The following additional configuration options are always required for this sub-type:
190
189
191
-
-`client_id` - The client ID of the Azure Active Directory Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
192
-
-`client_secret` - The client secret of the Azure Active Directory Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_SECRET` environment variable.
190
+
-`client_id` - The client ID of the Microsoft Entra ID Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
191
+
-`client_secret` - The client secret of the Microsoft Entra ID Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_SECRET` environment variable.
193
192
194
193
#### Example Configuration
195
194
@@ -207,7 +206,7 @@ terraform {
207
206
}
208
207
```
209
208
210
-
### Azure Active Directory with Client Certificate
209
+
### Microsoft Entra ID with Client Certificate
211
210
212
211
Terraform retains this method for backwards compatibility only, do not use it for any new workloads.
213
212
@@ -217,7 +216,7 @@ Terraform retains this method for backwards compatibility only, do not use it fo
217
216
218
217
The following additional configuration options are always required for this sub-type:
219
218
220
-
-`client_id` - The client ID of the Azure Active Directory Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
219
+
-`client_id` - The client ID of the Microsoft Entra ID Service Principal / App Registration is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
221
220
-`client_certificate_path` - The path to the client certificate bundle is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_CERTIFICATE_PATH` environment variable.
222
221
-`client_certificate_password` - The password for the client certificate bundle is required to authenticate to the storage account data plane. This can also be set via the `ARM_CLIENT_CERTIFICATE_PASSWORD` environment variable.
223
222
@@ -312,7 +311,7 @@ terraform {
312
311
313
312
## Access Key Lookup
314
313
315
-
This method requires a valid Azure Active Directory principal and is a fallback for when Azure Active Directory authentication cannot be used on the storage account data plane.
314
+
This method requires a valid Microsoft Entra ID principal and is a fallback for when Microsoft Entra ID authentication cannot be used on the storage account data plane.
316
315
317
316
This method queries the management plane to get the storage account Access Key and then uses that Access Key to authenticate to the storage account data plane. It requires elevated permissions on the storage account.
318
317
@@ -322,7 +321,7 @@ Terraform retains this method for backwards compatibility, we do not recommend i
322
321
323
322
The following configuration options are always required for this method:
324
323
325
-
-`tenant_id` - The tenant ID of the Azure Active Directory principal is required to authenticate to the storage account management and data plane. If using Azure CLI, this can be inferred from the CLI session. This can also be set via the `ARM_TENANT_ID` environment variable.
324
+
-`tenant_id` - The tenant ID of the Microsoft Entra ID principal is required to authenticate to the storage account management and data plane. If using Azure CLI, this can be inferred from the CLI session. This can also be set via the `ARM_TENANT_ID` environment variable.
326
325
-`subscription_id` - The subscription ID of the storage account is required to query the management plane. If using Azure CLI, this can be inferred from the CLI session. This can also be set via the `ARM_SUBSCRIPTION_ID` environment variable.
327
326
-`resource_group_name` - The resource group name of the storage account is required to query the management plane.
328
327
-`storage_account_name` - The name of the storage account to write the state file blob to.
@@ -337,10 +336,9 @@ These optional configuration options apply when [looking up the data plane URI](
337
336
338
337
### Storage Account Required Role Assignments
339
338
340
-
The recommended data plane role assignments required for this method are either one of:
339
+
The recommended data plane role assignment required for this method is:
341
340
342
-
-`Storage Blob Data Owner` on the storage account container (Recommended)
343
-
-`Storage Blob Data Contributor` on the storage account
341
+
-`Storage Blob Data Contributor` on the storage account container (Recommended for least privilege)
344
342
345
343
The recommended management plane role assignments required for this method are:
346
344
@@ -356,7 +354,7 @@ OpenID Connect / Workload identity federation is the recommended method for this
356
354
The following additional configuration options are always required for this sub-type:
357
355
358
356
-`use_oidc` - Set to `true` to use OpenID Connect / Workload identity federation to authenticate to the storage account management and data plane. This can also be set via the `ARM_USE_OIDC` environment variable.
359
-
-`client_id` - The client ID of the Azure Active Directory Service Principal / App Registration or User Assigned Managed Identity is required to authenticate to the storage account management and data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
357
+
-`client_id` - The client ID of the Microsoft Entra ID Service Principal / App Registration or User Assigned Managed Identity is required to authenticate to the storage account management and data plane. This can also be set via the `ARM_CLIENT_ID` environment variable.
360
358
361
359
#### Example Configuration for GitHub
362
360
@@ -493,7 +491,7 @@ terraform {
493
491
494
492
To use the `terraform_remote_state` data source with the `azurerm` backend, you must use the exact same configuration as you would for the `backend` block in your configuration.
495
493
496
-
For example to use [Direct Azure Active Directory authentication with OpenID Connect / Workload identity federation for GitHub](#azure-active-directory-with-openid-connect--workload-identity-federation) you would use the following configuration:
494
+
For example to use [Direct Microsoft Entra ID authentication with OpenID Connect / Workload identity federation for GitHub](#microsoft-entra-id-with-openid-connect--workload-identity-federation) you would use the following configuration:
497
495
498
496
```hcl
499
497
data "terraform_remote_state" "foo" {
@@ -534,7 +532,7 @@ The following configuration options are supported:
534
532
535
533
*`tenant_id` - (Optional) The Tenant ID of the principal. This can also be sourced from the `ARM_TENANT_ID` environment variable.
536
534
537
-
*`use_azuread_auth` - (Optional) Whether Azure Active Directory Authentication for storage account data plane authentication. This can also be sourced from the `ARM_USE_AZUREAD` environment variable.
535
+
*`use_azuread_auth` - (Optional) Whether Microsoft Entra ID Authentication for storage account data plane authentication. This can also be sourced from the `ARM_USE_AZUREAD` environment variable.
538
536
539
537
*`subscription_id` - (Optional) The Subscription ID of the storage account required for management plane authentication. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable.
540
538
@@ -548,7 +546,7 @@ The following configuration options are supported:
548
546
549
547
*`use_oidc` - (Optional) Set to `true` to use OpenID Connect / Workload identity federation authentication for authentication to the storage account management and data plane. This can also be sourced from the `ARM_USE_OIDC` environment variable.
550
548
551
-
*`client_id` - (Optional) The Client ID of the Azure Active Directory Principal required for some authentication sub-types. This can also be sourced from the `ARM_CLIENT_ID` environment variable.
549
+
*`client_id` - (Optional) The Client ID of the Microsoft Entra ID Principal required for some authentication sub-types. This can also be sourced from the `ARM_CLIENT_ID` environment variable.
552
550
553
551
*`ado_pipeline_service_connection_id` - (Optional) The Azure DevOps Pipeline Service Connection ID required for Open ID Connect / Workload identity federation authentication with Azure DevOps. This can also be sourced from the `ARM_ADO_PIPELINE_SERVICE_CONNECTION_ID` or `ARM_OIDC_AZURE_SERVICE_CONNECTION_ID` environment variables. The provider will look for values in this order and use the first it finds configured.
0 commit comments