@@ -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