Skip to content

Commit e197a64

Browse files
committed
Changed to Azure role-based access control for key_vault
1 parent b18a36c commit e197a64

File tree

1 file changed

+37
-13
lines changed

1 file changed

+37
-13
lines changed

terraform/akv2k8s_helm.tf

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,49 @@ data "azurerm_key_vault" "kv" {
1010
resource_group_name = var.key_vault_resource_group_name
1111
}
1212

13-
resource "azurerm_key_vault_access_policy" "aks" {
14-
key_vault_id = data.azurerm_key_vault.kv.id
13+
# Legacy key vault access policy method
14+
# https://docs.microsoft.com/en-us/azure/key-vault/general/assign-access-policy-portal
15+
# resource "azurerm_key_vault_access_policy" "aks" {
16+
# key_vault_id = data.azurerm_key_vault.kv.id
1517

16-
tenant_id = data.azurerm_subscription.current.tenant_id
17-
object_id = module.aks.kubelet_identity[0].object_id
18+
# tenant_id = data.azurerm_subscription.current.tenant_id
19+
# object_id = module.aks.kubelet_identity[0].object_id
1820

19-
certificate_permissions = [
20-
"get"
21-
]
21+
# certificate_permissions = [
22+
# "get"
23+
# ]
2224

23-
key_permissions = [
24-
"get"
25-
]
25+
# key_permissions = [
26+
# "get"
27+
# ]
2628

27-
secret_permissions = [
28-
"get"
29-
]
29+
# secret_permissions = [
30+
# "get"
31+
# ]
32+
# }
33+
34+
# Provide key vault access to akv2k8s via Azure role-based access control
35+
# https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment
36+
resource "azurerm_role_assignment" "aks_mi_kv_certs" {
37+
scope = data.azurerm_key_vault.kv.id
38+
role_definition_name = "Key Vault Certificates Officer"
39+
principal_id = module.aks.kubelet_identity[0].object_id
40+
description = "Perform any action on the keys of a key vault, except manage permissions"
41+
}
42+
43+
resource "azurerm_role_assignment" "aks_mi_kv_keys" {
44+
scope = data.azurerm_key_vault.kv.id
45+
role_definition_name = "Key Vault Crypto User"
46+
principal_id = module.aks.kubelet_identity[0].object_id
47+
description = "Perform cryptographic operations using keys"
3048
}
3149

50+
resource "azurerm_role_assignment" "aks_mi_kv_secrets" {
51+
scope = data.azurerm_key_vault.kv.id
52+
role_definition_name = "Key Vault Secrets User"
53+
principal_id = module.aks.kubelet_identity[0].object_id
54+
description = "Provides read-only access to secret contents"
55+
}
3256

3357
# Requires "kube_admin_config_raw" as has AAD Auth enabled
3458
# https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster#kube_admin_config_raw

0 commit comments

Comments
 (0)