Egy Service Fabric-alkalmazás kezelt identitásának az Azure-erőforrásokhoz való hozzáférésének biztosítása

Ahhoz, hogy az alkalmazás a felügyelt identitásával hozzáférhessen más erőforrásokhoz, engedélyeket kell adni az adott identitásnak a hozzáférés alatt álló védett Azure-erőforráson. Az engedélyek megadása általában az Azure Resource Manageren keresztül irányított védett erőforrást birtokoló Azure-szolgáltatás "vezérlősíkján" végzett felügyeleti művelet, amely kikényszeríti az esetleges szerepköralapú hozzáférés-ellenőrzést.

A lépések pontos sorrendje ezután az elérhető Azure-erőforrás típusától, valamint az engedélyek megadásához használt nyelvtől/ügyféltől függ. A cikk további része feltételezi, hogy egy felhasználó által hozzárendelt identitás van hozzárendelve az alkalmazáshoz, és számos tipikus példát tartalmaz az Ön kényelmére, de ez semmiképpen sem teljes körű hivatkozás erre a témakörre; az engedélyek megadására vonatkozó naprakész utasításokért tekintse meg a megfelelő Azure-szolgáltatások dokumentációját.

Hozzáférés biztosítása az Azure Storage-hoz

A Service Fabric-alkalmazás felügyelt identitásával (ebben az esetben felhasználó által hozzárendelt) lekérheti az adatokat egy Azure Storage-blobból. Adja meg az identitásnak a tárfiókhoz szükséges engedélyeket, ha hozzárendeli a Storage Blob-adatolvasó szerepkört az alkalmazás felügyelt identitásához az erőforráscsoport hatókörében.

A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.

Hozzáférés biztosítása az Azure Key Vaulthoz

A tárolóhoz való hozzáféréshez hasonlóan egy Service Fabric-alkalmazás felügyelt identitását is használhatja egy Azure-kulcstartó eléréséhez. Az Azure Portalon való hozzáférés megadásának lépései hasonlóak a fent felsoroltakhoz, és itt nem ismétlődnek meg. A különbségekért tekintse meg az alábbi képet.

Key Vault access policy

Az alábbi példa azt mutatja be, hogy egy tárolóhoz sablontelepítésen keresztül kell hozzáférést adni; adja hozzá az alábbi kódrészlet(ek)et egy másik bejegyzésként a resources sablon eleméhez. A minta bemutatja a hozzáférés-engedélyezést mind a felhasználó által hozzárendelt, mind a rendszer által hozzárendelt identitástípusokhoz – válassza ki a megfelelőt.

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

A rendszer által hozzárendelt felügyelt identitások esetében pedig:

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

További részletekért tekintse meg a Tárolók – Hozzáférési szabályzat frissítése című témakört.

Következő lépések