From ef849f8dde558a08c405ea932dcecefb6837b37f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Mon, 8 Aug 2022 11:00:22 -0700 Subject: [PATCH 01/11] Update administration readme --- .../azure-keyvault-administration/README.md | 196 +++++++----------- 1 file changed, 78 insertions(+), 118 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/README.md b/sdk/keyvault/azure-keyvault-administration/README.md index 76948cbe9720..3e9b55f09ad6 100644 --- a/sdk/keyvault/azure-keyvault-administration/README.md +++ b/sdk/keyvault/azure-keyvault-administration/README.md @@ -14,11 +14,12 @@ and other secrets ([azure-keyvault-certificates](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates)) - create, manage, and deploy public and private SSL/TLS certificates -[Package (PyPI)][pypi_package_administration] | [API reference documentation][reference_docs] | [Product documentation][keyvault_docs] +[Source code][library_src] | [Package (PyPI)][pypi_package_administration] | [API reference documentation][reference_docs] | [Product documentation][keyvault_docs] | [Samples][administration_samples] ## _Disclaimer_ -_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_ +_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. + _Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started @@ -34,109 +35,31 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] * Python 3.7 or later -* A [managed HSM][managed_hsm]. If you need to create one, see the final two steps in the next section for details on creating the managed HSM with the Azure CLI. +* An existing [Key Vault Managed HSM][managed_hsm]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][managed_hsm_cli]. ### Authenticate the client -This document demonstrates using [DefaultAzureCredential][default_cred_ref] -to authenticate as a service principal. However, this package's clients -accept any [azure-identity][azure_identity] credential. See the -[azure-identity][azure_identity] documentation for more information about other -credentials. - -#### Create and Get credentials -This [Azure Cloud Shell][azure_cloud_shell] snippet shows how to create a -new service principal. Before using it, replace "your-application-name" with -a more appropriate name for your service principal. - -* Create a service principal: - ```Bash - az ad sp create-for-rbac --name http://your-application-name --skip-assignment - ``` - - > Output: - > ```json - > { - > "appId": "generated app id", - > "displayName": "your-application-name", - > "name": "http://your-application-name", - > "password": "random password", - > "tenant": "tenant id" - > } - > ``` - -* Take note of the service principal objectId - ```Bash - az ad sp show --id --query objectId - ``` - - - > Output: - > ``` - > "" - > ``` - -* Use the output to set **AZURE_CLIENT_ID** ("appId" above), **AZURE_CLIENT_SECRET** - ("password" above) and **AZURE_TENANT_ID** ("tenant" above) environment variables. - The following example shows a way to do this in Bash: - ```Bash - export AZURE_CLIENT_ID="generated app id" - export AZURE_CLIENT_SECRET="random password" - export AZURE_TENANT_ID="tenant id" - ``` - -* Create the managed HSM and grant the above mentioned service principal authorization to perform administrative operations on the managed HSM (replace `` and `` with your own, unique names and `` with the value from above): - ```Bash - az keyvault create --hsm-name "" --resource-group "" --administrators --location "" - ``` - This service principal is automatically added to the "Managed HSM Administrators" [built-in role][built_in_roles]. - -* Activate your managed HSM to enable key and role management. Detailed instructions can be found in [this quickstart guide](https://docs.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm). Create three self signed certificates and download the [Security Domain](https://docs.microsoft.com/azure/key-vault/managed-hsm/security-domain) for your managed HSM: - > **Important:** Create and store the RSA key pairs and security domain file generated in this step securely. - ```Bash - openssl req -newkey rsa:2048 -nodes -keyout cert_0.key -x509 -days 365 -out cert_0.cer - openssl req -newkey rsa:2048 -nodes -keyout cert_1.key -x509 -days 365 -out cert_1.cer - openssl req -newkey rsa:2048 -nodes -keyout cert_2.key -x509 -days 365 -out cert_2.cer - az keyvault security-domain download --hsm-name "" --sd-wrapping-keys ./certs/cert_0.cer ./certs/cert_1.cer ./certs/cert_2.cer --sd-quorum 2 --security-domain-file -SD.json - ``` - -* Use the above mentioned managed HSM name to retrieve details of your managed HSM instance which also contains your manged HSM URL (`hsmUri`): - ```Bash - az keyvault show --hsm-name "" - ``` - -#### Controlling access to your managed HSM -The designated administrators assigned during creation are automatically added to the "Managed HSM Administrators" [built-in role][built_in_roles], -who are able to download a security domain and [manage roles for data plane access][access_control], among other limited permissions. - -To perform other actions on keys, you need to assign principals to other roles such as "Managed HSM Crypto User", which can perform non-destructive key operations: - -```Bash -az keyvault role assignment create --hsm-name --role "Managed HSM Crypto User" --scope / --assignee-object-id --assignee-principal-type -``` +In order to interact with the Azure Key Vault service, you will need an instance of either a [KeyVaultAccessControlClient](#create-a-keyvaultaccesscontrolclient) or [KeyVaultBackupClient](#create-a-keyvaultbackupclient), as well as a **vault url** (which you may see as "DNS Name" in the Azure Portal) and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. -Please read [best practices][best_practices] for properly securing your managed HSM. +See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. -#### Create a client -Once the **AZURE_CLIENT_ID**, **AZURE_CLIENT_SECRET** and -**AZURE_TENANT_ID** environment variables are set, -[DefaultAzureCredential][default_cred_ref] will be able to authenticate the -clients. - -There are two clients available in this package – below are snippets demonstrating how to construct -each one of these clients. Constructing a client also requires your managed HSM's URL, which you can -get from the Azure CLI (shown above). - -##### Create a KeyVaultAccessControlClient +#### Create a KeyVaultAccessControlClient +After configuring your environment for the [DefaultAzureCredential][default_cred_ref] to use a suitable method of authentication, you can do the following to create an access control client (replacing the value of `vault_url` with your Managed HSM's URL): ```python from azure.identity import DefaultAzureCredential from azure.keyvault.administration import KeyVaultAccessControlClient credential = DefaultAzureCredential() -client = KeyVaultAccessControlClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultAccessControlClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) ``` -##### Create a KeyVaultBackupClient +> **NOTE:** For an asynchronous client, import `azure.keyvault.administration.aio`'s `KeyVaultAccessControlClient` instead. + +#### Create a KeyVaultBackupClient +After configuring your environment for the [DefaultAzureCredential][default_cred_ref] to use a suitable method of authentication, you can do the following to create a backup client (replacing the value of `vault_url` with your Managed HSM's URL): ```python from azure.identity import DefaultAzureCredential from azure.keyvault.administration import KeyVaultBackupClient @@ -146,14 +69,16 @@ credential = DefaultAzureCredential() client = KeyVaultBackupClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) ``` +> **NOTE:** For an asynchronous client, import `azure.keyvault.administration.aio`'s `KeyVaultBackupClient` instead. + ## Key concepts -### Role Definition +### Role definition A role definition defines the operations that can be performed, such as read, write, and delete. It can also define the operations that are excluded from allowed operations. A role definition is specified as part of a role assignment. -### Role Assignment. +### Role assignment A role assignment is the association of a role definition to a service principal. They can be created, listed, fetched individually, and deleted. ### KeyVaultAccessControlClient @@ -164,14 +89,14 @@ A `KeyVaultBackupClient` performs full key backups, full key restores, and selec ## Examples This section contains code snippets covering common tasks: -* Access Control - * [List all role definitions](#list-all-role-definitions "List all role definitions") - * [Set, Get, and Delete a role definition](#set-get-and-delete-a-role-defintion "Set, Get, and Delete a role definition") - * [List all role assignments](#list-all-role-assignments "List all role assignments") - * [Create, Get, and Delete a role assignment](#create-get-and-delete-a-role-assignment "Create, Get, and Delete a role assignment") -* Backup and Restore - * [Perform a full key backup](#perform-a-full-key-backup "Perform a full key backup") - * [Perform a full key restore](#perform-a-full-key-restore "Perform a full key restore") +* Access control + * [List all role definitions](#list-all-role-definitions) + * [Set, get, and delete a role definition](#set-get-and-delete-a-role-defintion) + * [List all role assignments](#list-all-role-assignments) + * [Create, get, and delete a role assignment](#create-get-and-delete-a-role-assignment) +* Backup and restore + * [Perform a full key backup](#perform-a-full-key-backup) + * [Perform a full key restore](#perform-a-full-key-restore) ### List all role definitions List the role definitions available for assignment. @@ -182,7 +107,10 @@ from azure.keyvault.administration import KeyVaultAccessControlClient, KeyVaultR credential = DefaultAzureCredential() -client = KeyVaultAccessControlClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultAccessControlClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) # this will list all role definitions available for assignment role_definitions = client.list_role_definitions(KeyVaultRoleScope.GLOBAL) @@ -193,7 +121,7 @@ for definition in role_definitions: print(definition.description) ``` -### Set, Get, and Delete a role definition +### Set, get, and delete a role definition `set_role_definition` can be used to either create a custom role definition or update an existing definition with the specified name. @@ -209,7 +137,10 @@ from azure.keyvault.administration import ( credential = DefaultAzureCredential() -client = KeyVaultAccessControlClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultAccessControlClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) # create a custom role definition permissions = [KeyVaultPermission(allowed_data_actions=[KeyVaultDataAction.READ_HSM_KEY])] @@ -239,7 +170,10 @@ from azure.keyvault.administration import KeyVaultAccessControlClient, KeyVaultR credential = DefaultAzureCredential() -client = KeyVaultAccessControlClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultAccessControlClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) # this will list all role assignments role_assignments = client.list_role_assignments(KeyVaultRoleScope.GLOBAL) @@ -250,8 +184,8 @@ for assignment in role_assignments: print(assignment.role_definition_id) ``` -### Create, Get, and Delete a role assignment -Assign a role to a service principal. This will require a role definition id from the list retrieved in the [above snippet](#list-all-role-definitions) and the principal object id retrieved in the [Create and Get credentials](#create-and-get-credentials) section. +### Create, get, and delete a role assignment +Assign a role to a service principal. This will require a role definition ID and service principal object ID. You can use an ID from the retrieved [list of role definitions](#list-all-role-definitions) for the former, and an assignment's `principal_id` from the list retrieved in the [above snippet](#list-all-role-assignments) for the latter. ```python from azure.identity import DefaultAzureCredential @@ -259,10 +193,15 @@ from azure.keyvault.administration import KeyVaultAccessControlClient, KeyVaultR credential = DefaultAzureCredential() -client = KeyVaultAccessControlClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultAccessControlClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) -role_definition_id = "" # Replace with the id of a definition returned from the previous example -principal_id = "" +# Replace with the id of a definition from the fetched list from an earlier example +role_definition_id = "" +# Replace with the principal_id of an assignment returned from the previous example +principal_id = "" # first, let's create the role assignment role_assignment = client.create_role_assignment(KeyVaultRoleScope.GLOBAL, role_definition_id, principal_id) @@ -363,12 +302,16 @@ except ResourceNotFoundError as e: Clients from the Administration library can only be used to perform operations on a managed HSM, so attempting to do so on a Key Vault will raise an error. ## Next steps +Several samples are available in the Azure SDK for Python GitHub repository. These samples provide example code for additional Key Vault scenarios: +| File | Description | +|-------------|-------------| +| [access_control_operations.py][access_control_operations_sample] | create/update/delete role definitions and role assignments | +| [access_control_operations_async.py][access_control_operations_async_sample] | create/update/delete role definitions and role assignments with an async client | +| [backup_restore_operations.py][backup_operations_sample] | full backup and restore | +| [backup_restore_operations_async.py][backup_operations_async_sample] | full backup and restore with an async client | -Content forthcoming - -### Additional Documentation -For more extensive documentation on Azure Key Vault, see the -[API reference documentation][reference_docs]. +### Additional documentation +For more extensive documentation on Azure Key Vault, see the [API reference documentation][reference_docs]. For more extensive documentation on Managed HSM, see the [service documentation][managed_hsm]. @@ -388,21 +331,38 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. + [access_control]: https://docs.microsoft.com/azure/key-vault/managed-hsm/access-control +[access_control_operations_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations.py +[access_control_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations_async.py +[administration_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/samples [azure_cloud_shell]: https://shell.azure.com/bash [azure_core_exceptions]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core#azure-core-library-exceptions [azure_identity]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity [azure_identity_pypi]: https://pypi.org/project/azure-identity/ [azure_sub]: https://azure.microsoft.com/free/ + +[backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations.py +[backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations_async.py [best_practices]: https://docs.microsoft.com/azure/key-vault/managed-hsm/best-practices [built_in_roles]: https://docs.microsoft.com/azure/key-vault/managed-hsm/built-in-roles + [code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ + [default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential + [keyvault_docs]: https://docs.microsoft.com/azure/key-vault/ -[managed_hsm]: https://docs.microsoft.com/azure/key-vault/managed-hsm/ + +[library_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration + +[managed_hsm]: https://docs.microsoft.com/azure/key-vault/managed-hsm/overview +[managed_hsm_cli]: https://docs.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli +[managed_identity]: https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview + [pip]: https://pypi.org/project/pip/ [pypi_package_administration]: https://pypi.org/project/azure-keyvault-administration + [reference_docs]: https://aka.ms/azsdk/python/keyvault-administration/docs From 251bf6c6542f5175183d77e15c224f2aa6cc5709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Mon, 8 Aug 2022 17:16:05 -0700 Subject: [PATCH 02/11] Update certificates readmes --- .../azure-keyvault-certificates/README.md | 211 ++++++------------ .../samples/README.md | 42 +++- 2 files changed, 104 insertions(+), 149 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/README.md b/sdk/keyvault/azure-keyvault-certificates/README.md index 2bda21c9b6cf..cb425f85ef14 100644 --- a/sdk/keyvault/azure-keyvault-certificates/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/README.md @@ -9,11 +9,12 @@ securely store and control access to tokens, passwords, certificates, API keys, and other secrets - Vault administration ([azure-keyvault-administration](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration)) - role-based access control (RBAC), and vault-level backup and restore options -[Source code][certificates_client_src] | [Package (PyPI)][pypi_package_certificates] | [API reference documentation][reference_docs] | [Product documentation][keyvault_docs] | [Samples][certificates_samples] +[Source code][library_src] | [Package (PyPI)][pypi_package_certificates] | [API reference documentation][reference_docs] | [Product documentation][azure_keyvault] | [Samples][certificates_samples] ## _Disclaimer_ -_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_ +_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. + _Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started @@ -29,102 +30,15 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] * Python 3.7 or later -* A Key Vault. If you need to create one, you can use the -[Azure Cloud Shell][azure_cloud_shell] to create one with these commands -(replace `"my-resource-group"` and `"my-key-vault"` with your own, unique -names): - - (Optional) if you want a new resource group to hold the Key Vault: - ```sh - az group create --name my-resource-group --location westus2 - ``` - - Create the Key Vault: - ```Bash - az keyvault create --resource-group my-resource-group --name my-key-vault - ``` - - Output: - ```json - { - "id": "...", - "location": "westus2", - "name": "my-key-vault", - "properties": { - "accessPolicies": [...], - "createMode": null, - "enablePurgeProtection": null, - "enableSoftDelete": null, - "enabledForDeployment": false, - "enabledForDiskEncryption": null, - "enabledForTemplateDeployment": null, - "networkAcls": null, - "provisioningState": "Succeeded", - "sku": { "name": "standard" }, - "tenantId": "...", - "vaultUri": "https://my-key-vault.vault.azure.net/" - }, - "resourceGroup": "my-resource-group", - "type": "Microsoft.KeyVault/vaults" - } - ``` - - > The `"vaultUri"` property is the `vault_url` used by [CertificateClient][certificate_client_docs] +* An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client -This document demonstrates using [DefaultAzureCredential][default_cred_ref] -to authenticate as a service principal. However, [CertificateClient][certificate_client_docs] -accepts any [azure-identity][azure_identity] credential. See the -[azure-identity][azure_identity] documentation for more information about other -credentials. - -#### Create a service principal (optional) -This [Azure Cloud Shell][azure_cloud_shell] snippet shows how to create a -new service principal. Before using it, replace "your-application-name" with -a more appropriate name for your service principal. - -Create a service principal: -```Bash -az ad sp create-for-rbac --name http://my-application --skip-assignment -``` +In order to interact with the Azure Key Vault service, you will need an instance of a [CertificateClient][certificate_client_docs], as well as a **vault url** (which you may see as "DNS Name" in the Azure Portal) and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. -> Output: -> ```json -> { -> "appId": "generated app id", -> "displayName": "my-application", -> "name": "http://my-application", -> "password": "random password", -> "tenant": "tenant id" -> } -> ``` - -Use the output to set **AZURE_CLIENT_ID** ("appId" above), **AZURE_CLIENT_SECRET** -("password" above) and **AZURE_TENANT_ID** ("tenant" above) environment variables. -The following example shows a way to do this in Bash: -```Bash -export AZURE_CLIENT_ID="generated app id" -export AZURE_CLIENT_SECRET="random password" -export AZURE_TENANT_ID="tenant id" -``` - -Authorize the service principal to perform certificate operations in your Key Vault: -```Bash -az keyvault set-policy --name my-key-vault --spn $AZURE_CLIENT_ID --certificate-permissions backup create delete get import list purge recover restore update -``` -> Possible certificate permissions: backup, create, delete, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers, purge, recover, restore, setissuers, update - -If you have enabled role-based access control (RBAC) for Key Vault instead, you can find roles like "Key Vault Certificates Officer" in our [RBAC guide][rbac_guide]. +See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. #### Create a client -Once the **AZURE_CLIENT_ID**, **AZURE_CLIENT_SECRET** and -**AZURE_TENANT_ID** environment variables are set, -[DefaultAzureCredential][default_cred_ref] will be able to authenticate the -[CertificateClient][certificate_client_docs]. - -Constructing the client also requires your vault's URL, which you can -get from the Azure CLI or the Azure Portal. In the Azure Portal, this URL is -the vault's "DNS Name". +After configuring your environment for the [DefaultAzureCredential][default_cred_ref] to use a suitable method of authentication, you can do the following to create a certificate client (replacing the value of `vault_url` with your vault's URL): ```python from azure.identity import DefaultAzureCredential @@ -135,24 +49,23 @@ credential = DefaultAzureCredential() certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential) ``` +> **NOTE:** For an asynchronous client, import `azure.keyvault.certificates.aio`'s `CertificateClient` instead. + ## Key concepts -### Certificate Client -With a [CertificateClient][certificate_client_docs] you can get certificates from the vault, create new certificates and -new versions of existing certificates, update certificate metadata, and delete certificates. You -can also manage certificate issuers, contacts, and management policies of certificates. This is -illustrated in the [examples](#examples) below. +### CertificateClient +With a [CertificateClient][certificate_client_docs] you can get certificates from the vault, create new certificates and new versions of existing certificates, update certificate metadata, and delete certificates. You can also manage certificate issuers, contacts, and management policies of certificates. This is illustrated in the [examples](#examples) below. ## Examples This section contains code snippets covering common tasks: -* [Create a Certificate](#create-a-certificate "Create a Certificate") -* [Retrieve a Certificate](#retrieve-a-certificate "Retrieve a Certificate") -* [Update Properties of an existing Certificate](#update-properties-of-an-existing-certificate "Update Properties of an existing Certificate") -* [Delete a Certificate](#delete-a-certificate "Delete a Certificate") -* [List Properties of Certificates](#list-properties-of-certificates "List Properties of Certificates") -* [Asynchronously create a Certificate](#asynchronously-create-a-certificate "Asynchronously create a Certificate") -* [Asynchronously list properties of Certificates](#asynchronously-list-properties-of-certificates "Asynchronously list properties of Certificates") - -### Create a Certificate +* [Create a certificate](#create-a-certificate) +* [Retrieve a certificate](#retrieve-a-certificate) +* [Update properties of an existing certificate](#update-properties-of-an-existing-certificate) +* [Delete a certificate](#delete-a-certificate) +* [List properties of certificates](#list-properties-of-certificates) +* [Asynchronously create a certificate](#asynchronously-create-a-certificate) +* [Asynchronously list properties of certificates](#asynchronously-list-properties-of-certificates) + +### Create a certificate [begin_create_certificate](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.begin_create_certificate) creates a certificate to be stored in the Azure Key Vault. If a certificate with the same name already exists, a new version of the certificate is created. Before creating a certificate, a management policy for the certificate can be @@ -174,7 +87,7 @@ If you would like to check the status of your certificate creation, you can call [get_certificate_operation](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.get_certificate_operation) with the name of the certificate. -### Retrieve a Certificate +### Retrieve a certificate [get_certificate](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.get_certificate) retrieves the latest version of a certificate previously stored in the Key Vault. ```python @@ -207,7 +120,7 @@ print(certificate.name) print(certificate.properties.version) ``` -### Update properties of an existing Certificate +### Update properties of an existing certificate [update_certificate_properties](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.update_certificate_properties) updates a certificate previously stored in the Key Vault. ```python @@ -227,7 +140,7 @@ print(updated_certificate.name) print(updated_certificate.properties.enabled) ``` -### Delete a Certificate +### Delete a certificate [begin_delete_certificate](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.begin_delete_certificate) requests Key Vault delete a certificate, returning a poller which allows you to wait for the deletion to finish. Waiting is helpful when the vault has [soft-delete][soft_delete] enabled, and you want to purge @@ -248,7 +161,7 @@ deleted_certificate = deleted_certificate_poller.result() print(deleted_certificate.name) print(deleted_certificate.deleted_on) ``` -### List properties of Certificates +### List properties of certificates [list_properties_of_certificates](https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient.list_properties_of_certificates) lists the properties of all certificates in the specified Key Vault. ```python @@ -296,7 +209,7 @@ async with client: ... ``` -### Asynchronously create a Certificate +### Asynchronously create a certificate [create_certificate](https://aka.ms/azsdk/python/keyvault-certificates/aio/docs#azure.keyvault.certificates.aio.CertificateClient.create_certificate) creates a certificate to be stored in the Azure Key Vault. If a certificate with the same name already exists, a new version of the certificate is created. Before creating a certificate, a management policy for the certificate can be @@ -319,7 +232,7 @@ create_certificate_result = await certificate_client.create_certificate( print(create_certificate_result) ``` -### Asynchronously list properties of Certificates +### Asynchronously list properties of certificates [list_properties_of_certificates](https://aka.ms/azsdk/python/keyvault-certificates/aio/docs#azure.keyvault.certificates.aio.CertificateClient.list_properties_of_certificates) lists all the properties of the certificates in the client's vault: ```python @@ -383,25 +296,32 @@ logger.addHandler(handler) credential = DefaultAzureCredential() # This client will log detailed information about its HTTP sessions, at DEBUG level -client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential, logging_enable=True) +client = CertificateClient( + vault_url="https://my-key-vault.vault.azure.net/", + credential=credential, + logging_enable=True +) ``` Network trace logging can also be enabled for any single operation: - ```python +```python certificate = certificate_client.get_certificate(certificate_name="cert-name", logging_enable=True) ``` ## Next steps Several samples are available in the Azure SDK for Python GitHub repository. These samples provide example code for additional Key Vault scenarios: -* [hello_world.py][hello_world_sample] and [hello_world_async.py][hello_world_async_sample] - create/get/update/delete certificates -* [backup_restore_operations.py][backup_operations_sample] and [backup_restore_operations_async.py][backup_operations_async_sample] - backup and -recover certificates -* [list_operations.py][list_operations_sample] and [list_operations_async.py][list_operations_async_sample] - list certificates -* [recover_purge_operations.py][recover_purge_operations_sample] and [recover_purge_operations_async.py][recover_purge_operations_async_sample] - recover and purge certificates -* [issuers.py][issuers_sample] and [issuers_async.py][issuers_async_sample] - manage certificate issuers -* [contacts.py][contacts_sample] and [contacts_async.py][contacts_async_sample] - manage certificate contacts - -### Additional Documentation +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete certificates | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and recover certificates | +| [import_certificate.py][import_certificate_sample] ([async version][import_certificate_async_sample]) | import PKCS#12 (PFX) and PEM-formatted certificates into Key Vault | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | list certificates | +| [recover_purge_operations.py][recover_purge_operations_sample] ([async version][recover_purge_operations_async_sample]) | recover and purge certificates | +| [issuers.py][issuers_sample] ([async version][issuers_async_sample]) | manage certificate issuers | +| [contacts.py][contacts_sample] ([async version][contacts_async_sample]) | manage certificate contacts | +| [parse_certificate.py][parse_sample] ([async version][parse_async_sample]) | extract a certificate's private key | + +### Additional documentation For more extensive documentation on Azure Key Vault, see the [API reference documentation][reference_docs]. ## Contributing @@ -420,33 +340,50 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. -[default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential -[azure_cloud_shell]: https://shell.azure.com/bash + + [azure_core_exceptions]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core#azure-core-library-exceptions [azure_identity]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity [azure_identity_pypi]: https://pypi.org/project/azure-identity/ +[azure_keyvault]: https://docs.microsoft.com/azure/key-vault/general/overview +[azure_keyvault_cli]: https://docs.microsoft.com/azure/key-vault/general/quick-create-cli [azure_sub]: https://azure.microsoft.com/free/ -[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ + [backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py [backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py -[hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py -[hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py -[keyvault_docs]: https://docs.microsoft.com/azure/key-vault/ -[list_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py -[list_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py -[recover_purge_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py -[recover_purge_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py + +[certificate_client_docs]: https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient +[certificates_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples +[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ [contacts_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py [contacts_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py + +[default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential + +[hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py +[hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py + +[import_certificate_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py +[import_certificate_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py [issuers_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py [issuers_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py + +[library_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates +[list_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py +[list_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py + +[managed_identity]: https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview + +[parse_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py +[parse_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py [pip]: https://pypi.org/project/pip/ [pypi_package_certificates]: https://pypi.org/project/azure-keyvault-certificates/ -[certificate_client_docs]: https://aka.ms/azsdk/python/keyvault-certificates/docs#azure.keyvault.certificates.CertificateClient + [rbac_guide]: https://docs.microsoft.com/azure/key-vault/general/rbac-guide +[recover_purge_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py +[recover_purge_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py [reference_docs]: https://aka.ms/azsdk/python/keyvault-certificates/docs -[certificates_client_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates -[certificates_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples + [soft_delete]: https://docs.microsoft.com/azure/key-vault/general/soft-delete-overview ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fsdk%2Fkeyvault%2Fazure-keyvault-certificates%2FREADME.png) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/README.md b/sdk/keyvault/azure-keyvault-certificates/samples/README.md index 6b8e59c7ead6..94c543c7a984 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/samples/README.md @@ -10,18 +10,36 @@ urlFragment: keyvault-certificates-samples # Azure Key Vault Certificates Client Library Python Samples -These code snippets highlight this SDK's common use cases. - -* [hello_world.py][hello_world_sample] and [hello_world_async.py][hello_world_async_sample] - create/get/update/delete certificates -* [backup_restore_operations.py][backup_operations_sample] and [backup_restore_operations_async.py][backup_operations_async_sample] - backup and -recover certificates -* [import_certificate.py][import_certificate_sample] and [import_certificate_async.py][import_certificate_async_sample] - import PKCS#12 (PFX) -and PEM-formatted certificates into Key Vault -* [list_operations.py][list_operations_sample] and [list_operations_async.py][list_operations_async_sample] - list certificates -* [recover_purge_operations.py][recover_purge_operations_sample] and [recover_purge_operations_async.py][recover_purge_operations_async_sample] - recover and purge certificates -* [issuers.py][issuers_sample] and [issuers_async.py][issuers_async_sample] - manage certificate issuers -* [contacts.py][contacts_sample] and [contacts_async.py][contacts_async_sample] - manage certificate contacts -* [parse_certificate.py][parse_sample] and [parse_certificate_async.py][parse_async_sample] - extract a certificate's private key +## Prerequisites + +You must have an [Azure subscription](https://azure.microsoft.com/free) and an +[Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/overview) to run +these samples. You can create a key vault with the +[Azure CLI](https://docs.microsoft.com/azure/key-vault/general/quick-create-cli). + +## Setup + +To run these samples, first install the Key Vault Certificates and Azure Identity libraries: + +```commandline +pip install azure-keyvault-certificates azure-identity +``` + +[Azure Identity](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md) is used for authenticating Key Vault clients. These samples use the +[DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md#defaultazurecredential), but any credential from the library can be used with Key Vault clients. + +## Contents + +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete certificates | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and recover certificates | +| [import_certificate.py][import_certificate_sample] ([async version][import_certificate_async_sample]) | import PKCS#12 (PFX) and PEM-formatted certificates into Key Vault | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | list certificates | +| [recover_purge_operations.py][recover_purge_operations_sample] ([async version][recover_purge_operations_async_sample]) | recover and purge certificates | +| [issuers.py][issuers_sample] ([async version][issuers_async_sample]) | manage certificate issuers | +| [contacts.py][contacts_sample] ([async version][contacts_async_sample]) | manage certificate contacts | +| [parse_certificate.py][parse_sample] ([async version][parse_async_sample]) | extract a certificate's private key | [backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py [backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py From f99f11a44f348cf243fa075096022ed5969b46c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Mon, 8 Aug 2022 17:32:25 -0700 Subject: [PATCH 03/11] Update sample comments --- .../samples/backup_restore_operations.py | 12 +++++------- .../samples/backup_restore_operations_async.py | 12 +++++------- .../azure-keyvault-certificates/samples/contacts.py | 12 +++++------- .../samples/contacts_async.py | 12 +++++------- .../samples/hello_world.py | 12 +++++------- .../samples/hello_world_async.py | 12 +++++------- .../samples/import_certificate.py | 2 +- .../samples/import_certificate_async.py | 4 ++-- .../azure-keyvault-certificates/samples/issuers.py | 12 +++++------- .../samples/issuers_async.py | 12 +++++------- .../samples/list_operations.py | 12 +++++------- .../samples/list_operations_async.py | 11 +++++------ .../samples/parse_certificate.py | 12 +++++------- .../samples/parse_certificate_async.py | 12 +++++------- .../samples/recover_purge_operations.py | 12 +++++------- .../samples/recover_purge_operations_async.py | 12 +++++------- 16 files changed, 73 insertions(+), 100 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py index 994f135d2856..56c4d11d9bd7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py @@ -6,7 +6,6 @@ import time from azure.keyvault.certificates import CertificateClient, CertificatePolicy from azure.identity import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -14,8 +13,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(certificates) resource for Azure Key Vault @@ -31,10 +31,8 @@ # 5. Restore a certificate (restore_certificate_backup) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py index d628a10e119d..7a383475fa80 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py @@ -7,7 +7,6 @@ from azure.keyvault.certificates.aio import CertificateClient from azure.keyvault.certificates import CertificatePolicy from azure.identity.aio import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(certificates) resource for Azure Key Vault @@ -34,10 +34,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. vault_url = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=vault_url, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py index afd61c72b1e8..5a1640c9a77c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py @@ -5,7 +5,6 @@ import os from azure.identity import DefaultAzureCredential from azure.keyvault.certificates import CertificateClient, CertificateContact -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -13,8 +12,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for the certificate contacts for a key vault. @@ -26,10 +26,8 @@ # 3. Delete contacts (delete_contacts) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py index 6655db972f43..28da547fe5ba 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py @@ -7,7 +7,6 @@ from azure.identity.aio import DefaultAzureCredential from azure.keyvault.certificates.aio import CertificateClient from azure.keyvault.certificates import CertificateContact -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for the certificate contacts for a key vault. @@ -30,10 +30,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py index 9e3402a6fabd..9b5e3dd4c0f6 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py @@ -5,7 +5,6 @@ import os from azure.identity import DefaultAzureCredential from azure.keyvault.certificates import CertificateClient, CertificatePolicy, CertificateContentType, WellKnownIssuerNames -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -13,8 +12,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL. (See -# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(certificate) resource for Azure Key Vault @@ -29,10 +29,8 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py index a492ec9a2ef5..ac7f78204a08 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py @@ -7,7 +7,6 @@ from azure.identity.aio import DefaultAzureCredential from azure.keyvault.certificates.aio import CertificateClient from azure.keyvault.certificates import CertificatePolicy, CertificateContentType, WellKnownIssuerNames -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL. (See -# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(certificate) resource for Azure Key Vault @@ -33,10 +33,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py index 88c5e8df0e75..c8cb5ca50788 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py @@ -19,7 +19,7 @@ # # 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with # environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # 4. A PFX certificate on your machine. Set an environment variable, PFX_CERT_PATH, with the path to this certificate. # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py index 1eda5d9cf8c1..a21e68a56009 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py @@ -16,7 +16,7 @@ # # 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with # environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # 4. A PFX certificate on your machine. Set an environment variable, PFX_CERT_PATH, with the path to this certificate. # @@ -33,7 +33,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): - # Instantiate a certificate client that will be used to call the service. + # Instantiate a backup client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py index d4d957710f67..09c1ac636797 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py @@ -5,7 +5,6 @@ import os from azure.identity import DefaultAzureCredential from azure.keyvault.certificates import AdministratorContact, CertificateClient -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -13,8 +12,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for certificate issuers. @@ -30,10 +30,8 @@ # 5. Delete an issuer (delete_issuer) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py index 9838a5351241..afa23a6febe2 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py @@ -7,7 +7,6 @@ from azure.identity.aio import DefaultAzureCredential from azure.keyvault.certificates.aio import CertificateClient from azure.keyvault.certificates import AdministratorContact -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for certificate issuers. @@ -34,10 +34,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py index 9ae0bb63a3db..f6f759cab86e 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py @@ -2,11 +2,9 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import datetime import os from azure.keyvault.certificates import CertificateClient, CertificatePolicy from azure.identity import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -14,8 +12,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. @@ -32,9 +31,8 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. Notice that the client is using default -# Azure credentials. To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py index 74fa32a7a964..3626258f6f49 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py @@ -7,7 +7,6 @@ from azure.keyvault.certificates import CertificatePolicy from azure.keyvault.certificates.aio import CertificateClient from azure.identity.aio import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. @@ -34,9 +34,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py index 26600cb6d088..360202f3bf87 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py @@ -7,7 +7,6 @@ from azure.identity import DefaultAzureCredential from azure.keyvault.certificates import CertificateClient, CertificatePolicy from azure.keyvault.secrets import SecretClient -from azure.core.exceptions import HttpResponseError from cryptography.hazmat.primitives.serialization import pkcs12 # ---------------------------------------------------------------------------------------------------------- @@ -20,8 +19,9 @@ # 3. azure-keyvault-certificates, azure-keyvault-secrets, azure-identity, and cryptography (v3.3+) packages # (pip install these). # -# 4. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL. (See -# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates how to get the private key of an existing Key Vault certificate @@ -36,10 +36,8 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() certificate_client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py index 6132eeb67943..328649ca2bed 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py @@ -9,7 +9,6 @@ from azure.keyvault.certificates.aio import CertificateClient from azure.keyvault.certificates import CertificatePolicy from azure.keyvault.secrets.aio import SecretClient -from azure.core.exceptions import HttpResponseError from cryptography.hazmat.primitives.serialization import pkcs12 # ---------------------------------------------------------------------------------------------------------- @@ -22,8 +21,9 @@ # 3. azure-keyvault-certificates, azure-keyvault-secrets, azure-identity, and cryptography (v3.3+) packages # (pip install these). # -# 4. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL. (See -# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates how to get the private key of an existing Key Vault certificate @@ -39,10 +39,8 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() certificate_client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py index 634b2a78c5cf..97c65ee5eb20 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py @@ -6,7 +6,6 @@ import time from azure.keyvault.certificates import CertificateClient, CertificatePolicy from azure.identity import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -14,8 +13,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic recover and purge operations on a vault(certificate) resource for Azure Key Vault @@ -30,10 +30,8 @@ # ---------------------------------------------------------------------------------------------------------- -# Instantiate a certificate client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Instantiate a backup client that will be used to call the service. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py index 3ec4bf210de2..0999d290692d 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py @@ -7,7 +7,6 @@ from azure.keyvault.certificates import CertificatePolicy from azure.keyvault.certificates.aio import CertificateClient from azure.identity.aio import DefaultAzureCredential -from azure.core.exceptions import HttpResponseError # ---------------------------------------------------------------------------------------------------------- # Prerequisites: @@ -15,8 +14,9 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with +# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID +# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic recover and purge operations on a vault(certificate) resource for Azure Key Vault @@ -32,10 +32,8 @@ async def run_sample(): - # Instantiate a certificate client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Instantiate a backup client that will be used to call the service. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = CertificateClient(vault_url=VAULT_URL, credential=credential) From b7f63bcf2ea6e2d63e9d5166b9c4e1786dc3c477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Mon, 8 Aug 2022 19:48:16 -0700 Subject: [PATCH 04/11] Update keys readmes --- sdk/keyvault/azure-keyvault-keys/README.md | 183 +++++------------- .../azure-keyvault-keys/samples/README.md | 39 ++-- 2 files changed, 78 insertions(+), 144 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-keys/README.md b/sdk/keyvault/azure-keyvault-keys/README.md index ce86349fc6aa..716d0519d835 100644 --- a/sdk/keyvault/azure-keyvault-keys/README.md +++ b/sdk/keyvault/azure-keyvault-keys/README.md @@ -11,15 +11,16 @@ and other secrets create, manage, and deploy public and private SSL/TLS certificates - Vault administration ([azure-keyvault-administration](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration)) - role-based access control (RBAC), and vault-level backup and restore options -[Source code][key_client_src] | [Package (PyPI)][pypi_package_keys] | [API reference documentation][reference_docs] | [Product documentation][keyvault_docs] | [Samples][key_samples] +[Source code][library_src] | [Package (PyPI)][pypi_package_keys] | [API reference documentation][reference_docs] | [Product documentation][azure_keyvault] | [Samples][key_samples] ## _Disclaimer_ -_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_ +_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. + _Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started -### Install packages +### Install the package Install [azure-keyvault-keys][pypi_package_keys] and [azure-identity][azure_identity_pypi] with [pip][pip]: ```Bash @@ -31,105 +32,15 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] * Python 3.7 or later -* A Key Vault. If you need to create one, you can use the -[Azure Cloud Shell][azure_cloud_shell] to create one with these commands -(replace `"my-resource-group"` and `"my-key-vault"` with your own, unique -names): - - (Optional) if you want a new resource group to hold the Key Vault: - ```sh - az group create --name my-resource-group --location westus2 - ``` - - Create the Key Vault: - ```Bash - az keyvault create --resource-group my-resource-group --name my-key-vault - ``` - - Output: - ```json - { - "id": "...", - "location": "westus2", - "name": "my-key-vault", - "properties": { - "accessPolicies": [...], - "createMode": null, - "enablePurgeProtection": null, - "enableSoftDelete": null, - "enabledForDeployment": false, - "enabledForDiskEncryption": null, - "enabledForTemplateDeployment": null, - "networkAcls": null, - "provisioningState": "Succeeded", - "sku": { "name": "standard" }, - "tenantId": "...", - "vaultUri": "https://my-key-vault.vault.azure.net/" - }, - "resourceGroup": "my-resource-group", - "type": "Microsoft.KeyVault/vaults" - } - ``` - - > The `"vaultUri"` property is the `vault_url` used by [KeyClient][key_client_docs] +* An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client -This document demonstrates using [DefaultAzureCredential][default_cred_ref] -to authenticate as a service principal. However, [KeyClient][key_client_docs] -accepts any [azure-identity][azure_identity] credential. See the -[azure-identity][azure_identity] documentation for more information about other -credentials. - -#### Create a service principal (optional) -This [Azure Cloud Shell][azure_cloud_shell] snippet shows how to create a -new service principal. Before using it, replace "your-application-name" with -a more appropriate name for your service principal. - -Create a service principal: -```Bash -az ad sp create-for-rbac --name http://my-application --skip-assignment -``` - -> Output: -> ```json -> { -> "appId": "generated app id", -> "displayName": "my-application", -> "name": "http://my-application", -> "password": "random password", -> "tenant": "tenant id" -> } -> ``` - -Use the output to set **AZURE_CLIENT_ID** ("appId" above), **AZURE_CLIENT_SECRET** -("password" above) and **AZURE_TENANT_ID** ("tenant" above) environment variables. -The following example shows a way to do this in Bash: -```Bash -export AZURE_CLIENT_ID="generated app id" -export AZURE_CLIENT_SECRET="random password" -export AZURE_TENANT_ID="tenant id" -``` +In order to interact with the Azure Key Vault service, you will need an instance of a [KeyClient][key_client_docs], as well as a **vault url** (which you may see as "DNS Name" in the Azure Portal) and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. -Authorize the service principal to perform key operations in your Key Vault: -```Bash -az keyvault set-policy --name my-key-vault --spn $AZURE_CLIENT_ID --key-permissions backup delete get list create update decrypt encrypt -``` -> Possible permissions: -> - Key management: backup, delete, get, list, purge, recover, restore, create, update, import -> - Cryptographic operations: decrypt, encrypt, unwrapKey, wrapKey, verify, sign - -If you have enabled role-based access control (RBAC) for Key Vault instead, you can find roles like "Key Vault Crypto Officer" in our [RBAC guide][rbac_guide]. -If you are managing your keys using Managed HSM, read about its [access control][access_control] that supports different built-in roles isolated from Azure Resource Manager (ARM). +See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. #### Create a client -Once the **AZURE_CLIENT_ID**, **AZURE_CLIENT_SECRET** and -**AZURE_TENANT_ID** environment variables are set, -[DefaultAzureCredential][default_cred_ref] will be able to authenticate the -[KeyClient][key_client_docs]. - -Constructing the client also requires your vault's URL, which you can -get from the Azure CLI or the Azure Portal. In the Azure Portal, this URL is -the vault's "DNS Name". +After configuring your environment for the [DefaultAzureCredential][default_cred_ref] to use a suitable method of authentication, you can do the following to create a key client (replacing the value of `vault_url` with your vault's URL): ```python from azure.identity import DefaultAzureCredential @@ -140,6 +51,8 @@ credential = DefaultAzureCredential() key_client = KeyClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential) ``` +> **NOTE:** For an asynchronous client, import `azure.keyvault.keys.aio`'s `KeyClient` instead. + ## Key concepts ### Keys Azure Key Vault can create and store RSA and elliptic curve keys. Both can @@ -150,20 +63,20 @@ keys and supported operations and algorithms, see the [KeyClient][key_client_docs] can create keys in the vault, get existing keys from the vault, update key metadata, and delete keys, as shown in the -[examples](#examples "examples") below. +[examples](#examples) below. ## Examples This section contains code snippets covering common tasks: -* [Create a key](#create-a-key "Create a key") -* [Retrieve a key](#retrieve-a-key "Retrieve a key") -* [Update an existing key](#update-an-existing-key "Update an existing key") -* [Delete a key](#delete-a-key "Delete a key") -* [Configure automatic key rotation](#configure-automatic-key-rotation "Configure automatic key rotation") -* [List keys](#list-keys "List keys") +* [Create a key](#create-a-key) +* [Retrieve a key](#retrieve-a-key) +* [Update an existing key](#update-an-existing-key) +* [Delete a key](#delete-a-key) +* [Configure automatic key rotation](#configure-automatic-key-rotation) +* [List keys](#list-keys) * [Perform cryptographic operations](#cryptographic-operations) -* [Async API](#async-api "Async API") -* [Asynchronously create a key](#asynchronously-create-a-key "Asynchronously create a key") -* [Asynchronously list keys](#asynchronously-list-keys "Asynchronously list keys") +* [Async API](#async-api) +* [Asynchronously create a key](#asynchronously-create-a-key) +* [Asynchronously list keys](#asynchronously-list-keys) ### Create a key [create_rsa_key](https://aka.ms/azsdk/python/keyvault-keys/docs#azure.keyvault.keys.KeyClient.create_rsa_key) and @@ -442,17 +355,14 @@ client.get_key("my-key", logging_enable=True) ## Next steps Several samples are available in the Azure SDK for Python GitHub repository. These provide example code for additional Key Vault scenarios: -* [hello_world.py][hello_world_sample] and -[hello_world_async.py][hello_world_async_sample] - create/get/update/delete keys -* [list_operations.py][list_operations_sample] and -[list_operations_async.py][list_operations_async_sample] - basic list operations for keys -* [backup_restore_operations.py][backup_operations_sample] and -[backup_restore_operations_async.py][backup_operations_async_sample] - backup and -recover keys -* [recover_purge_operations.py][recover_purge_sample] and -[recover_purge_operations_async.py][recover_purge_async_sample] - recovering and purging keys - -### Additional Documentation +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete keys | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | basic list operations for keys | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and recover keys | +| [recover_purge_operations.py][recover_purge_sample] ([async version][recover_purge_async_sample]) | recover and purge keys | + +### Additional documentation For more extensive documentation on Azure Key Vault, see the [API reference documentation][reference_docs]. @@ -472,31 +382,42 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. -[access_control]: https://docs.microsoft.com/azure/key-vault/managed-hsm/access-control -[azure_cloud_shell]: https://shell.azure.com/bash + + [azure_core_exceptions]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core#azure-core-library-exceptions [azure_identity]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity [azure_identity_pypi]: https://pypi.org/project/azure-identity/ +[azure_keyvault]: https://docs.microsoft.com/azure/key-vault/ +[azure_keyvault_cli]: https://docs.microsoft.com/azure/key-vault/general/quick-create-cli [azure_sub]: https://azure.microsoft.com/free/ -[default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential + +[backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py +[backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py + [code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ +[crypto_client_docs]: https://aka.ms/azsdk/python/keyvault-keys/crypto/docs + +[default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential + [hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py [hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py -[backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py -[backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py + +[key_client_docs]: https://aka.ms/azsdk/python/keyvault-keys/docs#azure.keyvault.keys.KeyClient +[key_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples + +[library_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys [list_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py [list_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py -[recover_purge_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py -[recover_purge_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py -[keyvault_docs]: https://docs.microsoft.com/azure/key-vault/ + +[managed_identity]: https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview + [pip]: https://pypi.org/project/pip/ [pypi_package_keys]: https://pypi.org/project/azure-keyvault-keys/ -[rbac_guide]: https://docs.microsoft.com/azure/key-vault/general/rbac-guide + +[recover_purge_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py +[recover_purge_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py [reference_docs]: https://aka.ms/azsdk/python/keyvault-keys/docs -[key_client_docs]: https://aka.ms/azsdk/python/keyvault-keys/docs#azure.keyvault.keys.KeyClient -[crypto_client_docs]: https://aka.ms/azsdk/python/keyvault-keys/crypto/docs -[key_client_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys -[key_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples + [soft_delete]: https://docs.microsoft.com/azure/key-vault/general/soft-delete-overview ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fsdk%2Fkeyvault%2Fazure-keyvault-keys%2FREADME.png) diff --git a/sdk/keyvault/azure-keyvault-keys/samples/README.md b/sdk/keyvault/azure-keyvault-keys/samples/README.md index 2128948be5d0..ae46fc5aed92 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/README.md +++ b/sdk/keyvault/azure-keyvault-keys/samples/README.md @@ -10,19 +10,32 @@ urlFragment: keyvault-keys-samples # Azure Key Vault Keys Client Library Python Samples -These code snippets highlight this SDK's common use cases. - -* [hello_world.py][hello_world_sample] and -[hello_world_async.py][hello_world_async_sample] - create/get/update/delete keys -* [list_operations.py][list_operations_sample] and -[list_operations_async.py][list_operations_async_sample] - basic list operations for keys -* [backup_restore_operations.py][backup_operations_sample] and -[backup_restore_operations_async.py][backup_operations_async_sample] - backup and -recover keys -* [recover_purge_operations.py][recover_purge_sample] and -[recover_purge_operations_async.py][recover_purge_async_sample] - recover and purge keys -* [key_rotation.py][key_rotation_sample] and -[key_rotation_async.py][key_rotation_async_sample] - rotate keys automatically and on-demand +## Prerequisites + +You must have an [Azure subscription](https://azure.microsoft.com/free) and an +[Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/overview) to run +these samples. You can create a key vault with the +[Azure CLI](https://docs.microsoft.com/azure/key-vault/general/quick-create-cli). + +## Setup + +To run these samples, first install the Key Vault Keys and Azure Identity libraries: + +```commandline +pip install azure-keyvault-keys azure-identity +``` + +[Azure Identity](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md) is used for authenticating Key Vault clients. These samples use the +[DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md#defaultazurecredential), but any credential from the library can be used with Key Vault clients. + +## Contents + +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete keys | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | basic list operations for keys | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and recover keys | +| [recover_purge_operations.py][recover_purge_sample] ([async version][recover_purge_async_sample]) | recover and purge keys | [hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py [hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py From cae620a8f98541fd402321364613f50488bded69 Mon Sep 17 00:00:00 2001 From: vcolin7 Date: Wed, 10 Aug 2022 13:24:10 -0700 Subject: [PATCH 05/11] Update README.md --- sdk/keyvault/azure-keyvault-administration/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/keyvault/azure-keyvault-administration/README.md b/sdk/keyvault/azure-keyvault-administration/README.md index 3e9b55f09ad6..34c1a8279e3d 100644 --- a/sdk/keyvault/azure-keyvault-administration/README.md +++ b/sdk/keyvault/azure-keyvault-administration/README.md @@ -66,7 +66,10 @@ from azure.keyvault.administration import KeyVaultBackupClient credential = DefaultAzureCredential() -client = KeyVaultBackupClient(vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", credential=credential) +client = KeyVaultBackupClient( + vault_url="https://my-managed-hsm-name.managedhsm.azure.net/", + credential=credential +) ``` > **NOTE:** For an asynchronous client, import `azure.keyvault.administration.aio`'s `KeyVaultBackupClient` instead. From 6c9000b19e38b5f3370230b4c0a6b83686ced117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 15:32:42 -0700 Subject: [PATCH 06/11] Remove link locales --- .../samples/backup_restore_operations.py | 2 +- .../samples/backup_restore_operations_async.py | 2 +- sdk/keyvault/azure-keyvault-certificates/samples/contacts.py | 2 +- .../azure-keyvault-certificates/samples/contacts_async.py | 2 +- .../azure-keyvault-certificates/samples/hello_world.py | 2 +- .../azure-keyvault-certificates/samples/hello_world_async.py | 2 +- .../azure-keyvault-certificates/samples/import_certificate.py | 2 +- .../samples/import_certificate_async.py | 2 +- sdk/keyvault/azure-keyvault-certificates/samples/issuers.py | 2 +- .../azure-keyvault-certificates/samples/issuers_async.py | 2 +- .../azure-keyvault-certificates/samples/list_operations.py | 4 ++-- .../samples/list_operations_async.py | 4 ++-- .../azure-keyvault-certificates/samples/parse_certificate.py | 2 +- .../samples/parse_certificate_async.py | 2 +- .../samples/recover_purge_operations.py | 2 +- .../samples/recover_purge_operations_async.py | 2 +- .../azure-keyvault-keys/samples/list_operations_async.py | 2 +- .../samples/backup_restore_operations.py | 2 +- .../samples/backup_restore_operations_async.py | 2 +- sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py | 2 +- .../azure-keyvault-secrets/samples/hello_world_async.py | 2 +- .../azure-keyvault-secrets/samples/list_operations.py | 4 ++-- .../azure-keyvault-secrets/samples/list_operations_async.py | 4 ++-- .../samples/recover_purge_operations.py | 4 ++-- .../samples/recover_purge_operations_async.py | 4 ++-- 25 files changed, 31 insertions(+), 31 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py index 56c4d11d9bd7..4f1644fb1da7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py index 7a383475fa80..ab78a5c389d0 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py index 5a1640c9a77c..697403de600d 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py index 28da547fe5ba..3cc17b1d0414 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py index 9b5e3dd4c0f6..f51e562e94ee 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py index ac7f78204a08..25f9382e6b8e 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py index c8cb5ca50788..145cdd84831c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py @@ -13,7 +13,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py index a21e68a56009..e872aa03dff2 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py index 09c1ac636797..188d51f4c692 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py index afa23a6febe2..3b49d4f08b25 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py index f6f759cab86e..705d85e4ad93 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # @@ -18,7 +18,7 @@ # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. -# The vault has to be soft-delete enabled to perform one of the following operations: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete +# The vault has to be soft-delete enabled to perform one of the following operations: https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete # # 1. Create certificate (begin_create_certificate) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py index 3626258f6f49..b2ea1f19efa1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # @@ -20,7 +20,7 @@ # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. -# The vault has to be soft-delete enabled to perform one of the following operations: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete +# The vault has to be soft-delete enabled to perform one of the following operations: https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete # # 1. Create certificate (create_certificate) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py index 360202f3bf87..fb47968e67f9 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py @@ -11,7 +11,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault. (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault. (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. A service principal with certificate get, delete, and purge permissions, as well as secret get # permissions. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py index 328649ca2bed..96095907c695 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py @@ -13,7 +13,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault. (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault. (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. A service principal with certificate get, delete, and purge permissions, as well as secret get # permissions. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py index 97c65ee5eb20..91d1e614e1c9 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py index 0999d290692d..d8bb7cffdd0a 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py index 14d32362dc5a..1c4818644e9e 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-keys and azure-identity libraries (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py index f4df283239c7..1390d976c286 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py index 5730793baef2..f5382f9276e6 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. Microsoft Azure Key Vault PyPI package - # https://pypi.python.org/pypi/azure-keyvault-secrets/ diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py index 116bf29a337e..54cede273ec1 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. Microsoft Azure Key Vault PyPI package - # https://pypi.python.org/pypi/azure-keyvault-secrets/ diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py index efe9a77f48c2..8dad982bd568 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py @@ -10,7 +10,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py index 5cf9ba7d8a3f..49856bef3871 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # @@ -18,7 +18,7 @@ # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(secret) resource for Azure Key Vault. # The vault has to be soft-delete enabled to perform one of the following operations. See -# https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. +# https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. # # 1. Create secret (set_secret) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py index e976dc7a8f74..08e3fe0587d7 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(secret) resource for Azure Key Vault. # The vault has to be soft-delete enabled to perform one of the following operations. See -# https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. +# https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. # # 1. Create secret (set_secret) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py index e922fda3c5fd..0eb5f75c9133 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py @@ -8,7 +8,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # @@ -18,7 +18,7 @@ # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates deleting and purging a vault(secret) resource for Azure Key Vault. # The vault has to be soft-delete enabled to perform one of the following operations. See -# https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. +# https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. # # 1. Create a secret (set_secret) # diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py index e12f8f5633a2..16840bea4d92 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py @@ -9,7 +9,7 @@ # ---------------------------------------------------------------------------------------------------------- # Prerequisites: -# 1. An Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) +# 1. An Azure Key Vault (https://docs.microsoft.com/azure/key-vault/quick-create-cli) # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates deleting and purging a vault(secret) resource for Azure Key Vault. # The vault has to be soft-delete enabled to perform one of the following operations. See -# https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. +# https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete for more information about soft-delete. # # 1. Create a secret (set_secret) # From 7dc6ec1a8d51cf77b789446d43bb24745117fdc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 15:54:24 -0700 Subject: [PATCH 07/11] Mention MHSM option for keys --- sdk/keyvault/azure-keyvault-certificates/README.md | 2 +- sdk/keyvault/azure-keyvault-keys/README.md | 5 ++++- sdk/keyvault/azure-keyvault-keys/samples/README.md | 11 ++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/README.md b/sdk/keyvault/azure-keyvault-certificates/README.md index cb425f85ef14..0e7d49fdf019 100644 --- a/sdk/keyvault/azure-keyvault-certificates/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/README.md @@ -33,7 +33,7 @@ authentication as demonstrated below. * An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client -In order to interact with the Azure Key Vault service, you will need an instance of a [CertificateClient][certificate_client_docs], as well as a **vault url** (which you may see as "DNS Name" in the Azure Portal) and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. +In order to interact with the Azure Key Vault service, you will need an instance of a [CertificateClient][certificate_client_docs], as well as a **vault url** and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. diff --git a/sdk/keyvault/azure-keyvault-keys/README.md b/sdk/keyvault/azure-keyvault-keys/README.md index 716d0519d835..f496f5356796 100644 --- a/sdk/keyvault/azure-keyvault-keys/README.md +++ b/sdk/keyvault/azure-keyvault-keys/README.md @@ -33,9 +33,10 @@ authentication as demonstrated below. * An [Azure subscription][azure_sub] * Python 3.7 or later * An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. +* If using Managed HSM, an existing [Key Vault Managed HSM][managed_hsm]. If you need to create a Managed HSM, you can do so using the Azure CLI by following the steps in [this document][managed_hsm_cli]. ### Authenticate the client -In order to interact with the Azure Key Vault service, you will need an instance of a [KeyClient][key_client_docs], as well as a **vault url** (which you may see as "DNS Name" in the Azure Portal) and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. +In order to interact with the Azure Key Vault service, you will need an instance of a [KeyClient][key_client_docs], as well as a **vault url** and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. @@ -409,6 +410,8 @@ contact opencode@microsoft.com with any additional questions or comments. [list_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py [list_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py +[managed_hsm]: https://docs.microsoft.com/azure/key-vault/managed-hsm/overview +[managed_hsm_cli]: https://docs.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli [managed_identity]: https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview [pip]: https://pypi.org/project/pip/ diff --git a/sdk/keyvault/azure-keyvault-keys/samples/README.md b/sdk/keyvault/azure-keyvault-keys/samples/README.md index ae46fc5aed92..c7451ad5315b 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/README.md +++ b/sdk/keyvault/azure-keyvault-keys/samples/README.md @@ -12,10 +12,9 @@ urlFragment: keyvault-keys-samples ## Prerequisites -You must have an [Azure subscription](https://azure.microsoft.com/free) and an -[Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/overview) to run -these samples. You can create a key vault with the -[Azure CLI](https://docs.microsoft.com/azure/key-vault/general/quick-create-cli). +You must have an [Azure subscription](https://azure.microsoft.com/free) and an [Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/overview) to run these samples. You can create a key vault with the [Azure CLI](https://docs.microsoft.com/azure/key-vault/general/quick-create-cli). + +You can also run these samples with a [Key Vault Managed HSM][managed_hsm]. If you need to create a Managed HSM, you can do so using the Azure CLI by following the steps in [this document][managed_hsm_cli]. ## Setup @@ -46,4 +45,6 @@ pip install azure-keyvault-keys azure-identity [recover_purge_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py [recover_purge_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py [key_rotation_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py -[key_rotation_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py \ No newline at end of file +[key_rotation_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py +[managed_hsm]: https://docs.microsoft.com/azure/key-vault/managed-hsm/overview +[managed_hsm_cli]: https://docs.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli \ No newline at end of file From f4c5602ea4332db3660cb794be6d070a4b67eb18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 16:01:22 -0700 Subject: [PATCH 08/11] 'backup' -> 'certificate' client --- .../samples/backup_restore_operations.py | 2 +- .../samples/backup_restore_operations_async.py | 2 +- sdk/keyvault/azure-keyvault-certificates/samples/contacts.py | 2 +- .../azure-keyvault-certificates/samples/contacts_async.py | 2 +- sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py | 2 +- .../azure-keyvault-certificates/samples/hello_world_async.py | 2 +- .../samples/import_certificate_async.py | 2 +- sdk/keyvault/azure-keyvault-certificates/samples/issuers.py | 2 +- .../azure-keyvault-certificates/samples/issuers_async.py | 2 +- .../azure-keyvault-certificates/samples/list_operations.py | 2 +- .../samples/list_operations_async.py | 2 +- .../azure-keyvault-certificates/samples/parse_certificate.py | 2 +- .../samples/parse_certificate_async.py | 2 +- .../samples/recover_purge_operations.py | 2 +- .../samples/recover_purge_operations_async.py | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py index 4f1644fb1da7..07b7b04c8f15 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py @@ -31,7 +31,7 @@ # 5. Restore a certificate (restore_certificate_backup) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py index ab78a5c389d0..b3fa76cd8f97 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py @@ -34,7 +34,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. vault_url = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py index 697403de600d..2e46d66387d9 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py @@ -26,7 +26,7 @@ # 3. Delete contacts (delete_contacts) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py index 3cc17b1d0414..739db6e6a69b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py @@ -30,7 +30,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py index f51e562e94ee..b4296760d6b7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py @@ -29,7 +29,7 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py index 25f9382e6b8e..e4df03196e29 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py @@ -33,7 +33,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py index e872aa03dff2..f0acaf073322 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py @@ -33,7 +33,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py index 188d51f4c692..3969878f4767 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py @@ -30,7 +30,7 @@ # 5. Delete an issuer (delete_issuer) # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py index 3b49d4f08b25..d4c65845a1a7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py @@ -34,7 +34,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py index 705d85e4ad93..67a2f632b1b1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py @@ -31,7 +31,7 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py index b2ea1f19efa1..e0b00e418cd3 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py @@ -34,7 +34,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py index fb47968e67f9..cb4d81d3bfd3 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py @@ -36,7 +36,7 @@ # # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py index 96095907c695..1f08052d6db0 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py @@ -39,7 +39,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py index 91d1e614e1c9..8f6027fdcaa1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py @@ -30,7 +30,7 @@ # ---------------------------------------------------------------------------------------------------------- -# Instantiate a backup client that will be used to call the service. +# Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py index d8bb7cffdd0a..cf2d962edea2 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py @@ -32,7 +32,7 @@ async def run_sample(): - # Instantiate a backup client that will be used to call the service. + # Instantiate a certificate client that will be used to call the service. # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() From ede1a41992c71068b3663bac1bae3b1abcadc93b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 16:13:38 -0700 Subject: [PATCH 09/11] Remove principal auth references in samples --- .../samples/access_control_operations.py | 5 ++--- .../samples/access_control_operations_async.py | 5 ++--- .../samples/backup_restore_operations.py | 5 ++--- .../samples/backup_restore_operations_async.py | 5 ++--- .../samples/backup_restore_operations.py | 5 ++--- .../samples/backup_restore_operations_async.py | 5 ++--- sdk/keyvault/azure-keyvault-certificates/samples/contacts.py | 5 ++--- .../azure-keyvault-certificates/samples/contacts_async.py | 5 ++--- .../azure-keyvault-certificates/samples/hello_world.py | 5 ++--- .../azure-keyvault-certificates/samples/hello_world_async.py | 5 ++--- .../samples/import_certificate.py | 5 ++--- .../samples/import_certificate_async.py | 5 ++--- sdk/keyvault/azure-keyvault-certificates/samples/issuers.py | 5 ++--- .../azure-keyvault-certificates/samples/issuers_async.py | 5 ++--- .../azure-keyvault-certificates/samples/list_operations.py | 5 ++--- .../samples/list_operations_async.py | 5 ++--- .../azure-keyvault-certificates/samples/parse_certificate.py | 5 ++--- .../samples/parse_certificate_async.py | 5 ++--- .../samples/recover_purge_operations.py | 5 ++--- .../samples/recover_purge_operations_async.py | 5 ++--- .../azure-keyvault-keys/samples/backup_restore_operations.py | 5 ++--- .../samples/backup_restore_operations_async.py | 5 ++--- sdk/keyvault/azure-keyvault-keys/samples/hello_world.py | 5 ++--- .../azure-keyvault-keys/samples/hello_world_async.py | 5 ++--- sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py | 5 ++--- .../azure-keyvault-keys/samples/key_rotation_async.py | 5 ++--- sdk/keyvault/azure-keyvault-keys/samples/list_operations.py | 5 ++--- .../azure-keyvault-keys/samples/list_operations_async.py | 5 ++--- .../azure-keyvault-keys/samples/recover_purge_operations.py | 5 ++--- .../samples/recover_purge_operations_async.py | 5 ++--- 30 files changed, 60 insertions(+), 90 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations.py b/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations.py index 47049e15c8e7..39981df2a9e5 100644 --- a/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations.py @@ -20,9 +20,8 @@ # # 3. Set environment variable MANAGED_HSM_URL with the URL of your managed HSM # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates role definition and assignment operations for Managed HSM diff --git a/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations_async.py b/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations_async.py index e98086bc4a0a..da13b4b25a28 100644 --- a/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations_async.py +++ b/sdk/keyvault/azure-keyvault-administration/samples/access_control_operations_async.py @@ -17,9 +17,8 @@ # # 3. Set environment variable MANAGED_HSM_URL with the URL of your managed HSM # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates role definition and assignment operations for Managed HSM diff --git a/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations.py index 5bbcac01dcf8..7fb5e24ba2d7 100644 --- a/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations.py @@ -15,9 +15,8 @@ # # 3. Set environment variable MANAGED_HSM_URL with the URL of your managed HSM # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. A storage account containing a blob storage container # (See https://docs.microsoft.com/azure/storage/blobs/storage-blobs-introduction) diff --git a/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations_async.py index d60559904905..f29f7324f8c0 100644 --- a/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-administration/samples/backup_restore_operations_async.py @@ -16,9 +16,8 @@ # # 3. Set environment variable MANAGED_HSM_URL with the URL of your managed HSM # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. A storage account containing a blob storage container # (See https://docs.microsoft.com/azure/storage/blobs/storage-blobs-introduction) diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py index 07b7b04c8f15..bdd12ae560d9 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py @@ -13,9 +13,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(certificates) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py index b3fa76cd8f97..ed27763210bb 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(certificates) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py index 2e46d66387d9..3c37d766eb87 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts.py @@ -12,9 +12,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for the certificate contacts for a key vault. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py index 739db6e6a69b..468bccb83e1e 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for the certificate contacts for a key vault. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py index b4296760d6b7..47764bae8654 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py @@ -12,9 +12,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(certificate) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py index e4df03196e29..6d54b60e5b2b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(certificate) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py index 145cdd84831c..865e6f73fb3b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py @@ -17,9 +17,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 4. A PFX certificate on your machine. Set an environment variable, PFX_CERT_PATH, with the path to this certificate. # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py index f0acaf073322..5994295012f8 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 4. A PFX certificate on your machine. Set an environment variable, PFX_CERT_PATH, with the path to this certificate. # diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py index 3969878f4767..be2bb3567693 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers.py @@ -12,9 +12,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for certificate issuers. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py index d4c65845a1a7..746b7a806a67 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates basic CRUD operations for certificate issuers. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py index 67a2f632b1b1..782737c46b64 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py @@ -12,9 +12,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py index e0b00e418cd3..5a3d3e9138d3 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(certificate) resource for Azure Key Vault. diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py index cb4d81d3bfd3..78dd65fdfa04 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py @@ -19,9 +19,8 @@ # 3. azure-keyvault-certificates, azure-keyvault-secrets, azure-identity, and cryptography (v3.3+) packages # (pip install these). # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates how to get the private key of an existing Key Vault certificate diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py index 1f08052d6db0..633feda4a382 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py @@ -21,9 +21,8 @@ # 3. azure-keyvault-certificates, azure-keyvault-secrets, azure-identity, and cryptography (v3.3+) packages # (pip install these). # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates how to get the private key of an existing Key Vault certificate diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py index 8f6027fdcaa1..a3151a9c65fd 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py @@ -13,9 +13,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic recover and purge operations on a vault(certificate) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py index cf2d962edea2..a981b07befaf 100644 --- a/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py @@ -14,9 +14,8 @@ # # 2. azure-keyvault-certificates and azure-identity packages (pip install these) # -# 3. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-certificates#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic recover and purge operations on a vault(certificate) resource for Azure Key Vault diff --git a/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py index 11df264614db..545d30932c43 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations.py @@ -15,9 +15,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, backup, delete, purge, and restore permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py index 01edd5b77df3..6eda888ac56f 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/backup_restore_operations_async.py @@ -15,9 +15,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, backup, delete, purge, and restore permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py b/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py index e5d4290af592..1bc75da648cb 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/hello_world.py @@ -15,9 +15,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, get, update, and delete permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py index f78602ebe7a1..4a428991344e 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/hello_world_async.py @@ -16,9 +16,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, get, update, and delete permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py b/sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py index 2194c7e771a5..ff7eb00fb485 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/key_rotation.py @@ -14,9 +14,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key rotation permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py b/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py index fea9b28e9b18..77b38da6b80e 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/key_rotation_async.py @@ -16,9 +16,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key rotation permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py b/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py index 707a8f952203..205e19053112 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/list_operations.py @@ -14,9 +14,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, list, and delete permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py index 1c4818644e9e..6db0ae030eb2 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/list_operations_async.py @@ -15,9 +15,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, list, and delete permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py index 470e9dc8193d..1b7053760d67 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations.py @@ -14,9 +14,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, delete, recover, and purge permissions for your service principal in your vault # diff --git a/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py index abe315a514ae..d84f889ca013 100644 --- a/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-keys/samples/recover_purge_operations_async.py @@ -15,9 +15,8 @@ # # 3. Set environment variable VAULT_URL with the URL of your key vault # -# 4. Set up your environment to use azure-identity's DefaultAzureCredential. To authenticate a service principal with -# environment variables, set AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 4. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # 5. Key create, delete, recover, and purge permissions for your service principal in your vault # From 32e1ffcc8bf4fce64bd548fa839e425f69646830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 17:00:04 -0700 Subject: [PATCH 10/11] Update secrets sample comments --- .../samples/backup_restore_operations.py | 8 +++----- .../samples/backup_restore_operations_async.py | 8 +++----- .../azure-keyvault-secrets/samples/hello_world.py | 8 +++----- .../azure-keyvault-secrets/samples/hello_world_async.py | 8 +++----- .../azure-keyvault-secrets/samples/list_operations.py | 4 ++-- .../samples/list_operations_async.py | 8 +++----- .../samples/recover_purge_operations.py | 8 +++----- .../samples/recover_purge_operations_async.py | 8 +++----- 8 files changed, 23 insertions(+), 37 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py index 1390d976c286..9e33569cf48e 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py @@ -13,8 +13,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(secret) resource for Azure Key Vault @@ -31,9 +31,7 @@ # ---------------------------------------------------------------------------------------------------------- # Instantiate a secret client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py index f5382f9276e6..29d329f44fa2 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py @@ -14,8 +14,8 @@ # 2. Microsoft Azure Key Vault PyPI package - # https://pypi.python.org/pypi/azure-keyvault-secrets/ # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic backup and restore operations on a vault(secret) resource for Azure Key Vault @@ -32,9 +32,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): # Instantiate a secret client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py index 54cede273ec1..238fec3a8182 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py @@ -14,8 +14,8 @@ # 2. Microsoft Azure Key Vault PyPI package - # https://pypi.python.org/pypi/azure-keyvault-secrets/ # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(secret) resource for Azure Key Vault @@ -31,9 +31,7 @@ # ---------------------------------------------------------------------------------------------------------- # Instantiate a secret client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py index 8dad982bd568..0399cc09d4f3 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py @@ -14,8 +14,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic CRUD operations on a vault(secret) resource for Azure Key Vault @@ -31,9 +31,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): # Instantiate a secret client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py index 49856bef3871..371b5941f81d 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py @@ -12,8 +12,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(secret) resource for Azure Key Vault. diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py index 08e3fe0587d7..b4433e6cc828 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py @@ -13,8 +13,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates the basic list operations on a vault(secret) resource for Azure Key Vault. @@ -33,9 +33,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): # Instantiate a secret client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py index 0eb5f75c9133..dfb3b97db51b 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py @@ -12,8 +12,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates deleting and purging a vault(secret) resource for Azure Key Vault. @@ -30,9 +30,7 @@ # ---------------------------------------------------------------------------------------------------------- # Instantiate a secret client that will be used to call the service. -# Notice that the client is using default Azure credentials. -# To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', -# 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. +# Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py index 16840bea4d92..9888672e3b5a 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py +++ b/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py @@ -13,8 +13,8 @@ # # 2. azure-keyvault-secrets and azure-identity libraries (pip install these) # -# 3. Set Environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, VAULT_URL -# (See https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-keys#authenticate-the-client) +# 3. Set up your environment to use azure-identity's DefaultAzureCredential. For more information about how to configure +# the DefaultAzureCredential, refer to https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential # # ---------------------------------------------------------------------------------------------------------- # Sample - demonstrates deleting and purging a vault(secret) resource for Azure Key Vault. @@ -31,9 +31,7 @@ # ---------------------------------------------------------------------------------------------------------- async def run_sample(): # Instantiate a secret client that will be used to call the service. - # Notice that the client is using default Azure credentials. - # To make default credentials work, ensure that environment variables 'AZURE_CLIENT_ID', - # 'AZURE_CLIENT_SECRET' and 'AZURE_TENANT_ID' are set with the service principal credentials. + # Here we use the DefaultAzureCredential, but any azure-identity credential can be used. VAULT_URL = os.environ["VAULT_URL"] credential = DefaultAzureCredential() client = SecretClient(vault_url=VAULT_URL, credential=credential) From a68d28f2fd2934cef8d79c4e98cd95a4e0b9e675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 10 Aug 2022 17:17:04 -0700 Subject: [PATCH 11/11] Update secrets READMEs --- .../azure-keyvault-certificates/README.md | 1 - sdk/keyvault/azure-keyvault-secrets/README.md | 177 +++++------------- .../azure-keyvault-secrets/samples/README.md | 37 ++-- 3 files changed, 78 insertions(+), 137 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-certificates/README.md b/sdk/keyvault/azure-keyvault-certificates/README.md index 0e7d49fdf019..6d604aafcf8e 100644 --- a/sdk/keyvault/azure-keyvault-certificates/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/README.md @@ -379,7 +379,6 @@ contact opencode@microsoft.com with any additional questions or comments. [pip]: https://pypi.org/project/pip/ [pypi_package_certificates]: https://pypi.org/project/azure-keyvault-certificates/ -[rbac_guide]: https://docs.microsoft.com/azure/key-vault/general/rbac-guide [recover_purge_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py [recover_purge_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py [reference_docs]: https://aka.ms/azsdk/python/keyvault-certificates/docs diff --git a/sdk/keyvault/azure-keyvault-secrets/README.md b/sdk/keyvault/azure-keyvault-secrets/README.md index 375d929d6f50..c1c424aacd20 100644 --- a/sdk/keyvault/azure-keyvault-secrets/README.md +++ b/sdk/keyvault/azure-keyvault-secrets/README.md @@ -12,11 +12,12 @@ create, store, and control access to the keys used to encrypt your data create, manage, and deploy public and private SSL/TLS certificates - Vault administration ([azure-keyvault-administration](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration)) - role-based access control (RBAC), and vault-level backup and restore options -[Source code][secret_client_src] | [Package (PyPI)][pypi_package_secrets] | [API reference documentation][reference_docs] | [Product documentation][keyvault_docs] | [Samples][secret_samples] +[Source code][library_src] | [Package (PyPI)][pypi_package_secrets] | [API reference documentation][reference_docs] | [Product documentation][azure_keyvault] | [Samples][secret_samples] ## _Disclaimer_ -_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_ +_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. + _Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started @@ -32,104 +33,15 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] * Python 3.7 or later -* A Key Vault. If you need to create one, you can use the -[Azure Cloud Shell][azure_cloud_shell] to create one with these commands -(replace `"my-resource-group"` and `"my-key-vault"` with your own, unique -names): - - (Optional) if you want a new resource group to hold the Key Vault: - ```sh - az group create --name my-resource-group --location westus2 - ``` - - Create the Key Vault: - ```Bash - az keyvault create --resource-group my-resource-group --name my-key-vault - ``` - - Output: - ```json - { - "id": "...", - "location": "westus2", - "name": "my-key-vault", - "properties": { - "accessPolicies": [...], - "createMode": null, - "enablePurgeProtection": null, - "enableSoftDelete": null, - "enabledForDeployment": false, - "enabledForDiskEncryption": null, - "enabledForTemplateDeployment": null, - "networkAcls": null, - "provisioningState": "Succeeded", - "sku": { "name": "standard" }, - "tenantId": "...", - "vaultUri": "https://my-key-vault.vault.azure.net/" - }, - "resourceGroup": "my-resource-group", - "type": "Microsoft.KeyVault/vaults" - } - ``` - - > The `"vaultUri"` property is the `vault_url` used by [SecretClient][secret_client_docs] +* An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client -This document demonstrates using [DefaultAzureCredential][default_cred_ref] -to authenticate as a service principal. However, [SecretClient][secret_client_docs] -accepts any [azure-identity][azure_identity] credential. See the -[azure-identity][azure_identity] documentation for more information about other -credentials. - - -#### Create a service principal (optional) -This [Azure Cloud Shell][azure_cloud_shell] snippet shows how to create a -new service principal. Before using it, replace "your-application-name" with -a more appropriate name for your service principal. - -Create a service principal: -```Bash -az ad sp create-for-rbac --name http://my-application --skip-assignment -``` - -> Output: -> ```json -> { -> "appId": "generated app id", -> "displayName": "my-application", -> "name": "http://my-application", -> "password": "random password", -> "tenant": "tenant id" -> } -> ``` - -Use the output to set **AZURE_CLIENT_ID** ("appId" above), **AZURE_CLIENT_SECRET** -("password" above) and **AZURE_TENANT_ID** ("tenant" above) environment variables. -The following example shows a way to do this in Bash: -```Bash -export AZURE_CLIENT_ID="generated app id" -export AZURE_CLIENT_SECRET="random password" -export AZURE_TENANT_ID="tenant id" -``` - -Authorize the service principal to perform key operations in your Key Vault: -```Bash -az keyvault set-policy --name my-key-vault --spn $AZURE_CLIENT_ID --secret-permissions get set list delete backup recover restore purge -``` -> Possible permissions: -> - Secret management: set, backup, delete, get, list, purge, recover, restore +In order to interact with the Azure Key Vault service, you will need an instance of a [SecretClient][secret_client_docs], as well as a **vault url** and a credential object. This document demonstrates using a [DefaultAzureCredential][default_cred_ref], which is appropriate for most scenarios, including local development and production environments. We recommend using a [managed identity][managed_identity] for authentication in production environments. -If you have enabled role-based access control (RBAC) for Key Vault instead, you can find roles like "Key Vault Secrets Officer" in our [RBAC guide][rbac_guide]. +See [azure-identity][azure_identity] documentation for more information about other methods of authentication and their corresponding credential types. #### Create a client -Once the **AZURE_CLIENT_ID**, **AZURE_CLIENT_SECRET** and -**AZURE_TENANT_ID** environment variables are set, -[DefaultAzureCredential][default_cred_ref] will be able to authenticate the -[SecretClient][secret_client_docs]. - -Constructing the client also requires your vault's URL, which you can -get from the Azure CLI or the Azure Portal. In the Azure Portal, this URL is -the vault's "DNS Name". +After configuring your environment for the [DefaultAzureCredential][default_cred_ref] to use a suitable method of authentication, you can do the following to create a secret client (replacing the value of `vault_url` with your vault's URL): ```python from azure.identity import DefaultAzureCredential @@ -140,6 +52,8 @@ credential = DefaultAzureCredential() secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential) ``` +> **NOTE:** For an asynchronous client, import `azure.keyvault.secrets.aio`'s `SecretClient` instead. + ## Key concepts ### Secret A secret consists of a secret value and its associated metadata and management @@ -150,19 +64,19 @@ Vault stores and manages them, see the [SecretClient][secret_client_docs] can set secret values in the vault, update secret metadata, and delete secrets, as shown in the -[examples](#examples "examples") below. +[examples](#examples) below. ## Examples This section contains code snippets covering common tasks: -* [Set a Secret](#set-a-secret "Set a Secret") -* [Retrieve a Secret](#retrieve-a-secret "Retrieve a Secret") -* [Update Secret metadata](#update-secret-metadata "Update Secret metadata") -* [Delete a Secret](#delete-a-secret "Delete a Secret") -* [List Secrets](#list-secrets "List Secrets") -* [Asynchronously create a Secret](#asynchronously-create-a-secret "Asynchronously create a Secret") -* [Asynchronously list Secrets](#asynchronously-list-secrets "Asynchronously list Secrets") - -### Set a Secret +* [Set a secret](#set-a-secret) +* [Retrieve a secret](#retrieve-a-secret) +* [Update secret metadata](#update-secret-metadata) +* [Delete a secret](#delete-a-secret) +* [List secrets](#list-secrets) +* [Asynchronously create a secret](#asynchronously-create-a-secret) +* [Asynchronously list secrets](#asynchronously-list-secrets) + +### Set a secret [set_secret](https://aka.ms/azsdk/python/keyvault-secrets/docs#azure.keyvault.secrets.SecretClient.set_secret) creates new secrets and changes the values of existing secrets. If no secret with the given name exists, `set_secret` creates a new secret with that name and the @@ -183,7 +97,7 @@ print(secret.value) print(secret.properties.version) ``` -### Retrieve a Secret +### Retrieve a secret [get_secret](https://aka.ms/azsdk/python/keyvault-secrets/docs#azure.keyvault.secrets.SecretClient.get_secret) retrieves a secret previously stored in the Key Vault. @@ -200,7 +114,7 @@ print(secret.name) print(secret.value) ``` -### Update Secret metadata +### Update secret metadata [update_secret_properties](https://aka.ms/azsdk/python/keyvault-secrets/docs#azure.keyvault.secrets.SecretClient.update_secret_properties) updates a secret's metadata. It cannot change the secret's value; use [set_secret](#set-a-secret) to set a secret's value. @@ -225,7 +139,7 @@ print(updated_secret_properties.content_type) print(updated_secret_properties.enabled) ``` -### Delete a Secret +### Delete a secret [begin_delete_secret](https://aka.ms/azsdk/python/keyvault-secrets/docs#azure.keyvault.secrets.SecretClient.begin_delete_secret) requests Key Vault delete a secret, returning a poller which allows you to wait for the deletion to finish. Waiting is helpful when the vault has [soft-delete][soft_delete] enabled, and you want to purge (permanently delete) the secret as @@ -377,7 +291,11 @@ logger.addHandler(handler) credential = DefaultAzureCredential() # This client will log detailed information about its HTTP sessions, at DEBUG level -secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential, logging_enable=True) +secret_client = SecretClient( + vault_url="https://my-key-vault.vault.azure.net/", + credential=credential, + logging_enable=True +) ``` Similarly, `logging_enable` can enable detailed logging for a single operation, @@ -389,15 +307,12 @@ secret_client.get_secret("my-secret", logging_enable=True) ## Next steps Several samples are available in the Azure SDK for Python GitHub repository. These provide example code for additional Key Vault scenarios: -* [hello_world.py][hello_world_sample] and -[hello_world_async.py][hello_world_async_sample] - create/get/update/delete secrets -* [list_operations.py][list_operations_sample] and -[list_operations_async.py][list_operations_async_sample] - basic list operations for secrets -* [backup_restore_operations.py][backup_operations_sample] and -[backup_restore_operations_async.py][backup_operations_async_sample] - backup and -restore secrets -* [recover_purge_operations.py][recover_purge_sample] and -[recover_purge_operations_async.py][recover_purge_async_sample] - recovering and purging secrets +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete secrets | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | basic list operations for secrets | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and restore secrets | +| [recover_purge_operations.py][recover_purge_sample] ([async version][recover_purge_async_sample]) | recover and purge secrets | ### Additional Documentation For more extensive documentation on Azure Key Vault, see the @@ -419,27 +334,39 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. + + [azure_cloud_shell]: https://shell.azure.com/bash [azure_core_exceptions]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core#azure-core-library-exceptions [azure_identity]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity [azure_identity_pypi]: https://pypi.org/project/azure-identity/ +[azure_keyvault]: https://docs.microsoft.com/azure/key-vault/general/overview +[azure_keyvault_cli]: https://docs.microsoft.com/azure/key-vault/general/quick-create-cli [azure_sub]: https://azure.microsoft.com/free/ + +[backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py +[backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py + [code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ + [default_cred_ref]: https://aka.ms/azsdk/python/identity/docs#azure.identity.DefaultAzureCredential + [hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py [hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py -[backup_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations.py -[backup_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/backup_restore_operations_async.py + +[library_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets [list_operations_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/list_operations.py [list_operations_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/list_operations_async.py -[recover_purge_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py -[recover_purge_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py -[keyvault_docs]: https://docs.microsoft.com/azure/key-vault/ + +[managed_identity]: https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview + [pip]: https://pypi.org/project/pip/ [pypi_package_secrets]: https://pypi.org/project/azure-keyvault-secrets/ -[rbac_guide]: https://docs.microsoft.com/azure/key-vault/general/rbac-guide + +[recover_purge_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations.py +[recover_purge_async_sample]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/keyvault/azure-keyvault-secrets/samples/recover_purge_operations_async.py [reference_docs]: https://aka.ms/azsdk/python/keyvault-secrets/docs -[secret_client_src]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets + [secret_client_docs]: https://aka.ms/azsdk/python/keyvault-secrets/docs#azure.keyvault.secrets.SecretClient [secret_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-secrets/samples [soft_delete]: https://docs.microsoft.com/azure/key-vault/general/soft-delete-overview diff --git a/sdk/keyvault/azure-keyvault-secrets/samples/README.md b/sdk/keyvault/azure-keyvault-secrets/samples/README.md index 91f87777e998..8c2ecabc1119 100644 --- a/sdk/keyvault/azure-keyvault-secrets/samples/README.md +++ b/sdk/keyvault/azure-keyvault-secrets/samples/README.md @@ -10,17 +10,32 @@ urlFragment: keyvault-secrets-samples # Azure Key Vault Secrets Client Library Python Samples -These code snippets highlight this SDK's common use cases. - -* [hello_world.py][hello_world_sample] and -[hello_world_async.py][hello_world_async_sample] - create/get/update/delete secrets -* [list_operations.py][list_operations_sample] and -[list_operations_async.py][list_operations_async_sample] - basic list operations for secrets -* [backup_restore_operations.py][backup_operations_sample] and -[backup_restore_operations_async.py][backup_operations_async_sample] - backup and -restore secrets -* [recover_purge_operations.py][recover_purge_sample] and -[recover_purge_operations_async.py][recover_purge_async_sample] - recovering and purging secrets +## Prerequisites + +You must have an [Azure subscription](https://azure.microsoft.com/free) and an +[Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/overview) to run +these samples. You can create a key vault with the +[Azure CLI](https://docs.microsoft.com/azure/key-vault/general/quick-create-cli). + +## Setup + +To run these samples, first install the Key Vault Secrets and Azure Identity libraries: + +```commandline +pip install azure-keyvault-secrets azure-identity +``` + +[Azure Identity](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md) is used for authenticating Key Vault clients. These samples use the +[DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md#defaultazurecredential), but any credential from the library can be used with Key Vault clients. + +## Contents + +| File | Description | +|-------------|-------------| +| [hello_world.py][hello_world_sample] ([async version][hello_world_async_sample]) | create/get/update/delete secrets | +| [list_operations.py][list_operations_sample] ([async version][list_operations_async_sample]) | basic list operations for secrets | +| [backup_restore_operations.py][backup_operations_sample] ([async version][backup_operations_async_sample]) | back up and restore secrets | +| [recover_purge_operations.py][recover_purge_sample] ([async version][recover_purge_async_sample]) | recover and purge secrets | [hello_world_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-secrets/samples/hello_world.py [hello_world_async_sample]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-secrets/samples/hello_world_async.py