[アーティクル] 12/04/2024
2 人の共同作成者
フィードバック
この記事の内容
この記事では、Azure アプリケーション整合性スナップショット ツール (AzAcSnap) で使用する Azure ストレージを構成するためのガイドを提供します。
AzAcSnap で使用しているストレージを選択してください。
システムマネージド ID (推奨) を設定するか、サービス プリンシパルの認証ファイルを生成します。
Azure NetApp Files との通信を検証している場合、通信が失敗したりタイムアウトしたりする可能性があります。AzAcSnap を実行しているシステムから次のアドレスと TCP/IP ポートへの送信トラフィックがファイアウォール規則によってブロックされていないことを確認します:
(https://)management.azure.com:443
(https://)login.microsoftonline.com:443
独自の自己署名証明書を生成し、ストレージ バックエンドにインストールできるように PEM (Privacy Enhanced Mail) ファイルの内容を Microsoft Operations と共有して、AzAcSnap を ONTAP で安全に認証できるようにする必要があります。
PEM と KEY を 1 つの PKCS12 ファイルに結合します。このファイルは、ONTAP に対する証明書ベースの認証のために AzAcSnap で必要になります。
curl
を使用していずれかのノードに接続し、PKCS12 ファイルをテストします。
Microsoft Operations では、プロビジョニング時にストレージ ユーザー名とストレージ IP アドレスが提供されます。
ストレージとの通信を有効にする
このセクションでは、ストレージとの通信を有効にする方法について説明します。 次のタブを使用して、使用しているストレージ バックエンドを正しく選択します。
システム マネージド ID またはサービス プリンシパル ファイルを使用して Azure Resource Manager に対して認証する方法は 2 つあります。 オプションについては、以下で説明します。
Azure システム マネージド ID
AzAcSnap 9 からは、操作にサービス プリンシパルの代わりにシステムマネージド ID を使用できます。 この機能を使用すると、サービス プリンシパルの資格情報を仮想マシン (VM) に格納する必要がなくなります。 Azure Cloud Shell を使用して Azure マネージド ID を設定するには、次の手順に従います:
Bash との Cloud Shell セッション内で、次の例を使用してシェル変数を適切に設定し、Azure マネージド ID を作成するサブスクリプションに適用します。 SUBSCRIPTION
、 VM_NAME
、RESOURCE_GROUP
をサイト固有の値に設定します。
export SUBSCRIPTION="99z999zz-99z9-99zz-99zz-9z9zz999zz99"
export VM_NAME="MyVM"
export RESOURCE_GROUP="MyResourceGroup"
export ROLE="Contributor"
export SCOPE="/subscriptions/${SUBSCRIPTION}/resourceGroups/${RESOURCE_GROUP}"
Cloud Shell を正しいサブスクリプションに設定します:
az account set -s "${SUBSCRIPTION}"
仮想マシンのマネージド ID を作成します。 次のコマンドは、AzAcSnap VM のマネージド ID を設定します (または既に設定されているかどうかを示します):
az vm identity assign --name "${VM_NAME}" --resource-group "${RESOURCE_GROUP}"
ロールを割り当てるためのプリンシパル ID を取得します:
PRINCIPAL_ID=$(az resource list -n ${VM_NAME} --query [*].identity.principalId --out tsv)
プリンシパル ID に共同作成者ロールを割り当てます:
az role assignment create --assignee "${PRINCIPAL_ID}" --role "${ROLE}" --scope "${SCOPE}"
省略可能な RBAC
ロールベースのアクセス制御 (RBAC) でカスタム ロール定義を使用して、マネージド ID のアクセス許可を制限できます。 スナップショットを管理できるように、仮想マシンに適したロール定義を作成します。 アクセス許可設定の例については、「Azure アプリケーション整合性スナップショット ツールを使用するためのヒントとテクニック 」を参照してください。
次に、ロールを Azure VM プリンシパル ID に割り当てます (SystemAssignedIdentity
とも表示されます):
az role assignment create --assignee ${PRINCIPAL_ID} --role "AzAcSnap on ANF" --scope "${SCOPE}"
サービス プリンシパル ファイルの生成
Cloud Shell セッションで、既定でサービス プリンシパルに関連付けるサブスクリプションでログオンしていることを確認します:
az account show
サブスクリプションが正しくない場合は、az account set
コマンドを使用します:
az account set -s <subscription name or id>
次の例に示すように、Azure CLI を使用してサービス プリンシパルを作成します:
az ad sp create-for-rbac --name "AzAcSnap" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth
このコマンドは、次の例のような出力を生成する必要があります:
{
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"clientSecret": "Dd4Ee~5Ff6.-Gg7Hh8Ii9Jj0Kk1Ll2_Mm3Nn4Oo5",
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
このコマンドは、RBAC 共同作成者ロールをサブスクリプション レベルでサービス プリンシパルに自動的に割り当てます。 テストでリソースを作成する特定のリソース グループにスコープを絞り込むことができます。
出力コンテンツを、azacsnap
コマンドと同じシステムに格納されている azureauth.json
というファイルに切り取って貼り付けます。 適切なシステムアクセス許可でファイルをセキュリティで保護します。
JSON ファイルの形式が前の手順で説明したとおりであることを確認し、URL を二重引用符 (") で囲みます。
重要
AzAcSnap 10 から、Azure Large Instance ストレージとの通信では、HTTPS 経由の REST API が使用されています。 AzAcSnap 10 より前のバージョンでは、SSH 経由で CLI を使用します。
HTTPS 経由の Azure Large Instance REST API
ストレージ バックエンドとの通信は、証明書ベースの認証を使用して、暗号化された HTTPS チャネル経由で行われます。 次の手順の例では、この通信の PKCS12 証明書のセットアップに関するガイダンスを提供します。
PEM および KEY ファイルを生成します。
CN は SVM ユーザー名と同じです。この SVM ユーザー名については Microsoft Operations に問い合わせてください。
この例では、svmadmin01
を SVM ユーザー名として使用しています。これはインストールに応じて変更してください。
openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout svmadmin01.key -out svmadmin01.pem -subj "/C=US/ST=WA/L=Redmond/O=MSFT/CN=svmadmin01"
以下の出力を参照してください。
Generating a RSA private key
........................................................................................................+++++
....................................+++++
writing new private key to 'svmadmin01.key'
-----
PEM ファイルの内容を出力します。
PEM ファイルの内容は、SVM に client-ca を追加するために使用されます。
! PEM ファイルの内容を Microsoft BareMetal インフラストラクチャ (BMI) 管理者に送信します。
cat svmadmin01.pem
-----BEGIN CERTIFICATE-----
MIIDgTCCAmmgAwIBAgIUGlEfGBAwSzSFx8s19lsdn9EcXWcwDQYJKoZIhvcNAQEL
/zANBgkqhkiG9w0BAQsFAAOCAQEAFkbKiQ3AF1kaiOpl8lt0SGuTwKRBzo55pwqf
PmLUFF2sWuG5Yaw4sGPGPgDrkIvU6jcyHpFVsl6e1tUcECZh6lcK0MwFfQZjHwfs
MRAwDgYDVQQHDAdSZWRtb25kMQ0wCwYDVQQKDARNU0ZUMRMwEQYDVQQDDApzdm1h
ZG1pbjAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuE6H2/DK9xjz
TY1JSYIeArJ3GQnBz7Fw2KBT+Z9dl2kO8p3hjSE/5W1vY+5NLDjEH6HG1xH12QUO
y2+NoT2s4KhGgWbHuJHpQqLsNFqaOuLyc3ofK7BPz/9JHz5JKmNu1Fn9Ql8s4FRQ
4GzXDf4qC+JhQBO3iSvXuwDRfGs9Ja2x1r8yOJEHxmnLgGVw6Q==
-----END CERTIFICATE-----
PEM と KEY を 1 つの PKCS12 ファイルに結合します (AzAcSnap に必要)。
openssl pkcs12 -export -out svmadmin01.p12 -inkey svmadmin01.key -in svmadmin01.pem
ファイル svmadmin01.p12 は、AzAcSnap 構成ファイルの aliStorageResource セクションの certificateFile の値として使用されます。
curl を使用して PKCS12 ファイルをテストします。
Microsoft Operations から証明書ベースのログインを許可する証明書を SVM に適用したという確認を受け取った後、SVM への接続をテストします。
この例では、svmadmin01.p12 という PKCS12 ファイルを使用して SVM ホスト "X.X.X.X" に接続します (この IP アドレスは Microsoft Operations によって提供されます)。
curl --cert-type P12 --cert svmadmin01.p12 -k 'https://X.X.X.X/api/cluster?fields=version'
{
"version": {
"full": "NetApp Release 9.15.1: Wed Feb 21 05:56:27 UTC 2024",
"generation": 9,
"major": 15,
"minor": 1
},
"_links": {
"self": {
"href": "/api/cluster"
}
}
}
SSH 経由の Azure Large Instance CLI
警告
これらの手順は、AzAcSnap 10 より前のバージョンを対象としており、コンテンツのこのセクションを定期的に更新することはありません。
ストレージ バックエンドとの通信は、暗号化された SSH チャネルを介して行われます。 次の手順の例では、この通信の SSH のセットアップに関するガイダンスを提供します:
/etc/ssh/ssh_config
ファイルを変更します。
MACs hmac-sha
行を含む次の出力を参照してください:
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# Port 22
Protocol 2
# Cipher 3des
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-
cbc
# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd
MACs hmac-sha
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
次のコマンド例を使用して、秘密キーと公開キーのペアを生成します。 キーを生成するときにパスワードを入力しないでください。
ssh-keygen -t rsa –b 5120 -C ""
cat /root/.ssh/id_rsa.pub
コマンドの出力は公開キーです。 スナップショット ツールがストレージ サブシステムと通信できるように、Microsoft Operations に送信します。
cat /root/.ssh/id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDoaRCgwn1Ll31NyDZy0UsOCKcc9nu2qdAPHdCzleiTWISvPW
FzIFxz8iOaxpeTshH7GRonGs9HNtRkkz6mpK7pCGNJdxS4wJC9MZdXNt+JhuT23NajrTEnt1jXiVFH
bh3jD7LjJGMb4GNvqeiBExyBDA2pXdlednOaE4dtiZ1N03Bc/J4TNuNhhQbdsIWZsqKt9OPUuTfD
j0XvwUTLQbR4peGNfN1/cefcLxDlAgI+TmKdfgnLXIsSfbacXoTbqyBRwCi7p+bJnJD07zSc9YCZJa
wKGAIilSg7s6Bq/2lAPDN1TqwIF8wQhAg2C7yeZHyE/ckaw/eQYuJtN+RNBD
次のステップ