授予應用程式Service Fabric Azure 資源的受管理身分識別存取權

在應用程式可以使用其受管理的身分識別存取其他資源之前,必須先在所存取的受保護的 Azure 資源上,將許可權授予該身分識別。 授予許可權通常是擁有透過 Azure Resource Manager 路由之受保護資源之 Azure 服務'控制平面上的管理動作,將會強制執行任何適用的角色式存取檢查。

然後,確切的步驟順序取決於要存取的 Azure 資源類型,以及用來授予許可權的語言/用戶端。 本文的其餘部分假設指派給使用者的身分識別指派給應用程式,並包含數個方便您使用的典型範例,但這完全不是本主題的詳盡參考;請參閱各個 Azure 服務的檔,以獲得有關授予許可權之最新指示。

授權存取Azure 儲存體

您可以使用應用程式Service Fabric使用者指派 (身分識別,) 從 Azure 儲存 blob 中取回資料。 在資源群組範圍內,將 儲存體Blob 資料讀取程式角色指派給應用程式的受管理身分識別,以授予該身分識別儲存帳戶所需的許可權。

有關詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

授予 Azure 金鑰庫的存取權

同樣地,使用存取儲存空間,您可以利用應用程式Service Fabric的身分識別來存取 Azure 金鑰保存庫。 在 Azure 入口網站中授予存取權的步驟與上述步驟類似,在此不會重複。 請參閱下圖以尋找差異。

Key Vault access policy

下列範例說明透過範本部署授予對資料庫的存取權;在範本 () 下新增程式碼片段,做為另 resources 一個專案。 範例示範分別針對使用者指派和系統指派的身分識別類型授予存取權 -選擇適用的身分識別類型。

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

針對系統指派的受管理身分標識:

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

如需詳細資料,請參閱 Vaults - Update Access Policy

下一個步驟