Skip to content

Commit 9bd766b

Browse files
authored
Merge pull request #260113 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents bc44b9e + 21a010c commit 9bd766b

File tree

49 files changed

+2123
-326
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2123
-326
lines changed

.openpublishing.redirection.sentinel.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,11 @@
479479
"source_path": "articles/sentinel/data-connectors/deprecated-cisco-firepower-estreamer-via-legacy-agent.md",
480480
"redirect_url": "/azure/sentinel/data-connectors/cisco-firepower-estreamer",
481481
"redirect_document_id": true
482-
}
482+
},
483+
{
484+
"source_path": "articles/sentinel/data-connectors/cyberpion-security-logs.md",
485+
"redirect_url": "/azure/sentinel/data-connectors-reference",
486+
"redirect_document_id": false
487+
}
483488
]
484489
}

articles/active-directory-b2c/localization-string-ids.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99

1010
ms.topic: reference
11-
ms.date: 04/19/2022
11+
ms.date: 11/14/2023
1212
ms.author: kengaderdus
1313
ms.subservice: B2C
1414
---
@@ -615,7 +615,8 @@ The following IDs are used for claims transformations error messages:
615615
| `DateTimeGreaterThan` |[AssertDateTimeIsGreaterThan](date-transformations.md#assertdatetimeisgreaterthan) | Claim value comparison failed: The provided left operand is greater than the right operand.|
616616
| `UserMessageIfClaimsTransformationStringsAreNotEqual` |[AssertStringClaimsAreEqual](string-transformations.md#assertstringclaimsareequal) | Claim value comparison failed using StringComparison "OrdinalIgnoreCase".|
617617

618-
### Claims transformations example
618+
### Claims transformations example 1:
619+
This example shows localized messages for local account signup.
619620

620621
```xml
621622
<LocalizedResources Id="api.localaccountsignup.en">
@@ -627,6 +628,17 @@ The following IDs are used for claims transformations error messages:
627628
</LocalizedResources>
628629
```
629630

631+
### Claims transformations example 2:
632+
This example shows localized messages for local account password reset.
633+
634+
```xml
635+
<LocalizedResources Id="api.localaccountpasswordreset.en">
636+
<LocalizedStrings>
637+
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">You cannot use the old password</LocalizedString>
638+
</LocalizedStrings>
639+
</LocalizedResources>
640+
```
641+
630642
## Next steps
631643

632644
See the following articles for localization examples:

articles/advisor/advisor-cost-recommendations.md

Lines changed: 79 additions & 44 deletions
Large diffs are not rendered by default.

articles/advisor/advisor-get-started.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: mabrahms
55
ms.author: v-mabrahms
66
ms.service: azure
77
ms.topic: article
8-
ms.date: 09/16/2023
8+
ms.date: 12/1/2023
99

1010
---
1111

@@ -88,9 +88,9 @@ From any Azure Advisor page, click **Configuration** in the left navigation pane
8888

8989
* **Resources**: Uncheck any subscriptions you don't want to receive Advisor recommendations for, click **Apply**. The page refreshes.
9090

91-
* **VM/VMSS right sizing**: You can adjust the average CPU utilization rule and the look back period on a per-subscription basis. Doing virtual machine (VM) right sizing requires specialized knowledge.
91+
* **VM/VMSS right sizing**: You can adjust Advisor virtual machine (VM) and virtual machine scale sets (VMSS) recommendations. Specifically, you can setup a filter for each subscription to only show recommendations for machines with certain CPU utilization. This setting will filter recommendations but will not change how they are generated.
9292

93-
1. Select the subscriptions you’d like to adjust the average CPU utilization rule for, and then click **Edit**. Not all subscriptions can be edited for VM/VMSS right sizing and certain privileges are required; for more information on permissions, see [Permissions in Azure Advisor](permissions.md).
93+
1. Select the subscriptions you’d like to setup a filter for average CPU utilization, and then click **Edit**. Not all subscriptions can be edited for VM/VMSS right sizing and certain privileges are required; for more information on permissions, see [Permissions in Azure Advisor](permissions.md).
9494

9595
1. Select the desired average CPU utilization value and click **Apply**. It can take up to 24 hours for the new settings to be reflected in recommendations.
9696

articles/aks/concepts-clusters-workloads.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ Reserved CPU is dependent on node type and cluster configuration, which may caus
112112
Memory utilized by AKS includes the sum of two values.
113113

114114
> [!IMPORTANT]
115-
> AKS 1.28 includes certain changes to memory reservations. These changes are detailed in the following section.
115+
> AKS 1.29 previews in January 2024 and includes certain changes to memory reservations. These changes are detailed in the following section.
116116
117-
**AKS 1.28 and later**
117+
**AKS 1.29 and later**
118118

119119
1. **`kubelet` daemon** has the *memory.available<100Mi* eviction rule by default. This ensures that a node always has at least 100Mi allocatable at all times. When a host is below that available memory threshold, the `kubelet` triggers the termination of one of the running pods and frees up memory on the host machine.
120120
2. **A rate of memory reservations** set according to the lesser value of: *20MB * Max Pods supported on the Node + 50MB* or *25% of the total system memory resources*.
@@ -125,7 +125,7 @@ Memory utilized by AKS includes the sum of two values.
125125

126126
For more information, see [Configure maximum pods per node in an AKS cluster](./azure-cni-overview.md#maximum-pods-per-node).
127127

128-
**AKS versions prior to 1.28**
128+
**AKS versions prior to 1.29**
129129

130130
1. **`kubelet` daemon** is installed on all Kubernetes agent nodes to manage container creation and termination. By default on AKS, `kubelet` daemon has the *memory.available<750Mi* eviction rule, ensuring a node must always have at least 750Mi allocatable at all times. When a host is below that available memory threshold, the `kubelet` will trigger to terminate one of the running pods and free up memory on the host machine.
131131

articles/aks/csi-secrets-store-identity-access.md

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,38 @@
11
---
2-
title: Provide an access identity to the Azure Key Vault provider for Secrets Store CSI Driver for Azure Kubernetes Service (AKS) secrets
3-
description: Learn how to integrate the Azure Key Vault provider for Secrets Store CSI Driver with your Azure key vault.
2+
title: Access Azure Key Vault with the CSI Driver Identity Provider
3+
description: Learn how to integrate the Azure Key Vault Provider for Secrets Store CSI Driver with your Azure credentials and user identities.
44
author: nickomang
55
ms.author: nickoman
66
ms.topic: article
7-
ms.date: 10/19/2023
7+
ms.date: 12/01/2023
88
ms.custom: devx-track-azurecli, devx-track-linux
99
---
1010

11-
# Provide an identity to access the Azure Key Vault provider for Secrets Store CSI Driver in Azure Kubernetes Service (AKS)
11+
# Connect your Azure identity provider to the Azure Key Vault Secrets Store CSI Driver in Azure Kubernetes Service (AKS)
1212

13-
The Secrets Store CSI Driver on Azure Kubernetes Service (AKS) provides various methods of identity-based access to your Azure Key Vault. This article outlines these methods and how to use them to access your key vault and its contents from your AKS cluster.
13+
The Secrets Store Container Storage Interface (CSI) Driver on Azure Kubernetes Service (AKS) provides various methods of identity-based access to your Azure Key Vault. This article outlines these methods and best practices for when to use Role-based access control (RBAC) or OpenID Connect (OIDC) security models to access your key vault and AKS cluster.
1414

1515
You can use one of the following access methods:
1616

1717
- [Microsoft Entra Workload ID](#access-with-a-microsoft-entra-workload-id)
1818
- [User-assigned managed identity](#access-with-a-user-assigned-managed-identity)
1919

20-
## Prerequisites
20+
## Prerequisites for CSI Driver
2121

22-
- Before you begin, make sure you followed the steps in [Use the Azure Key Vault provider for Secrets Store CSI Driver in an Azure Kubernetes Service (AKS) cluster][csi-secrets-store-driver] to create an AKS cluster with Azure Key Vault provider for Secrets Store CSI Driver support.
22+
- Before you begin, make sure you finish the steps in [Use the Azure Key Vault provider for Secrets Store CSI Driver in an Azure Kubernetes Service (AKS) cluster][csi-secrets-store-driver] to enable the Azure Key Vault Secrets Store CSI Driver in your AKS cluster.
2323

2424
<a name='access-with-an-azure-ad-workload-identity'></a>
2525

2626
## Access with a Microsoft Entra Workload ID
2727

28-
A [Microsoft Entra Workload ID][workload-identity] is an identity that an application running on a pod uses that authenticates itself against other Azure services that support it, such as Storage or SQL. It integrates with the native Kubernetes capabilities to federate with external identity providers. In this security model, the AKS cluster acts as token issuer. Microsoft Entra ID then uses OpenID Connect (OIDC) to discover public signing keys and verify the authenticity of the service account token before exchanging it for a Microsoft Entra token. Your workload can exchange a service account token projected to its volume for a Microsoft Entra token using the Azure Identity client library using the Azure SDK or the Microsoft Authentication Library (MSAL).
28+
A [Microsoft Entra Workload ID][workload-identity] is an identity that an application running on a pod uses to authenticate itself against other Azure services, such as workloads in software. The Storage Store CSI Driver integrates with native Kubernetes capabilities to federate with external identity providers.
29+
30+
In this security model, the AKS cluster acts as token issuer. Microsoft Entra ID then uses OIDC to discover public signing keys and verify the authenticity of the service account token before exchanging it for a Microsoft Entra token. For your workload to exchange a service account token projected to its volume for a Microsoft Entra token, you need the Azure Identity client library in the Azure SDK or the Microsoft Authentication Library (MSAL)
2931

3032
> [!NOTE]
3133
>
3234
> - This authentication method replaces Microsoft Entra pod-managed identity (preview). The open source Microsoft Entra pod-managed identity (preview) in Azure Kubernetes Service has been deprecated as of 10/24/2022.
33-
> - Microsoft Entra Workload ID is supported on both Windows and Linux clusters.
35+
> - Microsoft Entra Workload ID is supports both Windows and Linux clusters.
3436
3537
### Configure workload identity
3638

@@ -70,7 +72,7 @@ A [Microsoft Entra Workload ID][workload-identity] is an identity that an applic
7072
echo $AKS_OIDC_ISSUER
7173
```
7274
73-
5. Establish a federated identity credential between the Microsoft Entra application and the service account issuer and subject. Get the object ID of the Microsoft Entra application using the following commands. Make sure to update the values for `serviceAccountName` and `serviceAccountNamespace` with the Kubernetes service account name and its namespace.
75+
5. Establish a federated identity credential between the Microsoft Entra application, service account issuer, and subject. Get the object ID of the Microsoft Entra application using the following commands. Make sure to update the values for `serviceAccountName` and `serviceAccountNamespace` with the Kubernetes service account name and its namespace.
7476
7577
```bash
7678
export SERVICE_ACCOUNT_NAME="workload-identity-sa" # sample name; can be changed
@@ -126,7 +128,7 @@ A [Microsoft Entra Workload ID][workload-identity] is an identity that an applic
126128
```
127129
128130
> [!NOTE]
129-
> If you use `objectAlias` instead of `objectName`, make sure to update the YAML script.
131+
> If you use `objectAlias` instead of `objectName`, update the YAML script to account for it.
130132
131133
8. Deploy a sample pod using the `kubectl apply` command and the following YAML script.
132134
@@ -161,9 +163,17 @@ A [Microsoft Entra Workload ID][workload-identity] is an identity that an applic
161163
EOF
162164
```
163165
164-
## Access with a user-assigned managed identity
166+
<a name='access-with-a-user-assigned-managed-identity'></a>
167+
168+
## Access with managed identity
169+
170+
A [Microsoft Entra Managed ID][managed-identity] is an identity that an administrator uses to authenticate themselves against other Azure services. The managed identity uses RBAC to federate with external identity providers.
171+
172+
In this security model, you can grant access to your cluster's resources to team members or tenants sharing a managed role. The role is checked for scope to access the keyvault and other credentials. When you [enabled the Azure Key Vault provider for Secrets Store CSI Driver on your AKS Cluster](./csi-secrets-store-driver.md#create-an-aks-cluster-with-azure-key-vault-provider-for-secrets-store-csi-driver-support), it created a user identity.
173+
174+
### Configure managed identity
165175
166-
1. Access your key vault using the [`az aks show`][az-aks-show] command and the user-assigned managed identity created by the add-on when you [enabled the Azure Key Vault provider for Secrets Store CSI Driver on your AKS Cluster](./csi-secrets-store-driver.md#create-an-aks-cluster-with-azure-key-vault-provider-for-secrets-store-csi-driver-support).
176+
1. Access your key vault using the [`az aks show`][az-aks-show] command and the user-assigned managed identity created by the add-on.
167177
168178
```azurecli-interactive
169179
az aks show -g <resource-group> -n <cluster-name> --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId -o tsv
@@ -177,7 +187,7 @@ A [Microsoft Entra Workload ID][workload-identity] is an identity that an applic
177187
az vm identity assign -g <resource-group> -n <agent-pool-vm> --identities <identity-resource-id>
178188
```
179189
180-
2. Create a role assignment that grants the identity permission to access the key vault secrets, access keys, and certificates using the [`az role assignment create`][az-role-assignment-create] command.
190+
2. Create a role assignment that grants the identity permission access to the key vault secrets, access keys, and certificates using the [`az role assignment create`][az-role-assignment-create] command.
181191
182192
```azurecli-interactive
183193
export IDENTITY_CLIENT_ID="$(az identity show -g <resource-group> --name <identity-name> --query 'clientId' -o tsv)"
@@ -258,9 +268,9 @@ A [Microsoft Entra Workload ID][workload-identity] is an identity that an applic
258268
kubectl apply -f pod.yaml
259269
```
260270
261-
## Validate the secrets
271+
## Validate Key Vault secrets
262272
263-
After the pod starts, the mounted content at the volume path that you specified in your deployment YAML is available. Use the following commands to validate your secrets and print a test secret.
273+
After the pod starts, the mounted content at the volume path specified in your deployment YAML is available. Use the following commands to validate your secrets and print a test secret.
264274
265275
1. Show secrets held in the secrets store using the following command.
266276
@@ -276,7 +286,7 @@ After the pod starts, the mounted content at the volume path that you specified
276286
277287
## Obtain certificates and keys
278288
279-
The Azure Key Vault design makes sharp distinctions between keys, secrets, and certificates. The certificate features of the Key Vault service were designed to make use of key and secret capabilities. When you create a key vault certificate, it creates an addressable key and secret with the same name. The key allows key operations, and the secret allows the retrieval of the certificate value as a secret.
289+
The Azure Key Vault design makes sharp distinctions between keys, secrets, and certificates. The certificate features of the Key Vault service are designed to make use of key and secret capabilities. When you create a key vault certificate, it creates an addressable key and secret with the same name. This key allows authentication operations, and the secret allows the retrieval of the certificate value as a secret.
280290
281291
A key vault certificate also contains public x509 certificate metadata. The key vault stores both the public and private components of your certificate in a secret. You can obtain each individual component by specifying the `objectType` in `SecretProviderClass`. The following table shows which objects map to the various resources associated with your certificate:
282292
@@ -286,7 +296,7 @@ A key vault certificate also contains public x509 certificate metadata. The key
286296
|`cert`|The certificate, in PEM format.|No|
287297
|`secret`|The private key and certificate, in PEM format.|Yes|
288298
289-
## Disable the Azure Key Vault provider for Secrets Store CSI Driver on an existing AKS cluster
299+
## Disable the addon on existing clusters
290300
291301
> [!NOTE]
292302
> Before you disable the add-on, ensure that *no* `SecretProviderClass` is in use. Trying to disable the add-on while a `SecretProviderClass` exists results in an error.
@@ -313,6 +323,7 @@ In this article, you learned how to create and provide an identity to access you
313323
[az-aks-show]: /cli/azure/aks#az-aks-show
314324
[az-identity-federated-credential-create]: /cli/azure/identity/federated-credential#az-identity-federated-credential-create
315325
[workload-identity]: ./workload-identity-overview.md
326+
[managed-identity]:/entra/identity/managed-identities-azure-resources/overview
316327
[az-account-set]: /cli/azure/account#az-account-set
317328
[az-identity-create]: /cli/azure/identity#az-identity-create
318329
[az-role-assignment-create]: /cli/azure/role/assignment#az-role-assignment-create

articles/aks/deploy-confidential-containers-default-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ For this preview release, we recommend for test and evaluation purposes to eithe
338338
339339
```
340340
341-
1. Prepare the RSA Encryption/Decryption key by [downloading][download-setup-key-script] the Bash script for the workload from GitHub. Save the file as `setup-key.sh`.
341+
1. Prepare the RSA Encryption/Decryption key by [https://github.com/microsoft/confidential-container-demos/blob/main/kafka/setup-key.sh] the Bash script for the workload from GitHub. Save the file as `setup-key.sh`.
342342
343343
1. Set the `MAA_ENDPOINT` environmental variable to match the value for the `SkrClientMAAEndpoint` from the `consumer.yaml` manifest file by running the following command.
344344

articles/api-management/sql-data-source-policy.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ The following example resolves a GraphQL query by making a single-result T-SQL r
209209
    </sql-statement>
210210
    <parameters>
211211
    <parameter name="@familyId">
212-
{context.GraphQL.Arguments.["id"]}
212+
@(context.GraphQL.Arguments["id"])
213213
</parameter>
214214
    </parameters>
215215
</request>
@@ -242,7 +242,7 @@ The query parameter is accessed using the `context.GraphQL.Arguments` context va
242242
    </sql-statement>
243243
    <parameters>
244244
    <parameter name="@familyId">
245-
{context.GraphQL.Arguments.["id"]}
245+
@(context.GraphQL.Arguments["id"])
246246
</parameter>
247247
    </parameters>
248248
</request>
@@ -288,10 +288,10 @@ The following example resolves a GraphQL mutation using a T-SQL INSERT statement
288288
    </sql-statement>
289289
    <parameters>
290290
    <parameter name="@familyId">
291-
{context.GraphQL.Arguments.["id"]}
291+
@(context.GraphQL.Arguments["id"])
292292
</parameter>
293293
    <parameter name="@familyName">
294-
{context.GraphQL.Arguments.["name"]}
294+
@(context.GraphQL.Arguments["name"])
295295
</parameter>
296296
    </parameters>
297297
</request>

0 commit comments

Comments
 (0)