Az Azure Service Fabric biztonsága

Az Azure biztonsági ajánlott eljárásaival kapcsolatos további információkért tekintse át az Azure Service Fabric biztonsági ajánlott eljárásait

Key Vault

Az Azure Key Vault az Azure Service Fabric-alkalmazások és -fürtök ajánlott titkos kulcskezelési szolgáltatása.

Megjegyzés:

Ha a Kulcstartóból származó tanúsítványok/titkos kódok virtuálisgép-méretezési csoportként vannak üzembe helyezve egy virtuálisgép-méretezési csoportban, akkor a Key Vaultnak és a virtuálisgép-méretezési csoportnak együtt kell lennie.

Hitelesítésszolgáltató által kiadott Service Fabric-tanúsítvány létrehozása

Egy Azure Key Vault-tanúsítvány létrehozható vagy importálható egy Key Vaultba. A Key Vault-tanúsítvány létrehozásakor a titkos kulcs a Key Vaultban jön létre, és soha nem lesz kitéve a tanúsítvány tulajdonosának. A következő módszerekkel hozhat létre tanúsítványt a Key Vaultban:

  • Hozzon létre egy önaláírt tanúsítványt egy nyilvános-privát kulcspár létrehozásához, és társítsa azt egy tanúsítvánnyal. A tanúsítványt a saját kulcsa fogja aláírni.
  • Hozzon létre manuálisan egy új tanúsítványt egy nyilvános és privát kulcspár létrehozásához, és hozzon létre egy X.509-tanúsítvány-aláírási kérést. Az aláírási kérelmet a regisztrációs hatóság vagy a hitelesítésszolgáltató is aláírhatja. Az aláírt x509-tanúsítvány egyesíthető a függőben lévő kulcspárral a KV-tanúsítvány Key Vaultban való befejezéséhez. Bár ez a módszer több lépést igényel, nagyobb biztonságot nyújt, mivel a titkos kulcs a Key Vaultban jön létre, és a kulcstartóra korlátozódik. Ezt az alábbi ábrán ismertetjük.

További részletekért tekintse át az Azure Keyvault tanúsítványlétrehozási módszereit .

Key Vault-tanúsítványok üzembe helyezése a Service Fabric-fürt virtuálisgép-méretezési csoportjaiban

Ha tanúsítványokat szeretne üzembe helyezni egy közös helyről egy virtuálisgép-méretezési csoportra, használja a virtuálisgép-méretezési csoport osProfile-ját. A Resource Manager-sablon tulajdonságai a következők:

"secrets": [
   {
       "sourceVault": {
           "id": "[parameters('sourceVaultValue')]"
       },
       "vaultCertificates": [
          {
              "certificateStore": "[parameters('certificateStoreValue')]",
              "certificateUrl": "[parameters('certificateUrlValue')]"
          }
       ]
   }
]

Megjegyzés:

A tárolót engedélyezni kell a Resource Manager-sablon üzembe helyezéséhez.

Hozzáférés-vezérlési lista (ACL) alkalmazása a Service Fabric-fürt tanúsítványára

A Microsoft.Azure.ServiceFabric virtuálisgép-méretezési csoport bővítményei a Nodes Security konfigurálására szolgálnak. Ha ACL-t szeretne alkalmazni a Service Fabric-fürtfolyamatok tanúsítványaira, használja a következő Resource Manager-sablontulajdonságokat:

"certificate": {
   "commonNames": [
       "[parameters('certificateCommonName')]"
   ],
   "x509StoreName": "[parameters('certificateStoreValue')]"
}

Service Fabric-fürttanúsítvány védelme köznapi név alapján

A Service Fabric-fürt tanúsítvány Common Namealapján történő védelméhez használja a Resource Manager-sablon tanúsítványa, a CertificateCommonNames tulajdonságot az alábbiak szerint:

"certificateCommonNames": {
    "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": "[parameters('certificateIssuerThumbprint')]"
        }
    ],
    "x509StoreName": "[parameters('certificateStoreValue')]"
}

Megjegyzés:

A Service Fabric-fürtök a gazdagép tanúsítványtárolójában talált első érvényes tanúsítványt használják. Windows rendszeren ez lesz az a tanúsítvány, amelynek lejárati dátuma megegyezik a köznapi névvel és a kiállító ujjlenyomatával.

Az Azure-tartományok, például a *<YOUR SUBDOMAIN.cloudapp.azure.com> vagy <a YOUR SUBDOMAIN.trafficmanager.net>, a Microsoft tulajdonában vannak. A hitelesítésszolgáltatók nem adnak ki tanúsítványokat a tartományokhoz jogosulatlan felhasználóknak. A legtöbb felhasználónak tartományt kell vásárolnia egy regisztrálótól, vagy jogosult tartománygazdának kell lennie ahhoz, hogy a hitelesítésszolgáltató kibocsátsa Önnek ezt a köznapi nevet.

Ha további részleteket szeretne megtudni arról, hogyan konfigurálhatja a DNS-szolgáltatást a tartomány Microsoft IP-címre való feloldásához, tekintse át, hogyan konfigurálhatja az Azure DNS-t a tartomány üzemeltetésére.

Megjegyzés:

Miután delegálta a tartománynévkiszolgálókat az Azure DNS-zónanévkiszolgálóira, adja hozzá a következő két rekordot a DNS-zónához:

  • Az APEX tartomány "A" rekordja, amely NEM minden Alias record set IP-címhez tartozik, az egyéni tartomány feloldja.
  • "C" rekord az ön által kiépített Microsoft-altartományokhoz, amelyek NEM .Alias record set Használhatja például a Traffic Manager vagy a Load Balancer DNS-nevét.

Ha frissíteni szeretné a portált, hogy megjelenítse a Service Fabric-fürt "managementEndpoint"egyéni DNS-nevét, frissítse a következő Service Fabric-fürt Resource Manager-sablontulajdonságait:

 "managementEndpoint": "[concat('https://<YOUR CUSTOM DOMAIN>:',parameters('nt0fabricHttpGatewayPort'))]",

A Service Fabric-csomag titkos értékeinek titkosítása

A Service Fabric Packagesben titkosított általános értékek közé tartoznak az Azure Container Registry (ACR) hitelesítő adatai, a környezeti változók, a beállítások és az Azure Volume beépülő modul tárfiókkulcsai.

Titkosítási tanúsítvány beállítása és titkos kódok titkosítása Windows-fürtökön:

Hozzon létre egy önaláírt tanúsítványt a titkos kód titkosításához:

New-SelfSignedCertificate -Type DocumentEncryptionCert -KeyUsage DataEncipherment -Subject mydataenciphermentcert -Provider 'Microsoft Enhanced Cryptographic Provider v1.0'

A Key Vault-tanúsítványok Service Fabric-fürt virtuálisgép-méretezési csoportokban való üzembe helyezéséhez használja a Key Vault-tanúsítványok Service Fabric-fürt virtuálisgép-méretezési csoportjaiban való üzembe helyezésére vonatkozó utasításokat.

Titkosítsa a titkos kódot a következő PowerShell-paranccsal, majd frissítse a Service Fabric-alkalmazás jegyzékfájlját a titkosított értékkel:

Invoke-ServiceFabricEncryptText -CertStore -CertThumbprint "<thumbprint>" -Text "mysecret" -StoreLocation CurrentUser -StoreName My

Titkosítási tanúsítvány beállítása és titkos kódok titkosítása Linux-fürtökön:

Hozzon létre egy önaláírt tanúsítványt a titkos kódok titkosításához:

openssl req -newkey rsa:2048 -nodes -keyout TestCert.prv -x509 -days 365 -out TestCert.pem
cat TestCert.prv >> TestCert.pem

Használja a Key Vault-tanúsítványok Üzembe helyezése Service Fabric-fürt virtuálisgép-méretezési csoportjaiban a Service Fabric-fürt virtuálisgép-méretezési csoportjaira vonatkozó utasításait.

Titkosítsa a titkos kódot a következő parancsokkal, majd frissítse a Service Fabric alkalmazásjegyzékét a titkosított értékkel:

echo "Hello World!" > plaintext.txt
iconv -f ASCII -t UTF-16LE plaintext.txt -o plaintext_UTF-16.txt
openssl smime -encrypt -in plaintext_UTF-16.txt -binary -outform der TestCert.pem | base64 > encrypted.txt

A védett értékek titkosítása után adja meg a titkosított titkos kulcsokat a Service Fabric-alkalmazásban, és fejtse vissza a titkosított titkos kulcsokat a szolgáltatáskódból.

Végponttanúsítvány belefoglalása a Service Fabric-alkalmazásokba

Az alkalmazásvégpont-tanúsítvány konfigurálásához adja hozzá a tanúsítványt úgy, hogy hozzáad egy EndpointCertificate elemet az egyszerű fiók Felhasználói elemével együtt az alkalmazásjegyzékhez. Alapértelmezés szerint az egyszerű fiók a NetworkService. Ez biztosítja az alkalmazástanúsítvány titkos kulcsának ACL-jének kezelését a megadott tag számára.

<ApplicationManifest … >
  ...
  <Principals>
    <Users>
      <User Name="Service1" AccountType="NetworkService" />
    </Users>
  </Principals>
  <Certificates>
    <EndpointCertificate Name="MyCert" X509FindType="FindByThumbprint" X509FindValue="[YourCertThumbprint]"/>
  </Certificates>
</ApplicationManifest>

Titkos tanúsítvány belefoglalása a Service Fabric-alkalmazásokba

Ha hozzáférést szeretne adni az alkalmazásnak a titkos kódokhoz, adja hozzá a tanúsítványt úgy, hogy hozzáad egy SecretsCertificate elemet az alkalmazásjegyzékhez.

<ApplicationManifest … >
  ...
  <Certificates>
    <SecretsCertificate Name="MyCert" X509FindType="FindByThumbprint" X509FindValue="[YourCertThumbprint]"/>
  </Certificates>
</ApplicationManifest>

Service Fabric-alkalmazások hitelesítése Azure-erőforrásokba felügyeltszolgáltatás-identitás (MSI) használatával

Az Azure-erőforrások felügyelt identitásairól további információt az Azure-erőforrások felügyelt identitásai című témakörben talál. Az Azure Service Fabric-fürtök a felügyeltszolgáltatás-identitást támogató virtuálisgép-méretezési csoportokon vannak üzemeltetve. Az MSI által a hitelesítéshez használható szolgáltatások listájának lekéréséhez tekintse meg a Microsoft Entra-hitelesítést támogató Azure-szolgáltatásokat.

Ha engedélyezni szeretné a rendszer által hozzárendelt felügyelt identitást egy virtuálisgép-méretezési csoport vagy egy meglévő virtuálisgép-méretezési csoport létrehozása során, deklarálja a következő "Microsoft.Compute/virtualMachinesScaleSets" tulajdonságot:

"identity": { 
    "type": "SystemAssigned"
}

További információ: Mi az Azure-erőforrások felügyelt identitása?

Ha felhasználó által hozzárendelt felügyelt identitást hozott létre, deklarálja a következő erőforrást a sablonban a virtuálisgép-méretezési csoporthoz való hozzárendeléséhez. Cserélje le \<USERASSIGNEDIDENTITYNAME\> a létrehozott felhasználó által hozzárendelt felügyelt identitás nevére:

"identity": {
    "type": "userAssigned",
    "userAssignedIdentities": {
        "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
    }
}

Ahhoz, hogy a Service Fabric-alkalmazás használhassa a felügyelt identitást, engedélyeket kell adni az Azure-erőforrásoknak, amellyel hitelesítenie kell magát. Az alábbi parancsok hozzáférést biztosítanak egy Azure-erőforráshoz:

PRINCIPAL_ID=$(az resource show --id /subscriptions/<YOUR SUBSCRIPTON>/resourceGroups/<YOUR RG>/providers/Microsoft.Compute/virtualMachineScaleSets/<YOUR SCALE SET> --api-version 2018-06-01 | python -c "import sys, json; print(json.load(sys.stdin)['identity']['principalId'])")

az role assignment create --assignee $PRINCIPAL_ID --role 'Contributor' --scope "/subscriptions/<YOUR SUBSCRIPTION>/resourceGroups/<YOUR RG>/providers/<PROVIDER NAME>/<RESOURCE TYPE>/<RESOURCE NAME>"

A Service Fabric-alkalmazás kódjában szerezze be az Azure Resource Manager hozzáférési jogkivonatát úgy, hogy egy REST-et a következőhöz hasonlóvá tesz:

ACCESS_TOKEN=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true | python -c "import sys, json; print json.load(sys.stdin)['access_token']")

A Service Fabric-alkalmazás ezután a hozzáférési jogkivonat használatával hitelesítheti az Active Directoryt támogató Azure-erőforrásokat. Az alábbi példa bemutatja, hogyan teheti ezt meg egy Azure Cosmos DB-erőforrás esetében:

COSMOS_DB_PASSWORD=$(curl 'https://management.azure.com/subscriptions/<YOUR SUBSCRIPTION>/resourceGroups/<YOUR RG>/providers/Microsoft.DocumentDB/databaseAccounts/<YOUR ACCOUNT>/listKeys?api-version=2016-03-31' -X POST -d "" -H "Authorization: Bearer $ACCESS_TOKEN" | python -c "import sys, json; print(json.load(sys.stdin)['primaryMasterKey'])")

A Windows biztonsági alapkonfigurációi

Javasoljuk, hogy olyan iparági szabványnak megfelelő konfigurációt implementáljon, amely széles körben ismert és jól tesztelt, például a Microsoft biztonsági alapkonfigurációit, és ne saját maga hozzon létre alapkonfigurációt. A virtuálisgép-méretezési csoportokban ezek kiépítésének egyik lehetősége az Azure Desired State Configuration (DSC) bővítménykezelő használata, a virtuális gépek online állapotba helyezésekor történő konfigurálása, így az éles szoftver fut.

Azure Firewall

Az Azure Firewall egy felügyelt, felhőalapú hálózatbiztonsági szolgáltatás, amely Azure Virtual Network-erőforrásait védi. Ez egy szolgáltatásként nyújtott teljesen állapotalapú tűzfal, beépített magas rendelkezésre állással és korlátlan felhőalapú skálázhatósággal.; Ez lehetővé teszi a kimenő HTTP/S forgalom korlátozását a teljes tartománynevek (FQDN) megadott listájára, beleértve a helyettesítő kártyákat is. Ez a funkció nem igényel TLS-/SSL-leállítást. Javasoljuk, hogy az Azure Firewall FQDN-címkéit használja a Windows Frissítések, és engedélyezze a Microsoft Windows Update-végpontok felé irányuló hálózati forgalmat a tűzfalon keresztül. Az Azure Firewall sablonnal történő üzembe helyezése mintaként szolgál a Microsoft.Network/azureFirewalls erőforrássablon-definícióhoz. A Service Fabric-alkalmazásokban gyakran használt tűzfalszabályok a következők engedélyezését teszik lehetővé a fürtök virtuális hálózatán:

  • *download.microsoft.com
  • *servicefabric.azure.com
  • *.core.windows.net

Ezek a tűzfalszabályok kiegészítik az engedélyezett kimenő hálózati biztonsági csoportokat, amelyek magukban foglalják a ServiceFabric és a Storage szolgáltatást, mint a virtuális hálózatból engedélyezett célhelyeket.

TLS 1.2

A Microsoft Azure azt javasolja minden ügyfélnek, hogy végezze el a migrálást olyan megoldások felé, amelyek támogatják a transport layer security (TLS) 1.2-es verziót, és győződjön meg arról, hogy alapértelmezés szerint a TLS 1.2 van használatban.

Az Azure-szolgáltatások, beleértve a Service Fabricet is, befejezték a TLS 1.0/1.1 protokollok függőségének megszüntetésére vonatkozó mérnöki munkát, és teljes körű támogatást nyújtanak azoknak az ügyfeleknek, akik a számítási feladataikat úgy szeretnék konfigurálni, hogy csak TLS 1.2-kapcsolatokat fogadjanak el és kezdeményezhessenek.

Az ügyfeleknek alapértelmezés szerint a TLS 1.2 használatára kell konfigurálniuk az Azure-szolgáltatásokat használó Azure-beli számítási feladataikat és helyszíni alkalmazásaikat. Az alábbiakban bemutatjuk, hogyan konfigurálhatja a Service Fabric-fürtcsomópontokat és -alkalmazásokat egy adott TLS-verzió használatára.

Windows Defender

Alapértelmezés szerint a Windows Defender víruskereső telepítve van a Windows Server 2016-on. További részletekért tekintse meg a Windows Defender víruskeresőt a Windows Server 2016-on. A felhasználói felület alapértelmezés szerint telepítve van néhány termékváltozaton, de nem szükséges. A Windows Defender teljesítmény- és erőforrás-felhasználási többletterhelésének csökkentése érdekében, és ha a biztonsági szabályzatok lehetővé teszik a nyílt forráskódú szoftverek folyamatainak és elérési útvonalainak kizárását, deklarálja a következő Virtuálisgép-méretezési csoport bővítmény Resource Manager-sablontulajdonságait, hogy kizárja a Service Fabric-fürtöt a vizsgálatokból:

 {
    "name": "[concat('VMIaaSAntimalware','_vmNodeType0Name')]",
    "properties": {
        "publisher": "Microsoft.Azure.Security",
        "type": "IaaSAntimalware",
        "typeHandlerVersion": "1.5",
        "settings": {
            "AntimalwareEnabled": "true",
            "Exclusions": {
                "Paths": "[concat(parameters('svcFabData'), ';', parameters('svcFabLogs'), ';', parameters('svcFabRuntime'))]",
                "Processes": "Fabric.exe;FabricHost.exe;FabricInstallerService.exe;FabricSetup.exe;FabricDeployer.exe;ImageBuilder.exe;FabricGateway.exe;FabricDCA.exe;FabricFAS.exe;FabricUOS.exe;FabricRM.exe;FileStoreService.exe;FabricBRS.exe;BackupCopier.exe"
            },
            "RealtimeProtectionEnabled": "true",
            "ScheduledScanSettings": {
                "isEnabled": "true",
                "scanType": "Quick",
                "day": "7",
                "time": "120"
            }
        },
        "protectedSettings": null
    }
}

Megjegyzés:

Ha nem Windows Defendert használ, tekintse meg a windowsos kártevőirtó dokumentációját a konfigurációs szabályokról. A Windows Defender Linuxon nem támogatott.

Nem megbízható alkalmazások üzemeltetése Service Fabric-fürtben

A Service Fabric-fürt tervezés szerint egyetlen bérlő, és a üzemeltetett alkalmazások megbízhatónak minősülnek. Az alkalmazások ezért hozzáférést kapnak a Service Fabric-futtatókörnyezethez, amely különböző formában nyilvánul meg, amelyek közül néhány a következők: az alkalmazás- és Fabric-fájloknak megfelelő gazdagépen található fájlelérési útvonalakra mutató környezeti változók , a tároló számítási feladataihoz írási hozzáféréssel csatlakoztatott gazdagép elérési útjai, egy alkalmazásspecifikus kéréseket elfogadó folyamatközi kommunikációs végpont, valamint az ügyféltanúsítvány, amelyet a Fabric elvár az alkalmazástól a hitelesítéshez.

Ha nem megbízható alkalmazások üzemeltetését fontolgatja, további lépéseket kell tennie a Service Fabric-fürt ellenséges több-bérlős élményének meghatározásához és tulajdonjogához. Ehhez több szempontot is figyelembe kell vennie a forgatókönyv kontextusában, beleértve, de nem kizárólagosan a következőket:

  • A nem megbízható alkalmazások más alkalmazásokkal, magával a fürttel és a mögöttes számítási infrastruktúrával folytatott interakcióinak alapos biztonsági áttekintése.
  • A legerősebb tesztkörnyezeti technológia használata (például a tárolók számítási feladatainak megfelelő elkülönítési módok ).
  • A tesztkörnyezeti technológiát kikerülő nem megbízható alkalmazások kockázatértékelése, mivel a következő megbízhatósági és biztonsági határ maga a fürt.
  • A nem megbízható alkalmazások Service Fabric-futtatókörnyezethez való hozzáférésének eltávolítása.

RemoveServiceFabricRuntimeAccess

A Service Fabric-futtatókörnyezethez való hozzáférés az alkalmazásjegyzék Szabályzatok szakaszában található alábbi deklarációval távolítható el:

<ServiceManifestImport>
    <Policies>
        <ServiceFabricRuntimeAccessPolicy RemoveServiceFabricRuntimeAccess="true"/>
    </Policies>
</ServiceManifestImport>

Következő lépések

  • Hozzon létre egy fürtöt virtuális gépeken vagy számítógépeken a Windows Server: Service Fabric-fürt létrehozása Windows Server rendszeren.
  • Fürt létrehozása virtuális gépeken vagy számítógépeken Linuxot futtató számítógépeken: Linux-fürt létrehozása.
  • További információ a Service Fabric támogatási lehetőségeiről.