Memberikan akses identitas terkelola aplikasi Service Fabric ke sumber daya Azure

Sebelum aplikasi dapat menggunakan identitas terkelolanya untuk mengakses sumber daya lain, izin harus diberikan kepada identitas pada sumber daya Azure terlindungi yang sedang diakses. Memberikan izin biasanya merupakan tindakan manajemen pada 'sarana kontrol' layanan Azure yang memiliki sumber daya terlindungi yang dirutekan melalui Azure Resource Manager, yang akan memberlakukan pemeriksaan akses berbasis peran yang berlaku.

Urutan langkah yang tepat akan bergantung pada jenis sumber daya Azure yang diakses, serta bahasa/klien yang digunakan untuk memberikan izin. Sisa artikel mengasumsikan identitas yang ditetapkan pengguna akan ditetapkan untuk aplikasi dan menyertakan beberapa contoh khas untuk kenyamanan Anda, tetapi sama sekali bukan referensi lengkap untuk topik ini; lihat dokumentasi setiap layanan Azure untuk mendapatkan petunjuk terbaru tentang pemberian izin.

Memberikan akses ke Microsoft Azure Storage

Anda dapat menggunakan identitas terkelola aplikasi Service Fabric (ditetapkan pengguna dalam kasus ini) untuk mengambil data dari blob penyimpanan Azure. Berikan izin yang diperlukan oleh identitas untuk mengakses akun penyimpanan dengan menetapkan peran Storage Blob Data Reader ke identitas terkelola aplikasi di lingkup grup sumber daya.

Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

Memberikan akses ke Azure Key Vault

Demikian pula dengan mengakses penyimpanan, Anda dapat memanfaatkan identitas terkelola dari aplikasi Service Fabric untuk mengakses key vault Azure. Langkah-langkah untuk memberikan akses di portal Microsoft Azure mirip dengan yang tercantum di atas, dan tidak akan diulang di sini. Lihat gambar berikut untuk melihat perbedaannya.

Key Vault access policy

Contoh berikut mengilustrasikan pemberian akses ke vault melalui penyebaran templat; tambahkan cuplikan di bawah ini sebagai entri lain di bawah elemen resourcestemplat. Sampel mendemonstrasikan pemberian akses untuk jenis identitas yang ditetapkan pengguna dan yang ditetapkan sistem, masing-masing - pilih yang berlaku.

    # under 'variables':
  "variables": {
        "userAssignedIdentityResourceId" : "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]",
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
                {
                    "tenantId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('userAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "keys":         ["get", "list"],
                        "secrets":      ["get", "list"],
                        "certificates": ["get", "list"]
                    }
                }
            ]
        }
    },

Dan untuk identitas terkelola yang ditetapkan sistem:

    # under 'variables':
  "variables": {
        "sfAppSystemAssignedIdentityResourceId": "[concat(resourceId('Microsoft.ServiceFabric/clusters/applications/', parameters('clusterName'), parameters('applicationName')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
            {
                    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
                    "tenantId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('sfAppSystemAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "secrets": [
                            "get",
                            "list"
                        ],
                        "certificates": 
                        [
                            "get", 
                            "list"
                        ]
                    }
            },
        ]
        }
    }

Untuk detail lebih lanjut, silakan lihat Vault - Kebijakan Akses Pembaruan.

Langkah berikutnya