Skip to content

Commit e9f0d1a

Browse files
author
Gordon Byers
authored
Merge pull request #164 from Azure/gb-kvwhitelist
Key Vault IP AllowList
2 parents 5a2cd96 + 9ce66a8 commit e9f0d1a

File tree

7 files changed

+32
-18
lines changed

7 files changed

+32
-18
lines changed

.github/workflows/ghpages.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ on:
2525
required: false
2626

2727
env:
28-
templateRelease: 0.3.5
28+
templateRelease: 0.4.0-preview
2929
AZCLIVERSION: 2.30.0 #2.29.2 #2.26.0 #latest
3030
RG: "Automation-Actions-AksPublishCI"
3131

.github/workflows_dep/regressionparams/key-vault.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"createKV": {
3939
"value": true
4040
},
41-
"kvIPWhitelist": {
41+
"kvIPAllowlist": {
4242
"value": [
4343
"1.2.3.4/32"
4444
]

bicep/compiled/main.json

+14-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.4.1008.15138",
8-
"templateHash": "10327328712553938589"
8+
"templateHash": "1113433167775496239"
99
}
1010
},
1111
"parameters": {
@@ -120,11 +120,11 @@
120120
"description": "If purge protection is enabled"
121121
}
122122
},
123-
"kvIPWhitelist": {
123+
"kvIPAllowlist": {
124124
"type": "array",
125125
"defaultValue": [],
126126
"metadata": {
127-
"description": "Add IP to firewall whitelist"
127+
"description": "Add IP to KV firewall allow-list"
128128
}
129129
},
130130
"kvOfficerRolePrincipalId": {
@@ -401,6 +401,15 @@
401401
},
402402
"functions": [],
403403
"variables": {
404+
"copy": [
405+
{
406+
"name": "kvIPRules",
407+
"count": "[length(parameters('kvIPAllowlist'))]",
408+
"input": {
409+
"value": "[parameters('kvIPAllowlist')[copyIndex('kvIPRules')]]"
410+
}
411+
}
412+
],
404413
"aks_byo_identity": "[or(parameters('custom_vnet'), not(empty(parameters('byoAKSSubnetId'))))]",
405414
"existingAksVnetRG": "[if(not(empty(parameters('byoAKSSubnetId'))), if(greater(length(split(parameters('byoAKSSubnetId'), '/')), 4), split(parameters('byoAKSSubnetId'), '/')[4], ''), '')]",
406415
"existingAGWSubnetName": "[if(not(empty(parameters('byoAGWSubnetId'))), if(greater(length(split(parameters('byoAGWSubnetId'), '/')), 10), split(parameters('byoAGWSubnetId'), '/')[10], ''), '')]",
@@ -532,8 +541,8 @@
532541
"family": "A",
533542
"name": "standard"
534543
},
535-
"publicNetworkAccess": "[if(and(parameters('privateLinks'), empty(parameters('kvIPWhitelist'))), 'disabled', 'enabled')]",
536-
"networkAcls": "[if(and(parameters('privateLinks'), not(empty(parameters('kvIPWhitelist')))), createObject('bypass', 'AzureServices', 'defaultAction', 'Deny', 'ipRules', parameters('kvIPWhitelist'), 'virtualNetworkRules', createArray()), createObject())]",
544+
"publicNetworkAccess": "[if(and(parameters('privateLinks'), empty(parameters('kvIPAllowlist'))), 'disabled', 'enabled')]",
545+
"networkAcls": "[if(and(parameters('privateLinks'), not(empty(parameters('kvIPAllowlist')))), createObject('bypass', 'AzureServices', 'defaultAction', 'Deny', 'ipRules', variables('kvIPRules'), 'virtualNetworkRules', createArray()), createObject())]",
537546
"enableRbacAuthorization": true,
538547
"enabledForDeployment": false,
539548
"enabledForDiskEncryption": false,

bicep/main.bicep

+9-5
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,15 @@ param KeyVaultSoftDelete bool = true
159159
@description('If purge protection is enabled')
160160
param KeyVaultPurgeProtection bool = true
161161

162-
@description('Add IP to firewall whitelist')
163-
param kvIPWhitelist array = []
162+
@description('Add IP to KV firewall allow-list')
163+
param kvIPAllowlist array = []
164164

165165
var akvName = 'kv-${replace(resourceName, '-', '')}'
166166

167+
var kvIPRules = [for kvIp in kvIPAllowlist: {
168+
value: kvIp
169+
}]
170+
167171
resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = if (createKV) {
168172
name: akvName
169173
location: location
@@ -174,12 +178,12 @@ resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = if (createKV) {
174178
name: 'standard'
175179
}
176180
// publicNetworkAccess: whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked.
177-
publicNetworkAccess: privateLinks && empty(kvIPWhitelist) ? 'disabled' : 'enabled'
181+
publicNetworkAccess: privateLinks && empty(kvIPAllowlist) ? 'disabled' : 'enabled'
178182

179-
networkAcls: privateLinks && !empty(kvIPWhitelist) ? {
183+
networkAcls: privateLinks && !empty(kvIPAllowlist) ? {
180184
bypass: 'AzureServices'
181185
defaultAction: 'Deny'
182-
ipRules: kvIPWhitelist
186+
ipRules: kvIPRules
183187
virtualNetworkRules: []
184188
} : {}
185189

helper/.playwrighttests/helper-export-az-commands.spec.js

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ test('test', async ({ page }) => {
1818
//Save the contents of the az cmd box to file
1919
const clitextboxrevisted = await page.$('[data-testid="deploy-deploycmd"]')
2020
const azcmdManagedPrivate =await clitextboxrevisted.innerText();
21+
console.log(azcmdManagedPrivate);
2122
fs.writeFileSync('azcmd-managed-private.sh', azcmdManagedPrivate);
2223

2324
});

helper/src/components/deployTab.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default function DeployTab({ defaults, updateFn, tabValues, invalidArray,
4545
...(net.afw && { azureFirewalls: true, ...(addons.certMan && {certManagerFW: true}), ...(net.vnet_opt === "custom" && defaults.net.vnetFirewallSubnetAddressPrefix !== net.vnetFirewallSubnetAddressPrefix && { vnetFirewallSubnetAddressPrefix: net.vnetFirewallSubnetAddressPrefix }) }),
4646
...(net.vnet_opt === "custom" && net.vnetprivateend && {
4747
privateLinks: true,
48-
...(addons.csisecret === 'akvNew' && deploy.kvIPWhitelist && apiips_array.length > 0 && {kvIPWhitelist: apiips_array.map(v => {return {"value": v}}) }),
48+
...(addons.csisecret === 'akvNew' && deploy.kvIPAllowlist && apiips_array.length > 0 && {kvIPAllowlist: apiips_array }),
4949
...(defaults.net.privateLinkSubnetAddressPrefix !== net.privateLinkSubnetAddressPrefix && {privateLinkSubnetAddressPrefix: net.privateLinkSubnetAddressPrefix}),
5050
}),
5151
...(addons.monitor === "aci" && { omsagent: true, retentionInDays: addons.retentionInDays, ...( addons.createAksMetricAlerts !== defaults.addons.createAksMetricAlerts && {createAksMetricAlerts: addons.createAksMetricAlerts }) }),
@@ -309,7 +309,7 @@ ${cluster.apisecurity === "private" ? `az aks command invoke -g ${deploy.rg} -n
309309
<Stack.Item>
310310
<Label>Grant Key Vault Certificate and Secret Officer role <a target="_target" href="https://docs.microsoft.com/azure/key-vault/general/rbac-guide?tabs=azure-cli#azure-built-in-roles-for-key-vault-data-plane-operations">docs</a></Label>
311311
<Checkbox disabled={addons.csisecret !== 'akvNew'} checked={deploy.kvCertSecretRole} onChange={(ev, v) => updateFn("kvCertSecretRole", v)} label="Assign deployment user Certificate and Secret Officer" />
312-
<Checkbox disabled={addons.csisecret !== 'akvNew' || !net.vnetprivateend} checked={deploy.kvIPWhitelist} onChange={(ev, v) => updateFn("kvIPWhitelist", v)} label="Add current IP to KeyVault firewall (applicable to private link)" />
312+
<Checkbox disabled={addons.csisecret !== 'akvNew' || !net.vnetprivateend} checked={deploy.kvIPAllowlist} onChange={(ev, v) => updateFn("kvIPAllowlist", v)} label="Add current IP to KeyVault firewall (applicable to private link)" />
313313
</Stack.Item>
314314

315315
</Stack>

helper/src/config.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"disablePreviews": false,
1616
"acrPushRole": true,
1717
"kvCertSecretRole": true,
18-
"kvIPWhitelist": false,
18+
"kvIPAllowlist": false,
1919
"clusterAdminRole": true,
2020
"clusterIPWhitelist" : true
2121
},
@@ -235,7 +235,7 @@
235235
"icon": "Unlock",
236236
"values": {
237237
"deploy": {
238-
"kvIPWhitelist": false
238+
"kvIPAllowlist": false
239239
},
240240
"cluster": {
241241
"enable_aad": false,
@@ -301,7 +301,7 @@
301301
"icon": "Lock12",
302302
"values": {
303303
"deploy": {
304-
"kvIPWhitelist": false
304+
"kvIPAllowlist": false
305305
},
306306
"cluster": {
307307
"enable_aad": true,
@@ -399,7 +399,7 @@
399399
"icon": "ProtectionCenterLogo32",
400400
"values": {
401401
"deploy": {
402-
"kvIPWhitelist": true
402+
"kvIPAllowlist": true
403403
},
404404
"cluster": {
405405
"enable_aad": true,

0 commit comments

Comments
 (0)