Skip to content

Commit 764084d

Browse files
authored
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.
2 parents f4ebb8c + c53645b commit 764084d

File tree

2 files changed

+30
-34
lines changed

2 files changed

+30
-34
lines changed

content/terraform/v1.13.x/docs/language/backend/azurerm.mdx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,9 @@ These optional configuration options apply when [looking up the data plane URI](
6868

6969
### Storage Account Required Role Assignments
7070

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:
7272

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)
7574

7675
The recommended management plane role assignments required for this method are:
7776

@@ -337,10 +336,9 @@ These optional configuration options apply when [looking up the data plane URI](
337336

338337
### Storage Account Required Role Assignments
339338

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:
341340

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)
344342

345343
The recommended management plane role assignments required for this method are:
346344

content/terraform/v1.14.x (alpha)/docs/language/backend/azurerm.mdx

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ The `azurerm` backend needs to authenticate to the storage account data plane in
1717

1818
The `azurerm` backend supports 5 methods to authenticate to the storage account data plane:
1919

20-
- [Azure Active Directory](#azure-active-directory) **(Recommended)**
20+
- [Microsoft Entra ID](#microsoft-entra-id) **(Recommended)**
2121
- [SAS Token](#sas-token) *(Not recommended for new workloads)*
2222
- [Access Key](#access-key) *(Not recommended for new workloads)*
2323
- [Access Key Lookup](#access-key-lookup) *(Not recommended for new workloads)*
2424

25-
### Azure Active Directory and Access Key Lookup Authentication Types
25+
### Microsoft Entra ID and Access Key Lookup Authentication Types
2626

27-
There are 5 types of Azure Active Directory authentication supported, which apply to the Azure Active Directory and Access Key Lookup methods.
27+
There are 5 types of Microsoft Entra ID authentication supported, which apply to the Microsoft Entra ID and Access Key Lookup methods.
2828

2929
- OpenID Connect / Workload identity federation **(Recommended)**
3030
- 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`
4444

4545
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.
4646

47-
## Azure Active Directory
47+
## Microsoft Entra ID
4848

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.
5050

5151
### Required Configuration Options
5252

5353
The following configuration options are always required for this method:
5454

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.
5757
- `storage_account_name` - The name of the storage account to write the state file blob to.
5858
- `container_name` - The name of the storage account container to write the state file blob to.
5959
- `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](
6868

6969
### Storage Account Required Role Assignments
7070

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:
7272

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)
7574

7675
The recommended management plane role assignments required for this method are:
7776

7877
- `Reader` on the storage account *(Only required if `lookup_blob_endpoint` is set to `true`)*
7978

80-
### Azure Active Directory with OpenID Connect / Workload identity federation
79+
### Microsoft Entra ID with OpenID Connect / Workload identity federation
8180

8281
#### Required Configuration Options
8382

8483
The following additional configuration options are always required for this sub-type:
8584

8685
- `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.
8887

8988
#### Example Configuration for GitHub
9089

@@ -123,7 +122,7 @@ terraform {
123122
}
124123
```
125124

126-
### Azure Active Directory with Compute Attached Managed Identity
125+
### Microsoft Entra ID with Compute Attached Managed Identity
127126

128127
#### Required Configuration Options
129128

@@ -153,7 +152,7 @@ terraform {
153152
}
154153
```
155154

156-
### Azure Active Directory with Azure CLI
155+
### Microsoft Entra ID with Azure CLI
157156

158157
You must have a pre-authenticated Azure CLI session using any supported method.
159158

@@ -178,7 +177,7 @@ terraform {
178177
}
179178
```
180179

181-
### Azure Active Directory with Client Secret
180+
### Microsoft Entra ID with Client Secret
182181

183182
Terraform retains this method for backwards compatibility only, do not use it for any new workloads.
184183

@@ -188,8 +187,8 @@ Terraform retains this method for backwards compatibility only, do not use it fo
188187

189188
The following additional configuration options are always required for this sub-type:
190189

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.
193192

194193
#### Example Configuration
195194

@@ -207,7 +206,7 @@ terraform {
207206
}
208207
```
209208

210-
### Azure Active Directory with Client Certificate
209+
### Microsoft Entra ID with Client Certificate
211210

212211
Terraform retains this method for backwards compatibility only, do not use it for any new workloads.
213212

@@ -217,7 +216,7 @@ Terraform retains this method for backwards compatibility only, do not use it fo
217216

218217
The following additional configuration options are always required for this sub-type:
219218

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.
221220
- `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.
222221
- `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.
223222

@@ -312,7 +311,7 @@ terraform {
312311

313312
## Access Key Lookup
314313

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.
316315

317316
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.
318317

@@ -322,7 +321,7 @@ Terraform retains this method for backwards compatibility, we do not recommend i
322321

323322
The following configuration options are always required for this method:
324323

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.
326325
- `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.
327326
- `resource_group_name` - The resource group name of the storage account is required to query the management plane.
328327
- `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](
337336

338337
### Storage Account Required Role Assignments
339338

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:
341340

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)
344342

345343
The recommended management plane role assignments required for this method are:
346344

@@ -356,7 +354,7 @@ OpenID Connect / Workload identity federation is the recommended method for this
356354
The following additional configuration options are always required for this sub-type:
357355

358356
- `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.
360358

361359
#### Example Configuration for GitHub
362360

@@ -493,7 +491,7 @@ terraform {
493491

494492
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.
495493

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:
497495

498496
```hcl
499497
data "terraform_remote_state" "foo" {
@@ -534,7 +532,7 @@ The following configuration options are supported:
534532

535533
* `tenant_id` - (Optional) The Tenant ID of the principal. This can also be sourced from the `ARM_TENANT_ID` environment variable.
536534

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.
538536

539537
* `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.
540538

@@ -548,7 +546,7 @@ The following configuration options are supported:
548546

549547
* `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.
550548

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.
552550

553551
* `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.
554552

0 commit comments

Comments
 (0)