Membuat penetapan peran Azure

Di bagian ini, Anda akan memberikan izin ke GKE di Azure untuk mengakses Azure API.

Untuk menyimpan akun utama layanan dan ID langganan ke variabel shell, jalankan perintah berikut. Ganti APPLICATION_NAME dengan nama untuk aplikasi Anda.

APPLICATION_ID=$(az ad app list --all \
    --query "[?displayName=='APPLICATION_NAME'].appId" \
    --output tsv)
SERVICE_PRINCIPAL_ID=$(az ad sp list --all  --output tsv \
      --query "[?appId=='$APPLICATION_ID'].id")
SUBSCRIPTION_ID=$(az account show --query "id" --output tsv)

Menetapkan izin ke akun utama layanan. GKE di Azure memerlukan izin untuk menyediakan peran yang diperlukan untuk resource Azure terkelola pada level langganan.

Untuk membuat peran khusus dengan izin cakupan langganan yang diperlukan:

  1. Membuat file baru bernama RoleAssignmentCreator.json.

  2. Buka RoleAssignmentCreator.json di editor dan tambahkan izin berikut:

    {
        "Name": "Role Assignment Creator",
        "IsCustom": true,
        "Description": "Can create Azure role assignments.",
        "Actions": [
            "Microsoft.Authorization/roleAssignments/read",
            "Microsoft.Authorization/roleAssignments/write",
            "Microsoft.Authorization/roleAssignments/delete",
            "Microsoft.Authorization/roleDefinitions/read"
        ],
        "NotActions": [],
        "DataActions": [],
        "NotDataActions": [],
        "AssignableScopes": ["/subscriptions/${SUBSCRIPTION_ID}"]
    }
    
  3. Buat peran khusus baru dengan perintah berikut:

    az role definition create --role-definition "~/CustomRoles/RoleAssignmentCreator.json"
    
  4. Tetapkan peran ke akun utama layanan menggunakan perintah berikut:

    az role assignment create --assignee ${SERVICE_PRINCIPAL_ID} --role "Role Assignment Creator" --scope /subscriptions/${SUBSCRIPTION_ID}
    

Saat memberikan izin, Anda dapat mencakupnya pada tingkat langganan Azure, yang berlaku untuk semua resource dalam langganan, atau pada tingkat grup resource, yang membatasi izin ke grup resource tertentu.

Langganan

Tetapkan peran Kontributor, Administrator Akses Pengguna, dan Key Vault Administrator ke langganan Anda:

az role assignment create \
    --role "Contributor" \
    --assignee "${SERVICE_PRINCIPAL_ID}" \
    --scope "/subscriptions/${SUBSCRIPTION_ID}"

az role assignment create \
    --role "User Access Administrator" \
    --assignee "${SERVICE_PRINCIPAL_ID}" \
    --scope "/subscriptions/${SUBSCRIPTION_ID}"

az role assignment create \
    --role "Key Vault Administrator" \
    --assignee "${SERVICE_PRINCIPAL_ID}" \
    --scope "/subscriptions/${SUBSCRIPTION_ID}"

Grup resource

  1. Buat penetapan Peran yang dicakupkan ke grup resource cluster. Ganti CLUSTER_RESOURCE_GROUP_NAME dengan nama grup resource untuk GKE Anda di Azure.

    az role assignment create \
      --role "Contributor" \
      --assignee "${SERVICE_PRINCIPAL_ID}" \
      --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME"
    
    az role assignment create \
      --role "User Access Administrator" \
      --assignee "${SERVICE_PRINCIPAL_ID}" \
      --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME"
    
    az role assignment create \
      --role "Key Vault Administrator" \
      --assignee "${SERVICE_PRINCIPAL_ID}" \
      --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME"
    
  2. Jika Azure Virtual Network Anda berada di grup resource yang berbeda, buat penetapan Peran yang dicakupkan ke grup resource jaringan virtual.

    az role assignment create \
      --role "Virtual Machine Contributor" \
      --assignee "${SERVICE_PRINCIPAL_ID}" \
      --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/VNET_RESOURCE_GROUP_NAME"
    
    az role assignment create \
      --role "User Access Administrator" \
      --assignee "${SERVICE_PRINCIPAL_ID}" \
      --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/VNET_RESOURCE_GROUP_NAME"
    

    Ganti kode berikut:

    • VNET_RESOURCE_GROUP_NAME: nama grup resource untuk GKE Anda di Azure VNet

Langkah selanjutnya