Share via


Felügyelt Azure-alkalmazás létrehozása, amely ügyfél által felügyelt kulccsal titkosított tárfiókot helyez üzembe

Ez a cikk azt ismerteti, hogyan hozhat létre olyan Felügyelt Azure-alkalmazást, amely ügyfél által felügyelt kulccsal titkosított tárfiókot helyez üzembe. A tárfiók, a Cosmos DB és az Azure Database for Postgres támogatja az inaktív adatok titkosítását az ügyfél által felügyelt kulcsok vagy a Microsoft által felügyelt kulcsok használatával. A tárfiókban lévő adatok védelméhez használhatja a saját titkosítási kulcsát. Felhasználó által kezelt kulcs megadásakor a megadott kulccsal védi és szabályozza az adatokat titkosító kulcs hozzáférését. A felhasználó által kezelt kulcsokkal rugalmasabban kezelhető a hozzáférés-vezérlés.

Előfeltételek

Managed identities

A felügyelt alkalmazás által a felügyelt erőforráscsoportban erőforrásként üzembe helyezett tárfiók ügyfél által felügyelt kulcsának konfigurálása felhasználó által hozzárendelt felügyelt identitást igényel. Ezzel a felhasználó által hozzárendelt felügyelt identitással hozzáférést biztosíthat a felügyelt alkalmazásnak más meglévő erőforrásokhoz. Ha meg szeretné tudni, hogyan konfigurálhatja a felügyelt alkalmazást egy felhasználó által hozzárendelt felügyelt identitással, lépjen az Azure Managed Application-be felügyelt identitással.

Az alkalmazás számára kétféle identitástípust lehet megadni:

  • A rendszer által hozzárendelt felügyelt identitás az alkalmazáshoz van rendelve, és az alkalmazás törlésekor törlődik. Egy alkalmazás csak egy rendszer által hozzárendelt felügyelt identitással rendelkezhet.
  • A felhasználó által hozzárendelt felügyelt identitás egy önálló Azure-erőforrás, amely hozzárendelhető az alkalmazáshoz. Egy alkalmazás több felhasználó által hozzárendelt felügyelt identitással is rendelkezhet.

Ha egy tárfiókot szeretne üzembe helyezni a felügyelt alkalmazás felügyelt erőforráscsoportjában, amely a meglévő kulcstartóból származó ügyfélkulcsokkal van titkosítva, további konfigurációra van szükség. A felügyelt alkalmazással konfigurált felügyelt identitáshoz a beépített Azure szerepköralapú hozzáférés-vezérlési felügyelt identitáskezelőre van szükség a kulcstartóhoz hozzáféréssel rendelkező felügyelt identitáson keresztül. További részletekért tekintse meg a Felügyelt identitáskezelő szerepkört.

Kulcstartó létrehozása törlési védelemmel

  1. Jelentkezzen be az Azure Portalra.
  2. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása lehetőséget.
  3. A keresőmezőbe írja be a Key Vault kifejezést.
  4. Az eredmények listájában válassza a Key Vaultot.
  5. A Key Vault szakaszban válassza a Létrehozás lehetőséget.
  6. A Kulcstartó létrehozása szakaszban adja meg a következő információkat:
    • Előfizetés: Válassza ki az előfizetését.
    • Erőforráscsoport: Válassza az Új létrehozása lehetőséget, és adjon meg egy olyan nevet, mint a demo-cmek-rg.
    • Név: Egyedi név szükséges, például demo-keyvault-cmek.
    • Régió: Válasszon ki egy olyan helyet, mint az USA keleti régiója.
    • Tarifacsomag: Válassza a Standard lehetőséget a legördülő listából.
    • Törlés elleni védelem: Válassza a Törlés elleni védelem engedélyezése lehetőséget.
  7. Válassza a Tovább lehetőséget, és lépjen az Access Policy lapra.
    • Hozzáférés-konfiguráció: Válassza ki az Azure szerepköralapú hozzáférés-vezérlését.
    • Fogadja el az összes többi beállítás alapértelmezett beállításait.
  8. Select Review + create.
  9. Ellenőrizze, hogy a beállítások helyesek-e, és válassza a Létrehozás lehetőséget.

A sikeres üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget. Az Áttekintés lapon jegyezze fel a következő tulajdonságokat:

  • Tároló neve: A példában a tároló neve demo-keyvault-cmek. Ezt a nevet más lépésekhez is használhatja.
  • Tároló URI: A példában a tároló URI-ja .https://demo-keyvault-cmek.vault.azure.net/

Felhasználó által hozzárendelt felügyelt identitás létrehozása

Felhasználó által hozzárendelt felügyelt identitás létrehozásához a fióknak szüksége van a felügyelt identitás közreműködői szerepkör-hozzárendelésére.

  1. A keresőmezőbe írja be a felügyelt identitásokat.
  2. A Szolgáltatások területen válassza a Felügyelt identitások lehetőséget.
  3. Válassza a Létrehozás lehetőséget, és adja meg a következő értékeket az Alapértékek lapon:
    • Előfizetés: Válassza ki az előfizetését.
    • Erőforráscsoport: Válassza ki az előző lépésekben létrehozott demo-cmek-rg erőforráscsoportot.
    • Régió: Válasszon ki egy régiót, például az USA keleti régióját.
    • Név: Adja meg a felhasználó által hozzárendelt felügyelt identitás nevét, például demokeyvaultmi.
  4. Select Review + create.
  5. A sikeres ellenőrzés megjelenítése után válassza a Létrehozás lehetőséget.

Sikeres üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.

Szerepkör-hozzárendelések létrehozása

Két szerepkör-hozzárendelést kell létrehoznia a kulcstartóhoz. További részletekért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.

Kulcsengedély megadása a kulcstartón a felügyelt identitásnak

Hozzon létre egy szerepkör-hozzárendelést a key vault által felügyelt identitás demokeyvaultmi számára a kulcsok tördeléséhez és feloldásához.

  1. Nyissa meg a key vault demo-cmek-keyvaultját.
  2. Select Access control (IAM).
  3. Válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget>.
  4. Rendelje hozzá a következő szerepkört:
    • Szerepkör: Key Vault titkosítási szolgáltatás titkosítási felhasználója
    • Hozzáférés hozzárendelése a következőhöz: Felügyelt identitás
    • Tag: demokeyvaultmi
  5. Válassza a Véleményezés + hozzárendelés lehetőséget a beállítások megtekintéséhez.
  6. Válassza a Véleményezés + hozzárendelés lehetőséget a szerepkör-hozzárendelés létrehozásához.

Szerepkör-hozzárendelés létrehozása a fiókhoz

Hozzon létre egy másik szerepkör-hozzárendelést, hogy a fiókja új kulcsot hozzon létre a kulcstartóban.

  1. Rendelje hozzá a következő szerepkört:
    • Szerepkör: Key Vault crypto officer
    • Hozzáférés hozzárendelése a következőhöz: felhasználó, csoport vagy szolgáltatásnév
    • Tag: Az Ön Microsoft Entra-fiókja
  2. Válassza a Véleményezés + hozzárendelés lehetőséget a beállítások megtekintéséhez.
  3. Válassza a Véleményezés + hozzárendelés lehetőséget a szerepkör-hozzárendelés létrehozásához.

A kulcstartó szerepkör-hozzárendeléseit a Hozzáférés-vezérlési (IAM-)> szerepkör-hozzárendelésekben ellenőrizheti.

Kulcs létrehozása

Létre kell hoznia egy kulcsot, amelyet a kulcstartó egy tárfiók titkosításához használ.

  1. Nyissa meg a key vaultot, demo-cmek-keyvault.
  2. Válassza a Kulcsok elemet.
  3. Válassza a Generálás/importálás lehetőséget.
  4. A Kulcs létrehozása lapon válassza ki a következő értékeket:
    • Beállítások: Létrehozás
    • Név: demo-cmek-key
  5. Fogadja el a többi beállítás alapértelmezett beállításait.
  6. Select Create.

Jegyezze fel a kulcs nevét. A felügyelt alkalmazás üzembe helyezésekor használja.

Felhasználó által hozzárendelt felügyelt identitás létrehozása a felügyelt alkalmazáshoz

Hozzon létre egy felhasználó által hozzárendelt felügyelt identitást, amely a felügyelt alkalmazás felügyelt identitásaként használható.

  1. A keresőmezőbe írja be a felügyelt identitásokat.
  2. A Szolgáltatások területen válassza a Felügyelt identitások lehetőséget.
  3. Select Create.
    • Előfizetés: Válassza ki az előfizetését.
    • Erőforráscsoport: Válassza ki a demo-cmek-rg erőforráscsoportot.
    • Régió: Válasszon ki egy régiót, például az USA keleti régióját.
    • Név: Adja meg a felhasználó által hozzárendelt felügyelt identitás nevét, például a demomanagedappmi nevet.
  4. Select Review + create.
  5. A sikeres ellenőrzés megjelenítése után válassza a Létrehozás lehetőséget.

Sikeres üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.

Szerepkör-engedély hozzárendelése felügyelt identitáshoz

Rendelje hozzá a felügyelt identitáskezelő szerepkört a felügyelt identitáshoz a demokeyvaultmi nevű, felhasználó által hozzárendelt felügyelt identitás hatókörében.

  1. Nyissa meg a demokeyvaultmi nevű, felhasználó által hozzárendelt felügyelt identitást.
  2. Select Access control (IAM).
  3. Válassza a Szerepkör-hozzárendelés hozzáadása>lehetőséget a Szerepkör-hozzárendelés hozzáadása lap megnyitásához.
  4. Rendelje hozzá a következő szerepkört.
    • Szerepkör: Felügyelt identitáskezelő
    • Hozzáférés hozzárendelése a következőhöz: Felügyelt identitás
    • Tag: demomanagedappmi
  5. Válassza a Véleményezés + hozzárendelés lehetőséget a beállítások megtekintéséhez.
  6. Válassza a Véleményezés + hozzárendelés lehetőséget a szerepkör-hozzárendelés létrehozásához.

A demokeyvaultmi szerepkör-hozzárendelését ellenőrizheti a hozzáférés-vezérlési (IAM)>szerepkör-hozzárendelésekben.

Felügyelt alkalmazássablon minta

Hozzon létre egy felügyelt alkalmazást, amely egy felügyelt erőforráscsoportban helyezi üzembe a tárfiókot, és egy meglévő kulcstartó kulcsával titkosítja a tárfiókban lévő adatokat.

Felügyelt alkalmazás szolgáltatáskatalógusban való közzétételéhez hajtsa végre a következő feladatokat:

  1. Hozza létre a creatUIDefinition.json fájlt a cikkben szereplő mintából. A sablon meghatározza a portál felhasználói felületének elemeit a felügyelt alkalmazás üzembe helyezésekor.
  2. Hozzon létre egy mainTemplate.json nevű Azure Resource Manager-sablont a cikkben szereplő Bicep-fájl JSON-fájllá alakításával. A sablon meghatározza a felügyelt alkalmazással üzembe helyezendő erőforrásokat.
  3. Hozzon létre egy .zip csomagot, amely tartalmazza a szükséges JSON-fájlokat: createUiDefinition.json és mainTemplate.json.
  4. Tegye közzé a felügyelt alkalmazásdefiníciót, hogy elérhető legyen a szolgáltatáskatalógusban. További információkért tekintse meg az Azure Managed Application definíciójának létrehozását és közzétételét ismertető rövid útmutatót.

Create template createUiDefinition.json

Az alábbi sablon létrehoz egy felhasználó által hozzárendelt felügyelt identitást a felügyelt alkalmazáshoz. Ebben a példában letiltjuk a rendszer által hozzárendelt felügyelt identitást, mert a felhasználó által hozzárendelt felügyelt identitást előre konfigurálnunk kell a Felügyelt identitáskezelő engedélyekkel a kulcstartó felügyelt identitása felett.

  1. Hozzon létre egy új fájlt a Visual Studio Code-ban creatUIDefinition.json néven.
  2. Másolja és illessze be a következő kódot a fájlba.
  3. Mentse a fájlt.
{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [],
    "steps": [
      {
        "name": "managedApplicationSetting",
        "label": "Application Settings",
        "subLabel": {
          "preValidation": "Configure your application settings and Managed Identity for the application",
          "postValidation": "Done"
        },
        "bladeTitle": "Application Settings - Config",
        "elements": [
          {
            "name": "appIdentity",
            "type": "Microsoft.ManagedIdentity.IdentitySelector",
            "label": "Managed Identity Configuration for the Application (Needs Managed Identity Operator permissions over KV Managed Identity).",
            "toolTip": {
              "systemAssignedIdentity": "Enable system assigned identity to grant the managed application access to additional existing resources.",
              "userAssignedIdentity": "Add user assigned identities to grant the managed application access to additional existing resources."
            },
            "defaultValue": {
              "systemAssignedIdentity": "Off"
            },
            "options": {
              "hideSystemAssignedIdentity": true,
              "hideUserAssignedIdentity": false,
              "readOnlySystemAssignedIdentity": true
            },
            "visible": true
          }
        ]
      },
      {
        "name": "configuration",
        "type": "Microsoft.Common.Section",
        "label": "Configuration",
        "elements": [
          {
            "name": "cmek",
            "type": "Microsoft.Common.Section",
            "label": "Customer Managed Encryption Key (CMEK)",
            "elements": [
              {
                "name": "cmekEnable",
                "type": "Microsoft.Common.CheckBox",
                "label": "Enable CMEK",
                "toolTip": "Enable to provide a CMEK",
                "constraints": {
                  "required": false
                }
              },
              {
                "name": "cmekKeyVaultUrl",
                "type": "Microsoft.Common.TextBox",
                "label": "Key Vault URL",
                "toolTip": "Specify the CMEK Key Vault URL",
                "defaultValue": "",
                "constraints": {
                  "required": "[steps('configuration').cmek.cmekEnable]",
                  "regex": ".*",
                  "validationMessage": "The value must not be empty."
                },
                "visible": "[steps('configuration').cmek.cmekEnable]"
              },
              {
                "name": "cmekKeyName",
                "type": "Microsoft.Common.TextBox",
                "label": "Key Name",
                "toolTip": "Specify the key name from your key vault.",
                "defaultValue": "",
                "constraints": {
                  "required": "[steps('configuration').cmek.cmekEnable]",
                  "regex": ".*",
                  "validationMessage": "The value must not be empty."
                },
                "visible": "[steps('configuration').cmek.cmekEnable]"
              },
              {
                "name": "cmekKeyIdentity",
                "type": "Microsoft.ManagedIdentity.IdentitySelector",
                "label": "Managed Identity Configuration for Key Vault Access",
                "toolTip": {
                  "systemAssignedIdentity": "Enable system assigned identity to grant the managed application access to additional existing resources.",
                  "userAssignedIdentity": "Add user assigned identities to grant the managed application access to additional existing resources."
                },
                "defaultValue": {
                  "systemAssignedIdentity": "Off"
                },
                "options": {
                  "hideSystemAssignedIdentity": true,
                  "hideUserAssignedIdentity": false,
                  "readOnlySystemAssignedIdentity": true
                },
                "visible": "[steps('configuration').cmek.cmekEnable]"
              }
            ],
            "visible": true
          }
        ]
      }
    ],
    "outputs": {
      "location": "[location()]",
      "managedIdentity": "[steps('managedApplicationSetting').appIdentity]",
      "cmekConfig": {
        "kvUrl": "[if(empty(steps('configuration').cmek.cmekKeyVaultUrl), '', steps('configuration').cmek.cmekKeyVaultUrl)]",
        "keyName": "[if(empty(steps('configuration').cmek.cmekKeyName), '', steps('configuration').cmek.cmekKeyName)]",
        "identityId": "[if(empty(steps('configuration').cmek.cmekKeyIdentity), '', steps('configuration').cmek.cmekKeyIdentity)]"
      }
    }
  }
}

Sablon létrehozása mainTemplate.json

A következő Bicep-fájl a mainTemplate.json forráskódja. A sablon a createUiDefinition.json fájlban definiált, felhasználó által hozzárendelt felügyelt identitást használja.

  1. Hozzon létre egy új fájlt a Visual Studio Code-ban mainTemplate.bicep néven.
  2. Másolja és illessze be a következő kódot a fájlba.
  3. Mentse a fájlt.
param cmekConfig object = {
  kvUrl: ''
  keyName: ''
  identityId: {}
}
@description('Specify the Azure region to place the application definition.')
param location string = resourceGroup().location
/////////////////////////////////
// Common Resources Configuration
/////////////////////////////////
var commonproperties = {
  name: 'cmekdemo'
  displayName: 'Common Resources'
  storage: {
    sku: 'Standard_LRS'
    kind: 'StorageV2'
    accessTier: 'Hot'
    minimumTlsVersion: 'TLS1_2'

  }
}
var identity = items(cmekConfig.identityId.userAssignedIdentities)[0].key

resource storage 'Microsoft.Storage/storageAccounts@2022-05-01' = {
  name: '${commonproperties.name}${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: commonproperties.storage.sku
  }
  kind: commonproperties.storage.kind
  identity: cmekConfig.identityId
  properties: {
    accessTier: commonproperties.storage.accessTier
    minimumTlsVersion: commonproperties.storage.minimumTlsVersion
    encryption: {
      identity: {
        userAssignedIdentity: identity
      }
      services: {
        blob: {
          enabled: true
        }
        table: {
          enabled: true
        }
        file: {
          enabled: true
        }
      }
      keySource: 'Microsoft.Keyvault'
      keyvaultproperties: {
        keyname: '${cmekConfig.keyName}'
        keyvaulturi: '${cmekConfig.kvUrl}'
      }
    }
  }
}

A MainTemplate.json fájl létrehozásához használja a PowerShellt vagy az Azure CLI-t. Nyissa meg azt a könyvtárat, ahová a Bicep-fájlt mentette, és futtassa a build parancsot.

bicep build mainTemplate.bicep

Miután a Bicep-fájlt JSON-ra konvertálta, a mainTemplate.json fájlnak meg kell egyeznie az alábbi példával. Előfordulhat, hogy a tulajdonságok versiontemplateHashközött különböző értékek szerepelnek.metadata

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.16.2.56959",
      "templateHash": "1234567891234567890"
    }
  },
  "parameters": {
    "cmekConfig": {
      "type": "object",
      "defaultValue": {
        "kvUrl": "",
        "keyName": "",
        "identityId": {}
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify the Azure region to place the application definition."
      }
    }
  },
  "variables": {
    "commonproperties": {
      "name": "cmekdemo",
      "displayName": "Common Resources",
      "storage": {
        "sku": "Standard_LRS",
        "kind": "StorageV2",
        "accessTier": "Hot",
        "minimumTlsVersion": "TLS1_2"
      }
    },
    "identity": "[items(parameters('cmekConfig').identityId.userAssignedIdentities)[0].key]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-05-01",
      "name": "[format('{0}{1}', variables('commonproperties').name, uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[variables('commonproperties').storage.sku]"
      },
      "kind": "[variables('commonproperties').storage.kind]",
      "identity": "[parameters('cmekConfig').identityId]",
      "properties": {
        "accessTier": "[variables('commonproperties').storage.accessTier]",
        "minimumTlsVersion": "[variables('commonproperties').storage.minimumTlsVersion]",
        "encryption": {
          "identity": {
            "userAssignedIdentity": "[variables('identity')]"
          },
          "services": {
            "blob": {
              "enabled": true
            },
            "table": {
              "enabled": true
            },
            "file": {
              "enabled": true
            }
          },
          "keySource": "Microsoft.Keyvault",
          "keyvaultproperties": {
            "keyname": "[format('{0}', parameters('cmekConfig').keyName)]",
            "keyvaulturi": "[format('{0}', parameters('cmekConfig').kvUrl)]"
          }
        }
      }
    }
  ]
}

A felügyelt alkalmazás üzembe helyezése

A szolgáltatáskatalógus definíciójának létrehozása után üzembe helyezheti a felügyelt alkalmazást. További információ: Gyorsútmutató: Szolgáltatáskatalógus által felügyelt alkalmazás üzembe helyezése.

Az üzembe helyezés során a felhasználó által hozzárendelt felügyelt identitásokat, a kulcstartó nevét, a kulcstartó URL-címét és a kulcstartó kulcsnevét használja. A createUiDefinition.json fájl létrehozza a felhasználói felületet.

Egy portál üzemelő példányában például az Alkalmazás Gépház lapon adja hozzá a demomanagedappmi parancsot.

Screenshot of the Application Settings tab to add a user-assigned managed identity.

A Konfiguráció lapon engedélyezheti az ügyfél által felügyelt kulcsot, és hozzáadhatja a felhasználó által hozzárendelt felügyelt identitást a key vaulthoz( demokeyvaultmi). Meg kell adnia a kulcstartó URL-címét és a kulcstartó létrehozott kulcsnevét is.

Screenshot of the Configuration to enable the customer-managed key, add key vault URL and key name, and add a user-assigned managed identity.

Az üzemelő példány ellenőrzése

Az üzembe helyezés befejezése után ellenőrizheti a felügyelt alkalmazás identitás-hozzárendelését. A felhasználó által hozzárendelt felügyelt identitás demomanagedappmi hozzá van rendelve a felügyelt alkalmazáshoz.

  1. Lépjen arra az erőforráscsoportra, ahol a felügyelt alkalmazást üzembe helyezte.
  2. Az Gépház> Identitás területen válassza a Felhasználóhoz rendelt (előzetes verzió) lehetőséget.

Azt a tárfiókot is ellenőrizheti, amelyet a felügyelt alkalmazás üzembe helyezett. A Titkosítás lapon látható a demo-cmek-key kulcsés a felhasználó által hozzárendelt felügyelt identitás erőforrás-azonosítója.

  1. Lépjen arra a felügyelt erőforráscsoportra, ahol a felügyelt alkalmazás tárfiókja üzembe van helyezve.
  2. A Biztonság + hálózatkezelés területen válassza a Titkosítás lehetőséget.

Következő lépések