Краткое руководство. Создание ресурса Azure Managed CCF с помощью пакета SDK Azure для Java
Azure Managed CCF (Managed CCF) — это новая и высокозащищенная служба для развертывания конфиденциальных приложений. Дополнительные сведения об Управляемом CCF Azure см. в разделе "О платформе управляемого конфиденциального консорциума Azure".
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Пакет исходного кода библиотеки исходного кода | библиотеки | API (центральный репозиторий Maven)
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Версии пакета средств разработки Java (JDK), поддерживаемые пакетом SDK Azure для Java.
- OpenSSL на компьютере под управлением Windows или Linux.
Настройка
В этом кратком руководстве для проверки подлинности пользователя в службах Azure используется библиотека удостоверений Azure, а также Azure CLI или Azure PowerShell. Разработчики также могут использовать Visual Studio на компьютере под управлением Windows или Linux Code для проверки подлинности своих вызовов. Дополнительные сведения см. в статье Проверка подлинности клиента с использованием клиентской библиотеки удостоверений Azure.
Вход в Azure
Вход в Azure с помощью команды az login Azure CLI или командлета Connect-AzAccount Azure PowerShell.
az login
Если в CLI или PowerShell можно запустить браузер по умолчанию, откроется браузер со страницей входа в Azure. В противном случае самостоятельно откройте страницу https://aka.ms/devicelogin и введите код авторизации, отображаемый в терминале.
При запросе выполните вход в браузере с помощью учетных данных.
Установка зависимостей
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-confidentialledger</artifactId>
<version>1.0.0-beta.3</version>
</dependency>
Создание или изменение группы ресурсов
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Используйте командлет Azure PowerShell New-AzResourceGroup , чтобы создать группу ресурсов с именем myResourceGroup в расположении southcentralus .
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Регистрация поставщика ресурсов
Перед созданием ресурса Необходимо зарегистрировать тип ресурса Azure Managed CCF в подписке.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Создание членов
Создайте пару ключей для элемента. После завершения следующих команд открытый ключ члена сохраняется и member0_cert.pem
закрытый ключ сохраняется в 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"
Создание приложения Java
Пакет SDK Azure для Библиотеки Java (azure-resourcemanager-confidentialledger) позволяет выполнять операции с управляемыми ресурсами CCF, такими как создание и удаление, перечисление ресурсов, связанных с подпиской, и просмотр сведений о конкретном ресурсе. Следующий фрагмент кода создает и просматривает свойства ресурса Управляемого 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());
}
}
Очистка ресурсов
Другие статьи по управляемым CCF можно создать на основе этого краткого руководства. Если вы планируете продолжить работу с последующими краткими руководствами и руководствами, вы можете оставить эти ресурсы на месте.
В противном случае, когда вы закончите работу с ресурсами, созданными в этой статье, используйте команду azure CLI az group delete для удаления группы ресурсов и всех содержащихся в ней ресурсов.
az group delete --resource-group myResourceGroup
Следующие шаги
В этом кратком руководстве вы создали управляемый ресурс CCF с помощью пакета SDK Azure для Java. Дополнительные сведения об Управляемом CCF Azure и их интеграции с приложениями см. в следующих статьях: