Share via


クイックスタート: Azure SDK for Python を使って Azure Managed CCF リソースを作成する

Azure Managed CCF (Managed CCF) は、機密性の高いアプリケーションをデプロイするための、高度なセキュリティで保護された新しいサービスです。 Azure Managed CCF の詳細については、「Azure Managed Confidential Consortium Framework の概要」を参照してください。

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

API リファレンス ドキュメント | ライブラリ ソース コード | パッケージ (Python Package Index) 管理ライブラリ

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure SDK for Python でサポートされている Python バージョン。
  • Windows または Linux を実行しているコンピューターでの OpenSSL
  • サポートされている Python パッケージの最小バージョンは 2.0.0b3 です。

セットアップ

このクイックスタートでは、Azure ID ライブラリを Azure CLI または Azure PowerShell と共に使用して、Azure サービスに対するユーザーの認証を行います。 また、開発者は、Visual Studio または Visual Studio Code を使用して自分の呼び出しを認証することもできます。 詳細については、Azure ID クライアント ライブラリを使用したクライアントの認証に関するページを参照してください。

Azure へのサインイン

Azure CLI az login コマンドまたは Azure PowerShell Connect-AzAccount コマンドレットを使用して Azure にサインインします。

az login

CLI または PowerShell で既定のブラウザーを開くことができる場合、ブラウザが開き、Azure サインイン ページが読み込まれます。 そうでない場合は、https://aka.ms/devicelogin を開き、ターミナルに表示されている認証コードを入力します。

メッセージが表示されたら、ブラウザーでアカウントの資格情報を使用してサインインします。

パッケージのインストール

ターミナルまたはコマンド プロンプトで、適切なプロジェクト フォルダーを作成したら、「Python 仮想環境を使用する」で説明されているように、Python 仮想環境を作成し、アクティブ化します。

Azure Active Directory ID クライアント ライブラリをインストールします。

pip install azure-identity

Azure confidential ledger 管理プレーン クライアント ライブラリをインストールします。 サポートされている最小バージョンは 2.0.0b3 以降です。

pip install azure-mgmt-confidentialledger==2.0.0b3

リソース グループを作成する

リソース グループとは、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"

Python アプリケーションを作成する

管理プレーン クライアント ライブラリを使う

管理プレーン ライブラリ (azure.mgmt.confidentialledger) を使うと、Managed CCF リソースに対する操作 (作成と削除、サブスクリプションに関連付けられたリソースの一覧表示、特定のリソースの詳細表示など) を行うことができます。 次のコードを使うと、Managed CCF リソースのプロパティを作成して表示できます。

from azure.identity import DefaultAzureCredential

# Import the Azure Managed CCF management plane library
from azure.mgmt.confidentialledger import ConfidentialLedger

import os

sub_id = "0000000-0000-0000-0000-000000000001"
client = ConfidentialLedger(credential=DefaultAzureCredential(), subscription_id=sub_id)

# ********** Create a Managed CCF app ********** 
app_properties = {
    "location": "southcentralus",
    "properties": {
      "deploymentType": {
        "appSourceUri": "",
        "languageRuntime": "JS"
      },
      "memberIdentityCertificates": [ # Multiple members can be supplied
        {
          "certificate": "-----BEGIN CERTIFICATE-----\nMIIBvzC...f0ZoeNw==\n-----END CERTIFICATE-----",
          "tags": { "owner": "ITAdmin1" }
        }
      ],
      "nodeCount": 3 # Maximum allowed value is 9
    },
    "tags": { "costcenter": "12345" }
}

result = client.managed_ccf.begin_create("myResourceGroup", "confidentialbillingapp", app_properties).result()

# ********** Retrieve the Managed CCF app details ********** 
confidential_billing_app = client.managed_ccf.get("myResourceGroup", "confidentialbillingapp")

# ********** Delete the Managed CCF app **********
result = client.managed_ccf.begin_delete("myResourceGroup", "confidentialbillingapp").result()

リソースをクリーンアップする

他の Managed CCF の記事には、このクイックスタートに基づいているものがあります。 後続のクイックスタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことをお勧めします。

それ以外の場合は、この記事で作成したリソースの操作が完了したら、Azure CLI の az group delete コマンドを使って、リソース グループとそれに含まれるすべてのリソースを削除します。

az group delete --resource-group myResourceGroup

次のステップ

このクイックスタートでは、Azure Python SDK for Confidential Ledger を使って Managed CCF リソースを作成しました。 Azure Managed CCF の詳細と、これをアプリケーションと統合する方法については、続けて以下の記事を参照してください。