|
5 | 5 | "_generator": {
|
6 | 6 | "name": "bicep",
|
7 | 7 | "version": "0.24.24.22086",
|
8 |
| - "templateHash": "6371350577264419703" |
| 8 | + "templateHash": "9748975281421053488" |
9 | 9 | }
|
10 | 10 | },
|
11 | 11 | "parameters": {
|
|
33 | 33 | "description": "Optional. Storage SKU to use. LRS = Lowest cost, ZRS = High availability. Note Standard SKUs are not available for Data Lake gen2 storage. Allowed: Premium_LRS, Premium_ZRS. Default: Premium_LRS."
|
34 | 34 | }
|
35 | 35 | },
|
| 36 | + "existingKeyVaultId": { |
| 37 | + "type": "string", |
| 38 | + "defaultValue": "", |
| 39 | + "metadata": { |
| 40 | + "description": "Optional. Resource ID of the existing Key Vault resource to use. If not specified, a new Key Vault instance will be created." |
| 41 | + } |
| 42 | + }, |
36 | 43 | "tags": {
|
37 | 44 | "type": "object",
|
38 | 45 | "defaultValue": {},
|
|
75 | 82 | "storageSku": {
|
76 | 83 | "value": "[parameters('storageSku')]"
|
77 | 84 | },
|
| 85 | + "existingKeyVaultId": { |
| 86 | + "value": "[parameters('existingKeyVaultId')]" |
| 87 | + }, |
78 | 88 | "tags": {
|
79 | 89 | "value": "[parameters('tags')]"
|
80 | 90 | },
|
|
92 | 102 | "_generator": {
|
93 | 103 | "name": "bicep",
|
94 | 104 | "version": "0.24.24.22086",
|
95 |
| - "templateHash": "2610829918662778812" |
| 105 | + "templateHash": "17411969862525330364" |
96 | 106 | }
|
97 | 107 | },
|
98 | 108 | "parameters": {
|
|
120 | 130 | "description": "Optional. Storage SKU to use. LRS = Lowest cost, ZRS = High availability. Note Standard SKUs are not available for Data Lake gen2 storage. Allowed: Premium_LRS, Premium_ZRS. Default: Premium_LRS."
|
121 | 131 | }
|
122 | 132 | },
|
| 133 | + "existingKeyVaultId": { |
| 134 | + "type": "string", |
| 135 | + "defaultValue": "", |
| 136 | + "metadata": { |
| 137 | + "description": "Optional. Resource ID of the existing Key Vault resource to use. If not specified, a new Key Vault instance will be created." |
| 138 | + } |
| 139 | + }, |
123 | 140 | "tags": {
|
124 | 141 | "type": "object",
|
125 | 142 | "defaultValue": {},
|
|
487 | 504 | "convertToParquet": {
|
488 | 505 | "value": "[parameters('convertToParquet')]"
|
489 | 506 | },
|
490 |
| - "keyVaultName": { |
491 |
| - "value": "[reference(resourceId('Microsoft.Resources/deployments', 'keyVault'), '2022-09-01').outputs.name.value]" |
| 507 | + "keyVaultId": { |
| 508 | + "value": "[reference(resourceId('Microsoft.Resources/deployments', 'keyVault'), '2022-09-01').outputs.resourceId.value]" |
492 | 509 | },
|
493 | 510 | "storageAccountName": {
|
494 | 511 | "value": "[reference(resourceId('Microsoft.Resources/deployments', 'storage'), '2022-09-01').outputs.name.value]"
|
|
516 | 533 | "_generator": {
|
517 | 534 | "name": "bicep",
|
518 | 535 | "version": "0.24.24.22086",
|
519 |
| - "templateHash": "5738194981634133446" |
| 536 | + "templateHash": "8197671316834274442" |
520 | 537 | }
|
521 | 538 | },
|
522 | 539 | "parameters": {
|
523 | 540 | "dataFactoryName": {
|
524 | 541 | "type": "string",
|
525 | 542 | "metadata": {
|
526 |
| - "description": "Optional. Name of the hub. Used to ensure unique resource names. Default: \"finops-hub\"." |
| 543 | + "description": "Required. Name of the hub. Used to ensure unique resource names." |
527 | 544 | }
|
528 | 545 | },
|
529 |
| - "keyVaultName": { |
| 546 | + "keyVaultId": { |
530 | 547 | "type": "string",
|
531 | 548 | "metadata": {
|
532 |
| - "description": "Required. The name of the Azure Key Vault instance." |
| 549 | + "description": "Optional. The resource ID of the Azure Key Vault instance." |
533 | 550 | }
|
534 | 551 | },
|
535 | 552 | "storageAccountName": {
|
|
1123 | 1140 | "parameters": {},
|
1124 | 1141 | "type": "AzureKeyVault",
|
1125 | 1142 | "typeProperties": {
|
1126 |
| - "baseUrl": "[reference(resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName')), '2022-11-01').vaultUri]" |
| 1143 | + "baseUrl": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', split(parameters('keyVaultId'), '/')[2], split(parameters('keyVaultId'), '/')[4]), 'Microsoft.KeyVault/vaults', last(split(parameters('keyVaultId'), '/'))), '2022-11-01').vaultUri]" |
1127 | 1144 | }
|
1128 | 1145 | }
|
1129 | 1146 | },
|
|
1794 | 1811 | "hubName": {
|
1795 | 1812 | "value": "[parameters('hubName')]"
|
1796 | 1813 | },
|
| 1814 | + "existingKeyVaultName": { |
| 1815 | + "value": "[last(split(parameters('existingKeyVaultId'), '/'))]" |
| 1816 | + }, |
1797 | 1817 | "uniqueSuffix": {
|
1798 | 1818 | "value": "[variables('uniqueSuffix')]"
|
1799 | 1819 | },
|
|
1830 | 1850 | "_generator": {
|
1831 | 1851 | "name": "bicep",
|
1832 | 1852 | "version": "0.24.24.22086",
|
1833 |
| - "templateHash": "10770478197596540923" |
| 1853 | + "templateHash": "18385434849803379988" |
1834 | 1854 | }
|
1835 | 1855 | },
|
1836 | 1856 | "parameters": {
|
|
1846 | 1866 | "description": "Required. Suffix to add to the KeyVault instance name to ensure uniqueness."
|
1847 | 1867 | }
|
1848 | 1868 | },
|
| 1869 | + "existingKeyVaultName": { |
| 1870 | + "type": "string", |
| 1871 | + "metadata": { |
| 1872 | + "description": "Optional. Resource ID of the existing Key Vault resource to use. If not specified, a new Key Vault instance will be created." |
| 1873 | + } |
| 1874 | + }, |
1849 | 1875 | "location": {
|
1850 | 1876 | "type": "string",
|
1851 | 1877 | "defaultValue": "[resourceGroup().location]",
|
|
1911 | 1937 | },
|
1912 | 1938 | "resources": [
|
1913 | 1939 | {
|
1914 |
| - "type": "Microsoft.KeyVault/vaults", |
1915 |
| - "apiVersion": "2022-11-01", |
1916 |
| - "name": "[variables('keyVaultName')]", |
1917 |
| - "location": "[parameters('location')]", |
1918 |
| - "tags": "[union(parameters('tags'), if(contains(parameters('tagsByResource'), 'Microsoft.KeyVault/vaults'), parameters('tagsByResource')['Microsoft.KeyVault/vaults'], createObject()))]", |
| 1940 | + "condition": "[and(not(empty(parameters('existingKeyVaultName'))), not(empty(parameters('accessPolicies'))))]", |
| 1941 | + "type": "Microsoft.KeyVault/vaults/accessPolicies", |
| 1942 | + "apiVersion": "2023-07-01", |
| 1943 | + "name": "[format('{0}/{1}', if(empty(parameters('existingKeyVaultName')), 'placeholder', parameters('existingKeyVaultName')), 'add')]", |
1919 | 1944 | "properties": {
|
1920 |
| - "enabledForDeployment": true, |
1921 |
| - "enabledForTemplateDeployment": true, |
1922 |
| - "enabledForDiskEncryption": true, |
1923 |
| - "enableSoftDelete": true, |
1924 |
| - "softDeleteRetentionInDays": 90, |
1925 |
| - "enableRbacAuthorization": false, |
1926 |
| - "createMode": "default", |
1927 |
| - "tenantId": "[subscription().tenantId]", |
1928 |
| - "accessPolicies": "[variables('formattedAccessPolicies')]", |
1929 |
| - "sku": { |
1930 |
| - "name": "[if(startsWith(parameters('location'), 'china'), 'standard', parameters('sku'))]", |
1931 |
| - "family": "A" |
1932 |
| - } |
| 1945 | + "accessPolicies": "[variables('formattedAccessPolicies')]" |
1933 | 1946 | }
|
1934 | 1947 | },
|
1935 | 1948 | {
|
1936 |
| - "condition": "[not(empty(parameters('accessPolicies')))]", |
| 1949 | + "condition": "[not(empty(parameters('existingKeyVaultName')))]", |
| 1950 | + "type": "Microsoft.KeyVault/vaults/secrets", |
| 1951 | + "apiVersion": "2023-07-01", |
| 1952 | + "name": "[format('{0}/{1}', if(empty(parameters('existingKeyVaultName')), 'placeholder', parameters('existingKeyVaultName')), parameters('storageAccountName'))]", |
| 1953 | + "properties": { |
| 1954 | + "attributes": { |
| 1955 | + "enabled": true, |
| 1956 | + "exp": 1702648632, |
| 1957 | + "nbf": 10000 |
| 1958 | + }, |
| 1959 | + "value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2022-09-01').keys[0].value]" |
| 1960 | + } |
| 1961 | + }, |
| 1962 | + { |
| 1963 | + "condition": "[and(empty(parameters('existingKeyVaultName')), not(empty(parameters('accessPolicies'))))]", |
1937 | 1964 | "type": "Microsoft.KeyVault/vaults/accessPolicies",
|
1938 |
| - "apiVersion": "2022-11-01", |
| 1965 | + "apiVersion": "2023-07-01", |
1939 | 1966 | "name": "[format('{0}/{1}', variables('keyVaultName'), 'add')]",
|
1940 | 1967 | "properties": {
|
1941 | 1968 | "accessPolicies": "[variables('formattedAccessPolicies')]"
|
|
1945 | 1972 | ]
|
1946 | 1973 | },
|
1947 | 1974 | {
|
| 1975 | + "condition": "[empty(parameters('existingKeyVaultName'))]", |
1948 | 1976 | "type": "Microsoft.KeyVault/vaults/secrets",
|
1949 |
| - "apiVersion": "2022-11-01", |
| 1977 | + "apiVersion": "2023-07-01", |
1950 | 1978 | "name": "[format('{0}/{1}', variables('keyVaultName'), parameters('storageAccountName'))]",
|
1951 | 1979 | "properties": {
|
1952 | 1980 | "attributes": {
|
|
1959 | 1987 | "dependsOn": [
|
1960 | 1988 | "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName'))]"
|
1961 | 1989 | ]
|
| 1990 | + }, |
| 1991 | + { |
| 1992 | + "condition": "[empty(parameters('existingKeyVaultName'))]", |
| 1993 | + "type": "Microsoft.KeyVault/vaults", |
| 1994 | + "apiVersion": "2023-07-01", |
| 1995 | + "name": "[variables('keyVaultName')]", |
| 1996 | + "location": "[parameters('location')]", |
| 1997 | + "tags": "[union(parameters('tags'), if(contains(parameters('tagsByResource'), 'Microsoft.KeyVault/vaults'), parameters('tagsByResource')['Microsoft.KeyVault/vaults'], createObject()))]", |
| 1998 | + "properties": { |
| 1999 | + "enabledForDeployment": true, |
| 2000 | + "enabledForTemplateDeployment": true, |
| 2001 | + "enabledForDiskEncryption": true, |
| 2002 | + "enableSoftDelete": true, |
| 2003 | + "softDeleteRetentionInDays": 90, |
| 2004 | + "enableRbacAuthorization": false, |
| 2005 | + "createMode": "default", |
| 2006 | + "tenantId": "[subscription().tenantId]", |
| 2007 | + "accessPolicies": "[variables('formattedAccessPolicies')]", |
| 2008 | + "sku": { |
| 2009 | + "name": "[if(startsWith(parameters('location'), 'china'), 'standard', parameters('sku'))]", |
| 2010 | + "family": "A" |
| 2011 | + } |
| 2012 | + } |
1962 | 2013 | }
|
1963 | 2014 | ],
|
1964 | 2015 | "outputs": {
|
|
1967 | 2018 | "metadata": {
|
1968 | 2019 | "description": "The resource ID of the key vault."
|
1969 | 2020 | },
|
1970 |
| - "value": "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName'))]" |
| 2021 | + "value": "[if(empty(parameters('existingKeyVaultName')), resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName')), resourceId('Microsoft.KeyVault/vaults', if(empty(parameters('existingKeyVaultName')), 'placeholder', parameters('existingKeyVaultName'))))]" |
1971 | 2022 | },
|
1972 | 2023 | "name": {
|
1973 | 2024 | "type": "string",
|
1974 | 2025 | "metadata": {
|
1975 | 2026 | "description": "The name of the key vault."
|
1976 | 2027 | },
|
1977 |
| - "value": "[variables('keyVaultName')]" |
| 2028 | + "value": "[if(empty(parameters('existingKeyVaultName')), variables('keyVaultName'), if(empty(parameters('existingKeyVaultName')), 'placeholder', parameters('existingKeyVaultName')))]" |
1978 | 2029 | },
|
1979 | 2030 | "uri": {
|
1980 | 2031 | "type": "string",
|
1981 | 2032 | "metadata": {
|
1982 | 2033 | "description": "The URI of the key vault."
|
1983 | 2034 | },
|
1984 |
| - "value": "[reference(resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName')), '2022-11-01').vaultUri]" |
| 2035 | + "value": "[if(empty(parameters('existingKeyVaultName')), reference(resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName')), '2023-07-01').vaultUri, reference(resourceId('Microsoft.KeyVault/vaults', if(empty(parameters('existingKeyVaultName')), 'placeholder', parameters('existingKeyVaultName'))), '2023-07-01').vaultUri)]" |
1985 | 2036 | }
|
1986 | 2037 | }
|
1987 | 2038 | }
|
|
0 commit comments