{"id":5877,"date":"2018-10-10T06:31:20","date_gmt":"2018-10-10T13:31:20","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5877"},"modified":"2025-06-13T19:27:58","modified_gmt":"2025-06-14T02:27:58","slug":"azure-key-vault-credentials","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/azure-key-vault-credentials\/","title":{"rendered":"B\u00f3veda de claves Azure para credenciales"},"content":{"rendered":"<div class=\"paragraph\">\n<p><span style=\"font-weight: 400\">Azure Key Vault puede almacenar nombres de usuario y contrase\u00f1as y gestionar informaci\u00f3n sensible en Azure. Una vez que Azure Key Vaults almacena la informaci\u00f3n, los servicios de Azure que especifique (y S\u00d3LO los servicios de Azure que especifique) pueden acceder a ella<\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En esta entrada de blog, voy a mostrarte c\u00f3mo usar Azure Key Vault para almacenar las credenciales de Couchbase Server y acceder a ellas desde una Azure Function.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Esta entrada de blog sobre c\u00f3mo almacenar credenciales y contrase\u00f1as de bases de datos en Azure Key Vault se basar\u00e1 en entradas de blog anteriores sobre Couchbase en Azure, por lo que es posible que desee revisarlas antes de continuar:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-getting-started-easy-free\/\">Azure: Empezar es f\u00e1cil y gratis<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-functions-lazy-initialization-couchbase-server\/\">Funciones Azure e inicializaci\u00f3n perezosa con Couchbase Server<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-functions-couchbase-server-video\/\">Azure Functions con Couchbase Server (v\u00eddeo)<\/a><\/li>\n<li>Con esto deber\u00eda bastar para ponerse al d\u00eda, pero hay muchos m\u00e1s <a href=\"https:\/\/www.couchbase.com\/blog\/es\/tag\/azure\/\">entradas de blog sobre Azure<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Como siempre, si quieres seguirnos, puedes encontrar el <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/114AzureKeyVault\/src\">fuente completa en GitHub<\/a>.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_installation_and_setup_of_couchbase_server\">Instalaci\u00f3n y configuraci\u00f3n de Couchbase Server<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>El resto de este post asume que tienes un Couchbase Server configurado en Azure. Puedes seguir los enlaces anteriores para aprender sobre este proceso (\u00a1es f\u00e1cil!).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En mi configuraci\u00f3n para esta entrada del blog, he creado un cl\u00faster (que requiere la creaci\u00f3n de credenciales de administrador) y un \u00fanico cubo llamado \"mybucket\".<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Estoy usando Couchbase Enterprise Edition 5.5.2 ya que es la m\u00e1s f\u00e1cil de configurar en Azure. La edici\u00f3n Community y versiones anteriores de Couchbase tambi\u00e9n deber\u00edan funcionar.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_creating_an_azure_key_vault\">Creaci\u00f3n de una b\u00f3veda de claves de Azure<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Se puede crear una b\u00f3veda de claves de Azure con Azure Portal UI, o se puede crear <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/key-vault\/key-vault-manage-with-cli2\">con la l\u00ednea de comandos<\/a>. En un post anterior sobre el uso del <a href=\"https:\/\/www.couchbase.com\/blog\/es\/aks-couchbase-kubernetes-operator\/\">Operador Couchbase Kubernetes con Azure<\/a>Tambi\u00e9n he utilizado la l\u00ednea de comandos. Es posible que desee revisar que si usted no ha utilizado el <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/get-started-with-azure-cli\">L\u00ednea de comandos Azure<\/a> utilidad antes.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>El primer paso s\u00f3lo debe ejecutarse una vez por cada suscripci\u00f3n de Azure. Suponiendo que su l\u00ednea de comandos est\u00e1 configurada para la suscripci\u00f3n que desea, registre Azure Key Vault con esa suscripci\u00f3n con este comando:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\">PS C:\\&gt; az provider register -n Microsoft.KeyVault<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>El siguiente paso es crear una b\u00f3veda. Con este comando necesitas especificar un grupo de recursos. He creado un grupo de recursos de antemano llamado \"KeyVaultDemo\". Tambi\u00e9n decid\u00ed utilizar la regi\u00f3n North Central US de Azure.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\">PS C:\\&gt; az keyvault create --name 'MyCouchbaseKeyVault' --resource-group KeyVaultDemo --location 'North Central US'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Azure tardar\u00e1 unos instantes en terminar (pero el proceso es as\u00edncrono, por lo que la l\u00ednea de comandos aparecer\u00e1 inmediatamente). La l\u00ednea de comandos le indicar\u00e1 c\u00f3mo comprobar el progreso.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora que ha creado el nombre de usuario y la contrase\u00f1a de la tienda en Azure Key Vault creado, usted puede comenzar a poner sus secretos en ella. Voy a almacenar 4 piezas de informaci\u00f3n en mi b\u00f3veda con estos 4 comandos:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\">PS C:\\&gt; az keyvault secret set --vault-name 'MyCouchbaseKeyVault' --name 'cbUsername' --value 'cbAdminUsername'\r\nPS C:\\&gt; az keyvault secret set --vault-name 'MyCouchbaseKeyVault' --name 'cbPassword' --value 'r6#Y%2^XXXXX'\r\nPS C:\\&gt; az keyvault secret set --vault-name 'MyCouchbaseKeyVault' --name 'cbBucketName' --value 'mybucket'\r\nPS C:\\&gt; az keyvault secret set --vault-name 'MyCouchbaseKeyVault' --name 'cbClusterUri' --value 'https:\/\/52.162.XXX.XXX:8091'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><em>(Nota: He redactado parte de la informaci\u00f3n secreta utilizando equis)<\/em><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Puede examinar sus secretos en el Portal Azure.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/10\/11401-azure-key-vault-ui.png\" alt=\"Azure Portal UI showing the Azure Key Vault\" \/><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_benefits_of_azure_key_vault\">Ventajas de Azure Key Vault<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Antes de seguir, hablemos de <em>por qu\u00e9<\/em> querr\u00e1 utilizar Azure Key Vault.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En entradas anteriores del blog, almacen\u00e9 las credenciales de Couchbase como configuraci\u00f3n de la aplicaci\u00f3n. En comparaci\u00f3n con la configuraci\u00f3n de la aplicaci\u00f3n, Azure Key Vault te ofrece las siguientes capacidades de credenciales:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>App Settings almacena los valores como texto sin formato. Azure Key Vault los almacena cifrados.<\/li>\n<li>Cada aplicaci\u00f3n tiene su propia configuraci\u00f3n. Con Azure Key Vault, cada una de tus aplicaciones puede compartir una \u00fanica b\u00f3veda de claves.<\/li>\n<li>Azure Key Vault almacena un historial de versiones de los valores, y cada secreto tiene una fecha de activaci\u00f3n (opcional) y una fecha de caducidad.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Azure Key Vault no <em>sustituir<\/em> configuraci\u00f3n de la aplicaci\u00f3n. El uso de Azure Key Vault es mejor cuando se desea almacenar de forma segura informaci\u00f3n confidencial (como credenciales\/contrase\u00f1as\/claves de API) y\/o utilizarlas en varios servicios.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_getting_azure_functions_ready_for_azure_key_vault\">C\u00f3mo preparar Azure Functions para Azure Key Vault<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>En un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-functions-lazy-initialization-couchbase-server\/\">entrada anterior sobre Azure Functions<\/a>almacen\u00e9 las credenciales de Couchbase en la configuraci\u00f3n de la aplicaci\u00f3n. Ahora que tengo esas credenciales en Azure Key Vault, voy a cambiar mi c\u00f3digo Azure Functions para usar Azure Key Vault en su lugar.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En primer lugar, he creado un servicio Azure Functions. Puedes crearlo desde el Azure Portal UI, o desde Visual Studio o Visual Studio Code directamente. Esta vez, utilic\u00e9 Visual Studio Code (para m\u00e1s informaci\u00f3n, echa un vistazo a la secci\u00f3n <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-azuretools.vscode-azurefunctions\">Extensi\u00f3n de Azure Functions<\/a>). Se me ocurri\u00f3 nombrar mi servicio Azure Functions <strong>cbkeyvaultdemo<\/strong>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, he anotado los URI de cada uno de los secretos que he creado. Tengo 4 secretos, as\u00ed que necesito 4 URIs (\"Secret Identifier\" como en esta captura de pantalla):<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/10\/11402-azure-key-vault-uris.png\" alt=\"Azure Key Vault URIs\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>He creado 4 constantes y pegado estos valores en mi c\u00f3digo. (Es posible que desee almacenar estos eventualmente en la configuraci\u00f3n de la aplicaci\u00f3n).<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">const string Vault_Bucketname_Uri = \"https:\/\/mycouchbasekeyvault.vault.azure.net\/secrets\/cbBucketName\/1bda709e1372465a8f03b6e8c3fb6014\";\r\nconst string Vault_Clusteruri_Uri = \"https:\/\/mycouchbasekeyvault.vault.azure.net\/secrets\/cbClusterUri\/48605e696b3645a6a7c396a15d636dc2\";\r\nconst string Vault_Username_Uri = \"https:\/\/mycouchbasekeyvault.vault.azure.net\/secrets\/cbUsername\/7d73ef5fa2174e5491d4a50a42bb0800\";\r\nconst string Vault_Password_Uri = \"https:\/\/mycouchbasekeyvault.vault.azure.net\/secrets\/cbPassword\/d6f61ff7e41a4fdcbe17de0b1fe1f115\";<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>El siguiente paso es instalar un par de paquetes con NuGet: <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.Services.AppAuthentication\">Microsoft.Azure.Services.AppAuthentication<\/a> y <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.KeyVault\/\">Microsoft.Azure.KeyVault<\/a>. He aqu\u00ed un ejemplo de instalaci\u00f3n de esos paquetes con la l\u00ednea de comandos:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\">C:\\&gt; dotnet add package Microsoft.Azure.Services.AppAuthentication\r\nC:\\&gt; dotnet add package Microsoft.Azure.KeyVault<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_getting_secrets_from_azure_key_vault\">Obtenci\u00f3n de secretos de Azure Key Vault<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>El siguiente paso es escribir algo de c\u00f3digo para obtener los valores secretos de Azure Key Vault. He creado una peque\u00f1a funci\u00f3n de ayuda que podr\u00eda reutilizar:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">private static string GetSecret(string url)\r\n{\r\n    var azureServiceTokenProvider = new AzureServiceTokenProvider();\r\n    var kvClient = new KeyVaultClient(\r\n        new KeyVaultClient.AuthenticationCallback(\r\n            azureServiceTokenProvider.KeyVaultTokenCallback), client);\r\n    var secret = kvClient.GetSecretAsync(url).Result.Value;\r\n    return secret;\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Como antes, utilizar\u00e9 <a href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-functions-lazy-initialization-couchbase-server\/\">Inicializaci\u00f3n perezosa<\/a> en esta funci\u00f3n de Azure. Esto es lo que parece cuando se utiliza la configuraci\u00f3n de la aplicaci\u00f3n (antes):<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">private static readonly Lazy&lt;IBucket&gt; Bucket = new Lazy&lt;IBucket&gt;(() =&gt;\r\n{\r\n\tvar uri = Environment.GetEnvironmentVariable(\"couchbaseUri\");\r\n\tvar bucketName = Environment.GetEnvironmentVariable(\"couchbaseBucketName\");\r\n\tvar username = Environment.GetEnvironmentVariable(\"couchbaseUsername\");\r\n\tvar password = Environment.GetEnvironmentVariable(\"couchbasePassword\");\r\n\r\n\tvar cluster = new Cluster(new ClientConfiguration\r\n\t{\r\n\t\tServers = new List&lt;Uri&gt; { new Uri(uri) }\r\n\t});\r\n\tcluster.Authenticate(username, password);\r\n\treturn cluster.OpenBucket(bucketName);\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Y as\u00ed es como se ve cuando lo cambio para usar el bot\u00f3n <code>GetBucket<\/code> (despu\u00e9s):<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">private static readonly Lazy&lt;IBucket&gt; Bucket = new Lazy&lt;IBucket&gt;(() =&gt;\r\n{\r\n    var uri = GetSecret(Vault_Clusteruri_Uri);\r\n    var bucketName = GetSecret(Vault_Bucketname_Uri);\r\n    var username = GetSecret(Vault_Username_Uri);\r\n    var password = GetSecret(Vault_Password_Uri);\r\n    var cluster = new Cluster(new ClientConfiguration\r\n    {\r\n        Servers = new List&lt;Uri&gt; { new Uri(uri) }\r\n    });\r\n    cluster.Authenticate(username, password);\r\n    return cluster.OpenBucket(bucketName);\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Una cosa importante a tener en cuenta sobre esta funci\u00f3n de ayuda. Obtener secretos de Azure Key Vault es una operaci\u00f3n as\u00edncrona. Sin embargo, <code>Perezoso<\/code> espera una lambda s\u00edncrona. Una opci\u00f3n es utilizar el m\u00e9todo <a href=\"https:\/\/github.com\/StephenCleary\/AsyncEx\/wiki\/AsyncLazy\">AsyncLazy<\/a>. Otra opci\u00f3n (que es lo que yo hice) es llamar a un m\u00e9todo as\u00edncrono de forma s\u00edncrona utilizando <code>.resultado<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>\u00bfD\u00f3nde <code>cliente<\/code> \u00bfDe d\u00f3nde viene?<\/strong> F\u00e1cil, he a\u00f1adido <code>private static HttpClient client = new HttpClient();<\/code> a la clase. Puede <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/114AzureKeyVault\/src\">consulte el c\u00f3digo fuente completo en GitHub<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>He seguido principalmente esta excelente entrada del blog de Jeff Hollan titulada <a href=\"https:\/\/medium.com\/statuscode\/getting-key-vault-secrets-in-azure-functions-37620fd20a0b\">Obtenci\u00f3n de secretos de b\u00f3veda de claves en Azure Functions<\/a> (excepto que \u00e9l almacen\u00f3 una cadena de conexi\u00f3n EventHub y yo estoy almacenando credenciales Couchbase).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_authorization\">Autorizaci\u00f3n<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Te estar\u00e1s preguntando: Matt, \u00bfpor qu\u00e9 publicaste los URI reales en tu c\u00f3digo de ejemplo?<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Es porque los propios URI no son secretos sensibles. Solo los servicios autorizados por Azure pueden obtener informaci\u00f3n \u00fatil de estas URI.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Para autorizar este servicio Azure Function, debe hacer dos cosas:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li><strong>Habilitar una identidad de servicio gestionada<\/strong> para el servicio Azure Functions. Esto es tan f\u00e1cil como hacer clic en \"Managed service identity\" en el portal de Azure y cambiar un \"off\" a un \"on\".<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/10\/11403-managed-service-identity.png\" alt=\"Managed Service Identity\" \/><\/span><\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\" start=\"2\">\n<li><strong>A\u00f1adir una pol\u00edtica de acceso a su Azure Key Vault<\/strong>. Solo tienes que buscar Azure Key Vault en la interfaz de usuario del portal de Azure, hacer clic en \"Pol\u00edticas de acceso\" en Configuraci\u00f3n y a\u00f1adir una nueva pol\u00edtica de acceso. Puedes definir permisos detallados para acceder a claves, secretos y certificados (que, por cierto, Azure Key Vault tambi\u00e9n puede almacenar). Yo s\u00f3lo necesitaba permisos de \"Obtenci\u00f3n\", as\u00ed que mi pol\u00edtica de acceso era muy sencilla:<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/10\/11404-access-policy.png\" alt=\"Access policy\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Eso es todo. Pero sin este importante paso, la c\u00e1mara acorazada de claves no permitir\u00e1 que ninguna persona o aplicaci\u00f3n recupere una clave.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary_and_next_steps\">Resumen y pr\u00f3ximos pasos<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>En lugar de desplegar Azure Functions (u otros servicios de aplicaci\u00f3n) con las credenciales de Couchbase almacenadas en la configuraci\u00f3n de la aplicaci\u00f3n, ahora podemos poner esas credenciales (y cualquier otra informaci\u00f3n sensible) en una Azure Key Vault.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Damos permiso a la(s) aplicaci\u00f3n(es) para acceder a los secretos de la c\u00e1mara acorazada, y Azure impedir\u00e1 que nadie m\u00e1s obtenga esos secretos.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Las aplicaciones extraen los secretos de Azure Key Vault.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si tienes alguna pregunta sobre esta entrada del blog, no dudes en dejar un comentario a continuaci\u00f3n o b\u00fascame en <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si est\u00e1 utilizando Couchbase con Azure, toda la plataforma <a href=\"https:\/\/community.couchbase.com\/\">Comunidad Couchbase<\/a> nos encantar\u00eda conocer tu experiencia. O, si usted apenas est\u00e1 entrando en Couchbase con Azure, tambi\u00e9n puede <a href=\"https:\/\/community.couchbase.com\/\">encontrar y preguntar a otros miembros de la comunidad<\/a> por sus consejos o recomendaciones de alto nivel.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si tiene alguna pregunta t\u00e9cnica espec\u00edfica sobre Couchbase, consulte la secci\u00f3n <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Azure Key Vault can store username and password and manage sensitive information in Azure. Once Azure Key Vaults stores the information, Azure services that you specify (and ONLY Azure services that you specify) can access it In this blog post, [&hellip;]<\/p>","protected":false},"author":71,"featured_media":3934,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2225,1816,1813],"tags":[1673],"ppma_author":[8937],"class_list":["post-5877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-cloud","category-couchbase-server","category-security","tag-microsoft-azure"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Azure Key Vault for Credentials, Store Username and Password<\/title>\n<meta name=\"description\" content=\"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/azure-key-vault-credentials\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Key Vault for Credentials\" \/>\n<meta property=\"og:description\" content=\"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/azure-key-vault-credentials\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-10T13:31:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:27:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"922\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Azure Key Vault for Credentials\",\"datePublished\":\"2018-10-10T13:31:20+00:00\",\"dateModified\":\"2025-06-14T02:27:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/\"},\"wordCount\":1280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"keywords\":[\"Microsoft Azure\"],\"articleSection\":[\".NET\",\"Couchbase Capella\",\"Couchbase Server\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/\",\"name\":\"Azure Key Vault for Credentials, Store Username and Password\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"datePublished\":\"2018-10-10T13:31:20+00:00\",\"dateModified\":\"2025-06-14T02:27:58+00:00\",\"description\":\"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"width\":1920,\"height\":922,\"caption\":\"National Cloud Database Day\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure Key Vault for Credentials\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Azure Key Vault for Credentials, Store Username and Password","description":"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/azure-key-vault-credentials\/","og_locale":"es_MX","og_type":"article","og_title":"Azure Key Vault for Credentials","og_description":"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/azure-key-vault-credentials\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-10-10T13:31:20+00:00","article_modified_time":"2025-06-14T02:27:58+00:00","og_image":[{"width":1920,"height":922,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Azure Key Vault for Credentials","datePublished":"2018-10-10T13:31:20+00:00","dateModified":"2025-06-14T02:27:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/"},"wordCount":1280,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","keywords":["Microsoft Azure"],"articleSection":[".NET","Couchbase Capella","Couchbase Server","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/","url":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/","name":"Azure Key Vault for Credentials, Store Username and Password","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","datePublished":"2018-10-10T13:31:20+00:00","dateModified":"2025-06-14T02:27:58+00:00","description":"This Couchbase blog post demonstrates how Azure Key Vault can be utilized to store Couchbase Server credentials and access them from an Azure Function.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","width":1920,"height":922,"caption":"National Cloud Database Day"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/azure-key-vault-credentials\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Azure Key Vault for Credentials"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","first_name":"Matthew","last_name":"Groves","user_url":"https:\/\/crosscuttingconcerns.com","author_category":"","description":"A Matthew D. Groves le encanta programar.  No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa.  Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa.  Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores.  Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=5877"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5877\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/3934"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=5877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=5877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=5877"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=5877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}