{"id":5838,"date":"2023-11-19T20:42:33","date_gmt":"2023-11-19T11:42:33","guid":{"rendered":"https:\/\/engineer-chanpu.blog\/?p=5838"},"modified":"2024-05-05T09:59:21","modified_gmt":"2024-05-05T00:59:21","slug":"microsoft-azure-bicep-%eb%b0%b0%ec%9a%b0%ea%b8%b0-azure-key-vaults-%ea%b3%b5%ec%8b%9d-github-%ec%b0%b8%ea%b3%a0","status":"publish","type":"post","link":"https:\/\/engineer-chanpu.blog\/?p=5838","title":{"rendered":"Microsoft Azure Bicep \ubc30\uc6b0\uae30: Azure Key Vaults \uacf5\uc2dd Github \ucc38\uace0"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Background<\/h1>\n\n\n\n<p>\uae00\uc744 \uc4f0\ub294 \uc2dc\uc810\uc5d0\uc11c \ucc38\uc5ec\ud558\uace0 \uc788\ub294 \ud504\ub85c\uc81d\ud2b8\ub294 Azure DX \uc6b4\uc6a9 \uae30\ubc18 \uc124\uacc4 \ubc0f \uad6c\ucd95 \uc9c0\uc6d0\uc5d0 \uad00\ud55c \ud504\ub85c\uc81d\ud2b8\uc774\ub2e4. <\/p>\n\n\n\n<p>\uc774\uc804 \ud504\ub85c\uc81d\ud2b8\uc5d0 Azure \ub3c4\uc785\ubd80\ud130 \uc6b4\uc6a9\ubcf4\uc218 \uc9c0\uc6d0\uae4c\uc9c0\uc758 \uacbd\ud5d8\uc774 \uc788\uc5b4\uc11c \uc5c5\ubb34 \uc790\uccb4\ub294 \uc804\ud600 \ubb38\uc81c\uac00 \uc5c6\uc5c8\ub2e4. \ud558\uc9c0\ub9cc <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\uc65c \uc6b4\uc6a9 \uae30\ubc18 \uc124\uacc4\uac00 \uac00\ub2a5\ud55c \uc778\uc6d0\uc744 \ubaa8\uc9d1\ud558\uace0 \uc788\uc5c8\ub294\uc9c0<\/mark><\/strong> \ud504\ub85c\uc81d\ud2b8\uc5d0 \ud569\ub958\ud558\uace0 \uc77c\uc8fc\uc77c\uc774 \uc9c0\ub098\uc9c0 \uc54a\uc544\uc11c \uae68\ub2eb\uac8c \ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">\uc5b4\ub5bb\uac8c \uc5c5\ubb34\ub97c \ubcf4\uace0 \uc788\uc5c8\ub294\uc9c0 \uc2e0\uae30\ud560 \uc815\ub3c4\ub85c \uc2dc\uc2a4\ud15c\uc5d0 \uad00\ud55c \ubb38\uc11c\ud654 \ubc0f \uad00\ub9ac\uac00 \uac1c\ud310\uc774\uc5c8\ub2e4.<\/span><\/strong><\/p>\n\n\n\n<p>\ubb34\uc5c7\uc744 \ud558\ub824\uace0 \ud558\uba74 <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\uc790\ub8cc\uac00 \ub9de\ub294\uc9c0 \uc544\ub2cc\uc9c0 \uc758\uc2ec\ubd80\ud130 \ub4e4\uc5b4\uc11c \uac04\ub2e8\ud55c \uc791\uc5c5\uc784\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694<\/mark><\/strong>\ub418\uc5c8\ub2e4. \uadf8\ub798\uc11c Azure \ub9ac\uc18c\uc2a4 \uad6c\ucd95\uc5d0 \uc788\uc5b4\uc11c\ub9cc\uc740 \uc5c5\ubb34\ub97c \ud3b8\ud558\uac8c \ubcf4\uae30 \uc704\ud574\uc11c <code>IaC<\/code> \uc791\uc5c5\uc744 (\ud63c\uc790\uc11c) \uc9c4\ud589\ud558\uae30\ub85c \ud558\uc600\ub2e4.<\/p>\n\n\n\n<p><em>Note. \ucc38\uace0 \uc790\ub8cc<\/em><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\">\ucc38\uace0 Azure GitHub \ub9c1\ud06c<\/a><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Azure Key Vault \uad6c\uc131<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"607\" src=\"https:\/\/engineer-chanpu.blog\/wp-content\/uploads\/2023\/11\/image-76-1024x607.png\" alt=\"\" class=\"wp-image-5933\" srcset=\"https:\/\/engineer-chanpu.blog\/wp-content\/uploads\/2023\/11\/image-76-1024x607.png 1024w, https:\/\/engineer-chanpu.blog\/wp-content\/uploads\/2023\/11\/image-76-300x178.png 300w, https:\/\/engineer-chanpu.blog\/wp-content\/uploads\/2023\/11\/image-76-768x455.png 768w, https:\/\/engineer-chanpu.blog\/wp-content\/uploads\/2023\/11\/image-76.png 1338w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Key Vault \ubc0f \uad00\ub828 \ub9ac\uc18c\uc2a4 \uad6c\uc131<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Key Vaults main.bicep \ucf54\ub4dc \uad6c\uc131<\/h2>\n\n\n\n<p><em>Tip. \uae30\ubcf8\uc801\uc73c\ub85c Bicep IaC \ucf54\ub4dc\ub294 <strong>4\uac00\uc9c0 \uad6c\uac04<\/strong>\uc73c\ub85c \uc791\uc131\ub41c\ub2e4.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub9e4\uac1c \ubcc0\uc218(Prameteres)<\/li>\n\n\n\n<li>\ubcc0\uc218(Variables)<\/li>\n\n\n\n<li>\ub9ac\uc18c\uc2a4(Resources)<\/li>\n\n\n\n<li>\uc544\uc6c3\ud48b(Outputs)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters \uad6c\uac04<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ Creates a KeyVault with Private Link Endpoint\n@description('The Azure Region to deploy the resources into')\nparam location string = resourceGroup().location\n\n@description('Tags to apply to the Key Vault Instance')\nparam tags object = {}\n\n@description('The name of the Key Vault')\nparam keyvaultName string\n\n@description('The name of the Key Vault private link endpoint')\nparam keyvaultPleName string\n\n@description('The Subnet ID where the Key Vault Private Link is to be created')\nparam subnetId string\n\n@description('The VNet ID where the Key Vault Private Link is to be created')\nparam virtualNetworkId string\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #7F848E; font-style: italic\">\/\/ Creates a KeyVault with Private Link Endpoint<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;The Azure Region to deploy the resources into&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">location<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">string<\/span><span style=\"color: #ABB2BF\"> = <\/span><span style=\"color: #61AFEF\">resourceGroup<\/span><span style=\"color: #ABB2BF\">().<\/span><span style=\"color: #E06C75\">location<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;Tags to apply to the Key Vault Instance&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">tags<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">object<\/span><span style=\"color: #ABB2BF\"> = {}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;The name of the Key Vault&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keyvaultName<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;The name of the Key Vault private link endpoint&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keyvaultPleName<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;The Subnet ID where the Key Vault Private Link is to be created&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">subnetId<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">@<\/span><span style=\"color: #61AFEF\">description<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">&#39;The VNet ID where the Key Vault Private Link is to be created&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C678DD\">param<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">virtualNetworkId<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">string<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">location<\/h4>\n\n\n\n<p>Key Vault\ub97c \ubc30\ud3ec\ud560 \uc9c0\uc5ed(Region)\uc744 \uc9c0\uc815\ud55c\ub2e4. <code>resourceGroup().location<\/code> \uc744 \uc0ac\uc6a9\ud558\uba74 \ubc30\ud3ec\ud560 <span style=\"text-decoration: underline;\">\ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc758 \uc9c0\uc5ed\uacfc \ub3d9\uc77c\ud55c \uac12<\/span>\uc774 \uc801\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">keyvaultPleName<\/h4>\n\n\n\n<p>\uc774\ubc88\uc5d0 \ubc30\ud3ec\ud560 Key Vault \ub294 \ud37c\ube14\ub9ad \uc561\uc138\uc2a4\ub294 \ucc28\ub2e8\ud558\uace0, \uc548\uc804\ud55c \ud1b5\uc2e0\uc744 \uc704\ud574\uc11c Private endpoint\ub97c \uc0ac\uc6a9\ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<p><em>Tip. <code>keyvaultPleName<\/code> \uc740 Private endpoint \uc640 Private DNS zone(.vaultcore.azure.net)\uc758 \ub9c1\ud06c \uc774\ub984\uc744 \ub73b\ud55c\ub2e4.<\/em><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">virtualNetworkId &amp; subnetId<\/h4>\n\n\n\n<p>Private endpoint\ub97c \ud560\ub2f9\ud560 Virtual network \ubc0f Subnet\uc744 \uc9c0\uc815\ud574 \uc8fc\uc5b4\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \ud544\uc694\ud55c \ud30c\ub77c\uba54\ud130\uc774\ub2e4.<br><em>Tip. \ucd94\uac00\ub85c Subnet\uc758 <code>Network Policy<\/code>\uc124\uc815\uc5d0\uc11c Private endpoint\uac00 NSG(Network Security Group)\uc758 \uaddc\uce59\uc744 \uc801\uc6a9\ud558\ub3c4\ub85d \ud574\uc57c \ud55c\ub2e4.<\/em><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Variable \uad6c\uac04<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"var privateDnsZoneName = 'privatelink${environment().suffixes.keyvaultDns}'\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">var<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">privateDnsZoneName<\/span><span style=\"color: #ABB2BF\"> = <\/span><span style=\"color: #98C379\">&#39;privatelink<\/span><span style=\"color: #C678DD\">${<\/span><span style=\"color: #61AFEF\">environment<\/span><span style=\"color: #98C379\">().<\/span><span style=\"color: #E06C75\">suffixes<\/span><span style=\"color: #98C379\">.<\/span><span style=\"color: #E06C75\">keyvaultDns<\/span><span style=\"color: #C678DD\">}<\/span><span style=\"color: #98C379\">&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">environment().suffixes.keyvaultsDns<\/h4>\n\n\n\n<p>\uc704\uc758 \ubcc0\uc218\ub294 Azure Key Vault\uc640 \uad00\ub828\ub41c \ud504\ub77c\uc774\ube57 DNS \uc874\uc758 \uc774\ub984\uc744 \uc124\uc815\ud558\ub294 \ub370 \uc0ac\uc6a9\ub41c\ub2e4. <\/p>\n\n\n\n<p><code>'privatelink${environment().suffixes.keyvaultDns}'<\/code> \ub294 Azure \ud658\uacbd\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9c0\ub294 Key Vault \uc11c\ube44\uc2a4\uc758 DNS \uc811\ubbf8\uc0ac(.vaultcore.azure.net)\ub97c \uc790\ub3d9\uc73c\ub85c \uac00\uc838\uc624\ub294 \ud568\uc218\uc774\ub2e4.<\/p>\n\n\n\n<p><em>Tip. \uc774\ub807\uac8c \ucf54\ub4dc\ub97c \uad6c\uc131\ud558\uba74 \ub2e4\uc591\ud55c Azure \ud658\uacbd\uc5d0\uc11c \ucf54\ub4dc\ub97c \uc7ac\uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/em><\/p>\n\n\n\n<p>Key Vault \ub97c \uc608\ub97c \ub4e4\uba74, Azure \uacf5\uc6a9 \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0\uc11c <code>vaultcore.azure.net<\/code> \uc774 Key Vault \uc11c\ube44\uc2a4\uc758 \uc811\ubbf8\uc0ac\uc774\ubbc0\ub85c, \ucf54\ub4dc\ub85c \ubc30\ud3ec\ub97c \uc9c4\ud589\ud558\uba74, \ud504\ub77c\uc774\ube57 DNS \uc874\uc740 <code>privatelink.vaultcore.azure.net<\/code>\uc73c\ub85c \uc0dd\uc131\ub41c\ub2e4.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Resources \uad6c\uac04<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Key Vault<\/li>\n\n\n\n<li>Private endpoint<\/li>\n\n\n\n<li>Private DNS Zone (privatelink.vaultcore.azure.net)<\/li>\n\n\n\n<li>Private endpoint link (with Private DNS Zone)<\/li>\n\n\n\n<li>Virtual network (with Private DNS Zone)<\/li>\n<\/ul>\n\n\n\n<p><em>Note. \ub9ac\uc18c\uc2a4 \uad6c\uac04\uc758 \ucf54\ub4dc\uac00 \uae38\uc5b4\uc11c <a href=\"https:\/\/github.com\/jcy9033\/azure-bicep\/blob\/main\/microsoft.keyvault\/modules\/keyVault.bicep\">GitHub<\/a> \ub9c1\ud06c\uc5d0\uc11c \ud655\uc778<\/em><\/p>\n\n\n<p class=\"wp-block-tag-cloud\"><a href=\"https:\/\/engineer-chanpu.blog\/?tag=app-service\" class=\"tag-cloud-link tag-link-172 tag-link-position-1\" style=\"font-size: 18.171875pt;\" aria-label=\"app service (16 items)\">app service<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=auth\" class=\"tag-cloud-link tag-link-197 tag-link-position-2\" style=\"font-size: 12.375pt;\" aria-label=\"auth (4 items)\">auth<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=azcli\" class=\"tag-cloud-link tag-link-192 tag-link-position-3\" style=\"font-size: 14.015625pt;\" aria-label=\"azcli (6 items)\">azcli<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=azure\" class=\"tag-cloud-link tag-link-123 tag-link-position-4\" style=\"font-size: 22pt;\" aria-label=\"azure (37 items)\">azure<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=azure-lb\" class=\"tag-cloud-link tag-link-218 tag-link-position-5\" style=\"font-size: 8pt;\" aria-label=\"azure lb (1 item)\">azure lb<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=azure-monitor\" class=\"tag-cloud-link tag-link-195 tag-link-position-6\" style=\"font-size: 11.28125pt;\" aria-label=\"azure monitor (3 items)\">azure monitor<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=bicep\" class=\"tag-cloud-link tag-link-185 tag-link-position-7\" style=\"font-size: 12.375pt;\" aria-label=\"bicep (4 items)\">bicep<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=data-factory\" class=\"tag-cloud-link tag-link-177 tag-link-position-8\" style=\"font-size: 8pt;\" aria-label=\"data factory (1 item)\">data factory<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=devops\" class=\"tag-cloud-link tag-link-169 tag-link-position-9\" style=\"font-size: 13.25pt;\" aria-label=\"devops (5 items)\">devops<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=docker\" class=\"tag-cloud-link tag-link-139 tag-link-position-10\" style=\"font-size: 8pt;\" aria-label=\"docker (1 item)\">docker<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=enterprise-application\" class=\"tag-cloud-link tag-link-220 tag-link-position-11\" style=\"font-size: 8pt;\" aria-label=\"enterprise application (1 item)\">enterprise application<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=key-vaults\" class=\"tag-cloud-link tag-link-186 tag-link-position-12\" style=\"font-size: 9.96875pt;\" aria-label=\"key vaults (2 items)\">key vaults<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=kubernetes\" class=\"tag-cloud-link tag-link-129 tag-link-position-13\" style=\"font-size: 14.5625pt;\" aria-label=\"kubernetes (7 items)\">kubernetes<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=linux\" class=\"tag-cloud-link tag-link-131 tag-link-position-14\" style=\"font-size: 11.28125pt;\" aria-label=\"linux (3 items)\">linux<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=on-premise\" class=\"tag-cloud-link tag-link-141 tag-link-position-15\" style=\"font-size: 8pt;\" aria-label=\"on-premise (1 item)\">on-premise<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=onedrive\" class=\"tag-cloud-link tag-link-221 tag-link-position-16\" style=\"font-size: 8pt;\" aria-label=\"onedrive (1 item)\">onedrive<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=openstack\" class=\"tag-cloud-link tag-link-201 tag-link-position-17\" style=\"font-size: 8pt;\" aria-label=\"openstack (1 item)\">openstack<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=resource-group\" class=\"tag-cloud-link tag-link-193 tag-link-position-18\" style=\"font-size: 8pt;\" aria-label=\"resource group (1 item)\">resource group<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=route-table\" class=\"tag-cloud-link tag-link-194 tag-link-position-19\" style=\"font-size: 8pt;\" aria-label=\"route table (1 item)\">route table<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=sql-database\" class=\"tag-cloud-link tag-link-179 tag-link-position-20\" style=\"font-size: 13.25pt;\" aria-label=\"sql database (5 items)\">sql database<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=storage-accounts\" class=\"tag-cloud-link tag-link-178 tag-link-position-21\" style=\"font-size: 12.375pt;\" aria-label=\"storage accounts (4 items)\">storage accounts<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=terraform\" class=\"tag-cloud-link tag-link-196 tag-link-position-22\" style=\"font-size: 11.28125pt;\" aria-label=\"terraform (3 items)\">terraform<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=virtual-machine\" class=\"tag-cloud-link tag-link-190 tag-link-position-23\" style=\"font-size: 8pt;\" aria-label=\"virtual machine (1 item)\">virtual machine<\/a>\n<a href=\"https:\/\/engineer-chanpu.blog\/?tag=windows\" class=\"tag-cloud-link tag-link-140 tag-link-position-24\" style=\"font-size: 8pt;\" aria-label=\"windows (1 item)\">windows<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Background \uae00\uc744 \uc4f0\ub294 \uc2dc\uc810\uc5d0\uc11c \ucc38\uc5ec\ud558\uace0 \uc788\ub294 \ud504\ub85c\uc81d\ud2b8\ub294 Azure DX \uc6b4\uc6a9 \uae30\ubc18 \uc124\uacc4 \ubc0f \uad6c\ucd95 \uc9c0\uc6d0\uc5d0 \uad00\ud55c \ud504\ub85c\uc81d\ud2b8\uc774\ub2e4. \uc774\uc804 \ud504\ub85c\uc81d\ud2b8\uc5d0 Azure \ub3c4\uc785\ubd80\ud130 \uc6b4\uc6a9\ubcf4\uc218 \uc9c0\uc6d0\uae4c\uc9c0\uc758 \uacbd\ud5d8\uc774 \uc788\uc5b4\uc11c \uc5c5\ubb34 \uc790\uccb4\ub294 \uc804\ud600 \ubb38\uc81c\uac00 \uc5c6\uc5c8\ub2e4. &#8230;<\/p>\n","protected":false},"author":1,"featured_media":5950,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[107,33],"tags":[123,185,186],"class_list":["post-5838","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-tech-notes","tag-azure","tag-bicep","tag-key-vaults"],"_links":{"self":[{"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/posts\/5838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5838"}],"version-history":[{"count":21,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/posts\/5838\/revisions"}],"predecessor-version":[{"id":5949,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/posts\/5838\/revisions\/5949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=\/wp\/v2\/media\/5950"}],"wp:attachment":[{"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineer-chanpu.blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}