Share via


Schnellstart: Erstellen einer Azure Managed CCF-Ressource mithilfe von Azure SDK für Java

Azure Managed CCF (Managed CCF) ist ein neuer und äußerst sicherer Dienst für die Bereitstellung vertraulicher Anwendungen. Unter Informationen zu Azure Managed Confidential Consortium Framework finden Sie weitere Informationen zu Azure Managed CCF.

Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.

API-Referenzdokumentation | Quellcode der Bibliothek | Paket (zentrales Maven-Repository)

Voraussetzungen

Setup

In dieser Schnellstartanleitung wird die Azure Identity-Bibliothek mit der Azure CLI oder Azure PowerShell verwendet, um den Benutzer bei Azure-Diensten zu authentifizieren. Entwickler können auch Visual Studio oder Visual Studi- OpenSSL auf einem Computer unter Windows oder Linux.o Code verwenden, um ihre Aufrufe zu authentifizieren. Weitere Informationen finden Sie unter Authentifizieren des Clients mit der Azure Identity-Clientbibliothek.

Anmelden bei Azure

Melden Sie sich über den Azure CLI-Befehl az login oder das Azure PowerShell-Cmdlet Connect-AzAccount bei Azure an.

Die CLI oder PowerShell öffnet Ihren Standardbrowser, sofern sie oder der Dienst dazu in der Lage ist, und lädt eine Azure-Anmeldeseite. Besuchen Sie andernfalls https://aka.ms/devicelogin, und geben Sie den in Ihrem Terminal angezeigten Autorisierungscode ein.

Melden Sie sich dann im Browser mit Ihren Anmeldeinformationen an, wenn Sie dazu aufgefordert werden.

Installieren der Abhängigkeiten

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-confidentialledger</artifactId>
    <version>1.0.0-beta.3</version>
</dependency>

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mit Azure PowerShell New-AzResourceGroup-cmdlet eine Ressourcengruppe mit dem Namen myResourceGroup am Speicherort southcentralus.

New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"

Registrieren des Ressourcenanbieters

Der Azure Managed CCF-Ressourcentyp muss im Abonnement registriert werden, bevor eine Ressource erstellt wird.

az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF

az provider register --namespace Microsoft.ConfidentialLedger

Erstellen von Membern

Generieren Sie ein Schlüsselpaar für das Element. Nach Abschluss der folgenden Befehle wird der öffentliche Schlüssel des Mitglieds in member0_cert.pem gespeichert, und der private Schlüssel wird in member0_privk.pem gespeichert.

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"

Erstellen der Java-Anwendung

Die Azure SDK für Java-Bibliothek (azure-resourcemanager-confidentialledger) ermöglicht Vorgänge mit Managed CCF-Ressourcen, z. B. das Erstellen und Löschen, das Auflisten der mit einem Abonnement verbundenen Ressourcen und das Anzeigen der Details einer bestimmten Ressource. Der folgende Codeabschnitt erstellt und zeigt die Eigenschaften einer Managed CCF-Ressource an.

import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.exception.ManagementException;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.confidentialledger.ConfidentialLedgerManager;
import com.azure.resourcemanager.confidentialledger.fluent.models.ManagedCcfInner;
import com.azure.resourcemanager.confidentialledger.models.DeploymentType;
import com.azure.resourcemanager.confidentialledger.models.LanguageRuntime;
import com.azure.resourcemanager.confidentialledger.models.ManagedCcfProperties;
import com.azure.resourcemanager.confidentialledger.models.MemberIdentityCertificate;
import java.util.*;

public class AzureJavaSdkClient {
    public static void main(String[] args) {
      try {
          AzureProfile profile = new AzureProfile("<tenant id>","<subscription id>", AzureEnvironment.AZURE);
          ConfidentialLedgerManager manager = ConfidentialLedgerManager.authenticate(new DefaultAzureCredentialBuilder().build(), profile);

          MemberIdentityCertificate member0 = new MemberIdentityCertificate()
              .withCertificate("-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAgIUA0YHcPpUCtd...0Yet/xU4G0d71ZtULNWo\n-----END CERTIFICATE-----")
              .withTags(Map.of("Dept", "IT"));
          List<MemberIdentityCertificate> members = new ArrayList<MemberIdentityCertificate>();
          members.add(member0);

          DeploymentType deployment = new DeploymentType().withAppSourceUri("").withLanguageRuntime(LanguageRuntime.JS);
          ManagedCcfProperties properties = new ManagedCcfProperties()
              .withDeploymentType(deployment)
              .withNodeCount(5)
              .withMemberIdentityCertificates(members);

          ManagedCcfInner inner = new ManagedCcfInner().withProperties(properties).withLocation("southcentralus");

          // Send Create request
          manager.serviceClient().getManagedCcfs().create("myResourceGroup", "confidentialbillingapp", inner);

          // Print the Managed CCF resource properties
          ManagedCcfInner app = manager.serviceClient().getManagedCcfs().getByResourceGroup("myResourceGroup", "confidentialbillingapp");
          printAppInfo(app);

          // Delete the resource
          manager.serviceClient().getManagedCcfs().delete("myResourceGroup", "confidentialbillingapp");
        } catch (ManagementException ex) {
            // The x-ms-correlation-request-id is located in the Header
            System.out.println(ex.getResponse().getHeaders().toString());
            System.out.println(ex);
        }
    }

    private static void printAppInfo(ManagedCcfInner app) {
        System.out.println("App Name: " + app.name());
        System.out.println("App Id: " + app.id());
        System.out.println("App Location: " + app.location());
        System.out.println("App type: " + app.type());
        System.out.println("App Properties Uri: " + app.properties().appUri());
        System.out.println("App Properties Language Runtime: " + app.properties().deploymentType().languageRuntime());
        System.out.println("App Properties Source Uri: " + app.properties().deploymentType().appSourceUri());
        System.out.println("App Properties NodeCount: " + app.properties().nodeCount());
        System.out.println("App Properties Identity Uri: " + app.properties().identityServiceUri());
        System.out.println("App Properties Cert 0: " + app.properties().memberIdentityCertificates().get(0).certificate());
        System.out.println("App Properties Cert tags: " + app.properties().memberIdentityCertificates().get(0).tags());
    }
}

Bereinigen von Ressourcen

Andere Managed CCF-Artikel können auf dieser Schnellstartanleitung aufbauen. Wenn Sie vorhaben, mit späteren Schnellstarts und Tutorials weiterzuarbeiten, sollten Sie diese Ressourcen beibehalten.

Andernfalls, wenn Sie mit den in diesem Artikel erstellten Ressourcen fertig sind, verwenden Sie den Azure CLI-Befehl az group delete, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu löschen.

az group delete --resource-group myResourceGroup

Nächste Schritte

In dieser Schnellstartanleitung haben Sie eine verwaltete CCF-Ressource mithilfe des Azure SDK für Java erstellt. Wenn Sie mehr über Azure Managed CCF erfahren möchten und darüber, wie Sie es in Ihre Anwendungen integrieren können, lesen Sie diese Artikel weiter: