Rövid útmutató: Felügyelt Azure CCF-erőforrás létrehozása az Azure SDK for JavaScript és TypeScript használatával
A Microsoft Azure Managed CCF (Managed CCF) egy új és rendkívül biztonságos szolgáltatás a bizalmas alkalmazások üzembe helyezéséhez. Az Azure Managed CCF-ről további információt az Azure Managed Confidential Consortium Frameworkről szóló cikkben talál.
If you don't have an Azure subscription, create an Azure free account before you begin.
API-referenciadokumentáció Kódtár forráskódcsomagja | (npm) |
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- A JavaScripthez készült Azure SDK által támogatott Node.js-verziók.
- OpenSSL windowsos vagy Linux rendszerű számítógépen.
Beállítás
Ez a rövid útmutató az Azure Identity library és az Azure CLI vagy az Azure PowerShell használatával hitelesíti a felhasználót az Azure Servicesben. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik hívásaikat. További információ: Az ügyfél hitelesítése az Azure Identity ügyfélkódtárával.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure-ba az Azure CLI az login paranccsal vagy az Azure PowerShell Csatlakozás-AzAccount parancsmaggal.
az login
Ha a parancssori felület vagy a PowerShell meg tudja nyitni az alapértelmezett böngészőt, az azt teszi, és betölt egy Azure-bejelentkezési lapot. Ellenkező esetben keresse fel https://aka.ms/devicelogin és adja meg a terminálban megjelenő engedélyezési kódot.
Ha a rendszer kéri, jelentkezzen be a fiók hitelesítő adataival a böngészőben.
Új npm-projekt inicializálása
Egy terminálban vagy parancssorban hozzon létre egy megfelelő projektmappát, és inicializáljon egy npm
projektet. Ezt a lépést kihagyhatja, ha már rendelkezik csomópontprojektel.
cd <work folder>
npm init -y
A csomagok telepítése
Telepítse az Azure Active Directory identitásügyfél-kódtárát.
npm install --save @azure/identity
Telepítse az Azure Confidential Ledger felügyeleti sík ügyfélkódtárát.
npm install -save @azure/arm-confidentialledger@1.3.0-beta.1
A TypeScript-fordító és -eszközök telepítése globálisan
npm install -g typescript
Erőforráscsoport létrehozása
Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Az Azure PowerShell New-AzResourceGroup parancsmaggal hozzon létre egy myResourceGroup nevű erőforráscsoportot a southcentralus helyén.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Az erőforrás-szolgáltató regisztrálása
Az azure-beli felügyelt CCF-erőforrástípust regisztrálni kell az előfizetésben, mielőtt létrehoz egy erőforrást.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Tagok létrehozása
Hozzon létre egy kulcspárt a tag számára. A következő parancsok végrehajtása után a rendszer menti member0_cert.pem
a tag nyilvános kulcsát, és a titkos kulcsot a program a következőbe member0_privk.pem
menti:
openssl ecparam -out "member0_privk.pem" -name "secp384r1" -genkey
openssl req -new -key "member0_privk.pem" -x509 -nodes -days 365 -out "member0_cert.pem" -"sha384" -subj=/CN="member0"
A JavaScript-alkalmazás létrehozása
A Felügyeleti sík ügyfélkódtárának használata
Az Azure SDK for JavaScript és a TypeScript-kódtár azure/arm-confidentialledger lehetővé teszi a felügyelt CCF-erőforrásokon végzett műveleteket, például a létrehozást és törlést, az előfizetéshez társított erőforrások felsorolását és egy adott erőforrás részleteinek megtekintését.
Az alábbi minták futtatásához mentse a kódrészleteket egy .ts
fájlba egy kiterjesztéssel a projektmappába, és fordítsa le a TypeScript-projekt részeként, vagy fordítsa le a szkriptet külön JavaScript-fájlba a futtatással:
tsc <filename.ts>
A lefordított JavaScript-fájl neve ugyanaz lesz, csak egy *.js
bővítmény. Ezután futtassa a szkriptet a nodeJS-ben:
node <filename.js>
Az alábbi TypeScript-mintakód egy felügyelt CCF-erőforrás tulajdonságait hozza létre és tekinti meg.
import { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";
// Please replace these variables with appropriate values for your project
const subscriptionId = "0000000-0000-0000-0000-000000000001";
const rgName = "myResourceGroup";
const ledgerId = "testApp";
const memberCert0 = "-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAg...0d71ZtULNWo\n-----END CERTIFICATE-----";
const memberCert1 = "-----BEGIN CERTIFICATE-----\nMIIBwDCCAUagAwIBAgI...2FSyKIC+vY=\n-----END CERTIFICATE-----";
async function main() {
console.log("Creating a new instance.")
const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);
const properties = <ManagedCCFProperties> {
deploymentType: <DeploymentType> {
appSourceUri: "",
languageRuntime: KnownLanguageRuntime.JS
},
memberIdentityCertificates: [
<MemberIdentityCertificate>{
certificate: memberCert0,
encryptionkey: "",
tags: {
"owner":"member0"
}
},
<MemberIdentityCertificate>{
certificate: memberCert1,
encryptionkey: "",
tags: {
"owner":"member1"
}
},
],
nodeCount: 3,
};
const mccf = <ManagedCCF> {
location: "SouthCentralUS",
properties: properties,
}
const createResponse = await client.managedCCFOperations.beginCreateAndWait(rgName, ledgerId, mccf);
console.log("Created. Instance id: " + createResponse.id);
// Get details of the instance
console.log("Getting instance details.");
const getResponse = await client.managedCCFOperations.get(rgName, ledgerId);
console.log(getResponse.properties?.identityServiceUri);
console.log(getResponse.properties?.nodeCount);
// List mccf instances in the RG
console.log("Listing the instances in the resource group.");
const instancePages = await client.managedCCFOperations.listByResourceGroup(rgName).byPage();
for await(const page of instancePages){
for(const instance of page)
{
console.log(instance.name + "\t" + instance.location + "\t" + instance.properties?.nodeCount);
}
}
console.log("Delete the instance.");
await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
console.log("Deleted.");
}
(async () => {
try {
await main();
} catch(err) {
console.error(err);
}
})();
A felügyelt CCF-erőforrás törlése
A következő kódrészlet törli a felügyelt CCF-erőforrást. Más felügyelt CCF-cikkek erre a rövid útmutatóra építhetnek. Ha további rövid útmutatókkal és oktatóanyagokkal szeretné folytatni a munkát, érdemes lehet ezeket az erőforrásokat a helyén hagyni.
import { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";
const subscriptionId = "0000000-0000-0000-0000-000000000001"; // replace
const rgName = "myResourceGroup";
const ledgerId = "confidentialbillingapp";
async function deleteManagedCcfResource() {
const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);
console.log("Delete the instance.");
await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
console.log("Deleted.");
}
(async () => {
try {
await deleteManagedCcfResource();
} catch(err) {
console.error(err);
}
})();
Clean up resources
Más felügyelt CCF-cikkek erre a rövid útmutatóra építhetnek. Ha további rövid útmutatókkal és oktatóanyagokkal szeretné folytatni a munkát, érdemes lehet ezeket az erőforrásokat a helyén hagyni.
Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az Azure CLI az group delete paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását.
az group delete --resource-group myResourceGroup
További lépések
Ebben a rövid útmutatóban létrehozott egy felügyelt CCF-erőforrást az Azure Python SDK for Confidential Ledger használatával. Ha többet szeretne megtudni az Azure Managed CCF-ről és arról, hogyan integrálható az alkalmazásokkal, folytassa az alábbi cikkekkel: