Dela via


Snabbstart: Skapa en Azure Managed CCF-resurs med Hjälp av Azure SDK för Java

Azure Managed CCF (Managed CCF) är en ny och mycket säker tjänst för att distribuera konfidentiella program. Mer information om Azure Managed CCF finns i Om Azure Managed Confidential Consortium Framework.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

API-referensdokumentation Bibliotekets källkodspaket | (maven central lagringsplats) |

Förutsättningar

Ställ in

Den här snabbstarten använder Azure Identity-biblioteket, tillsammans med Azure CLI eller Azure PowerShell, för att autentisera användaren till Azure Services. Utvecklare kan också använda Visual Studio på en dator som kör Windows- eller Linux Code för att autentisera sina anrop. Mer information finns i Autentisera klienten med Azure Identity-klientbiblioteket.

Logga in på Azure

Logga in på Azure med azure CLI az login-kommandot eller cmdleten Azure PowerShell Connect-AzAccount .

az login

Om CLI eller PowerShell kan öppna standardwebbläsaren kommer den att göra det och läsa in en Azure-inloggningssida. Annars går du till https://aka.ms/devicelogin och anger auktoriseringskoden som visas i terminalen.

Logga in med dina kontoautentiseringsuppgifter i webbläsaren om du uppmanas att göra det.

Installera beroendena

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

Skapa en resursgrupp

En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Använd cmdleten Azure PowerShell New-AzResourceGroup för att skapa en resursgrupp med namnet myResourceGroupplatsen southcentralus.

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

Registrera resursprovidern

Resurstypen Azure Managed CCF måste registreras i prenumerationen innan du skapar en resurs.

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

az provider register --namespace Microsoft.ConfidentialLedger

Skapa medlemmar

Generera ett nyckelpar för medlemmen. När följande kommandon har slutförts sparas medlemmens offentliga nyckel i member0_cert.pem och den privata nyckeln sparas i member0_privk.pem.

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"

Skapa Java-programmet

Azure SDK för Java-biblioteket (azure-resourcemanager-confidentialledger) tillåter åtgärder på hanterade CCF-resurser, till exempel skapande och borttagning, lista resurser som är associerade med en prenumeration och visning av information om en specifik resurs. Följande kod skapar och visar egenskaperna för en hanterad CCF-resurs.

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());
    }
}

Rensa resurser

Andra hanterade CCF-artiklar kan bygga vidare på den här snabbstarten. Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats.

När du är klar med resurserna som skapas i den här artikeln använder du annars kommandot Azure CLI az group delete för att ta bort resursgruppen och alla dess inneslutna resurser.

az group delete --resource-group myResourceGroup

Nästa steg

I den här snabbstarten skapade du en hanterad CCF-resurs med hjälp av Azure SDK för Java. Om du vill veta mer om Azure Managed CCF och hur du integrerar det med dina program kan du fortsätta med följande artiklar: