Share via


Service Fabric uygulamasının yönetilen kimliğine Azure kaynaklarına erişim izni verme

Uygulamanın diğer kaynaklara erişmek için yönetilen kimliğini kullanabilmesi için önce, erişilmekte olan korumalı Azure kaynağında bu kimliğe izin verilmesi gerekir. İzinlerin verilmesi genellikle Azure Resource Manager aracılığıyla yönlendirilen korumalı kaynağa sahip olan Azure hizmetinin 'denetim düzlemi' üzerindeki bir yönetim eylemidir ve geçerli rol tabanlı erişim denetimlerini zorunlu kılacaktır.

Adımların tam sırası, erişilen Azure kaynağının türüne ve izin vermek için kullanılan dile/istemciye bağlıdır. Makalenin geri kalanında, uygulamaya kullanıcı tarafından atanan bir kimlik atandığı varsayılır ve kolaylık sağlaması için birkaç tipik örnek bulunur, ancak bu konu için hiçbir şekilde kapsamlı bir başvuru değildir; İzin vermeyle ilgili güncel yönergeler için ilgili Azure hizmetlerinin belgelerine bakın.

Azure Depolama erişimi verme

Azure depolama blobundan verileri almak için Service Fabric uygulamasının yönetilen kimliğini (bu örnekte kullanıcı tarafından atanan) kullanabilirsiniz. Kaynak grubu kapsamında uygulamanın yönetilen kimliğine Depolama Blob Veri Okuyucusu rolünü atayarak kimliğe depolama hesabı için gerekli izinleri verin.

Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

Azure Key Vault'a erişim verme

Depolamaya erişmeye benzer şekilde, Bir Azure anahtar kasasına erişmek için Service Fabric uygulamasının yönetilen kimliğinden yararlanabilirsiniz. Azure portalında erişim izni verme adımları, yukarıda listelenenlere benzer ve burada tekrarlanmayacaktır. Farklılıklar için aşağıdaki görüntüye bakın.

Key Vault access policy

Aşağıdaki örnek, şablon dağıtımı aracılığıyla kasaya erişim verme işlemini gösterir; kod parçacıklarını şablonun öğesinin resources altına başka bir giriş olarak ekleyin. Örnek, sırasıyla hem kullanıcı tarafından atanan hem de sistem tarafından atanan kimlik türleri için erişim verme işlemini gösterir; uygun olanı seçin.

    # 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"]
                    }
                }
            ]
        }
    },

Sistem tarafından atanan yönetilen kimlikler için:

    # 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"
                        ]
                    }
            },
        ]
        }
    }

Daha fazla ayrıntı için bkz . Kasalar - Erişim İlkesini Güncelleştirme.

Sonraki adımlar