Share via


Inicio rápido: Creación de un recurso de Azure Managed CCF mediante Azure SDK para Go

Azure Managed CCF (Managed CCF) es un servicio nuevo y altamente seguro para implementar aplicaciones confidenciales. Para más información sobre Azure Managed CCF, consulte Acerca de Azure Managed Confidential Consortium Framework.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Documentación de referencia de la API | Código fuente de la biblioteca | Paquete (repositorio central de Maven)

Requisitos previos

Instalación

En este artículo de inicio rápido se usa la biblioteca de identidades de Azure, junto con la CLI de Azure o Azure PowerShell, para autenticar al usuario en los servicios de Azure. Los desarrolladores también pueden usar Visual Studio o Visual Studi- OpenSSL en un equipo que ejecute Windows o Linux.o Code para autenticar sus llamadas. Para más información, consulte Autenticación del cliente con la biblioteca cliente de Azure Identity.

Inicio de sesión en Azure

Inicie sesión en Azure mediante el comando az login de la CLI de Azure o el cmdlet Connect-AzAccount de Azure PowerShell.

az login

Si la CLI o PowerShell pueden abrir el explorador predeterminado, lo harán y cargarán una página de inicio de sesión de Azure. En caso contrario, visite https://aka.ms/devicelogin y escriba el código de autorización que se muestra en el terminal.

Si se le pide, inicie sesión con las credenciales de su cuenta en el explorador.

Instalación de las dependencias

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

Crear un grupo de recursos

Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Use el cmdlet New-AzResourceGroup de Azure PowerShell para crear un grupo de recursos llamado myResourceGroup en la ubicación southcentralus.

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

Registrar el proveedor de recursos

El tipo de recurso CCF administrado de Azure debe estar registrado en la suscripción antes de crear un recurso.

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

az provider register --namespace Microsoft.ConfidentialLedger

Crear miembros

Genere un par de claves para el miembro. Una vez completados los siguientes comandos, la clave pública del miembro se guarda en member0_cert.pem y la clave privada se guarda en 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"

Creación de la aplicación de Java

El SDK de Azure para la biblioteca de Java (azure-resourcemanager-confidentialledger) permite operaciones en recursos de Managed CCF, como la creación y eliminación, la enumeración de los recursos asociados a una suscripción y la visualización de los detalles de un recurso específico. En el siguiente fragmento de código se crean y se ven las propiedades de un recurso de Managed CCF.

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

Limpieza de recursos

Otros artículos de Managed CCF pueden basase en este inicio rápido. Si tiene pensado seguir trabajando en otras guías de inicio rápido y tutoriales, considere la posibilidad de dejar estos recursos activos.

De lo contrario, cuando haya terminado con los recursos creados en este artículo, use el comando az group delete de la CLI de Azure para eliminar el grupo de recursos y todos los recursos que contiene.

az group delete --resource-group myResourceGroup

Pasos siguientes

En este inicio rápido, ha creado un recurso CCF administrado mediante el SDK de Azure para Java. Para más información sobre Azure Managed CCF y cómo integrarlo con las aplicaciones, continúe con los artículos siguientes: