Azure エンクレーブは、機密性の高いデータを組織に提供するクラウド ネットワーク サービスであり、商用クラウドやエアギャップされたAzure クラウド全体にワークロードをすばやくデプロイして管理する機能を大規模に提供します。 この記事では、あなたが次のことを行います。
- App Service Function App のサービス カタログ テンプレートをポータルから既存のワークロードにデプロイします。
Note
このサンプルデプロイはデモ目的のものであり、ネットワーク、システム、またはアプリケーションの管理に関するすべてのベスト プラクティスを表すわけではありません。
始める前の準備
この記事では、ネットワークとエンクレーブの概念Azure基本的な理解を前提としています。 詳細については、「Azure エンクレーブのベスト プラクティス」を参照してください。
アクティブなサブスクリプションを含む Azure アカウントが必要です。 お持ちでない場合は、無料のアカウントを作成してください。
ワークロードリソース グループ内にリソースを作成するには、コミュニティ、エンクレーブ、ワークロード、および少なくとも 1 つのワークロード リソース グループとアクセス許可が必要です。
エンクレーブの
Advancedメンテナンス モードを有効にして、Private Link リソースをエンクレーブマネージド リソース グループに追加できるようにします。
前提条件
エンクレーブ リソースが Customer-Managed キー (CMK) 暗号化を使用していることを確認するために、エンクレーブにガードレール要件があります。 これには、エンクレーブ内からキーにアクセスできるようにするためのキーと ID が必要です。 共通依存関係サービス カタログ テンプレートで CMK (省略可能なKey Vault) とマネージド ID を作成する
- プライベート エンドポイントのサブネット: エンクレーブの作成時にサブネットを作成するか、エンクレーブの作成後に 新しいサブネットを作成 することができます。 プライベート エンドポイント サブネットには、プライベート エンドポイントが正常に機能するための サブネット委任 は必要ありません。
- エンクレーブのサブネット管理機能を使用して、サイズ
/26を持つ 2 つのサブネットを作成します (例: 10.0.2.0/26 [10.0.2.0 - 10.0.2.63] と 10.0.2.128/26 [10.0.2.128 - 10.0.2.191]) - 最初のサブネットは、"サブネット名" テンプレート パラメーターに使用されます。
FunctionAppSubnetのような名前のサブネット名を作成し、以下のデプロイ手順 5 で名前を使用します。- サブネット委任を追加する
Microsoft.Web/serverFarms
- サブネット委任を追加する
- 2 番目のサブネットは、"Private Link サブネット名" テンプレート パラメーターに使用されます。
PrivateLinkSubnetのようなサブネット名を作成し、以下のデプロイ手順 5 で名前を使用します。
Note
サブネット内にリソースがデプロイされると、サブネットのサイズを変更することはできません。 2 つの "/26" サブネットは、より多くのサブネット (たとえば、別の "/26") のエンクレーブ サブネットにスペースを残します。 これら 2 つのサブネットがエンクレーブで必要な唯一のサブネットである場合は、ニーズに応じてサイズを変更できます。
- 次に作成した内容に基づいて、これらの プライベート DNS Zones をすばやく作成します。
-
Key VaultこのテンプレートからKey Vaultを作成する場合、またはよりカスタマイズ可能なKey Vault テンプレートを作成する場合に必要です。 -
Storage File、Storage Queue、Storage Blob、およびStorage Tableは、このテンプレートまたはよりカスタマイズ可能なストレージ アカウント テンプレートからストレージ アカウントを作成するときに必要です。 - 関数アプリにプライベートにアクセスするために必要な
Additional プライベート DNS Zone namesのprivatelink.azurewebsites.net。
-
- このテンプレートには、Key Vault、カスタマー マネージド キー (CMK)、およびマネージド ID が必要です。
Common Dependencies サービス カタログのクイック スタートで、Key Vault、CMK、およびマネージド ID を作成するか、独自の ID を作成します。
- これらのリソースは、 ワークロード リソース グループ内に作成する必要があります。
- ユーザー マネージド ID を作成した後、CMK キーにアクセスできることを確認します
-
次の手順を使用して、キー コンテナーをスコープとするマネージド ID に
Key Vault Crypto Service Encryption UserRBAC ロールを割り当てます。 これにより、マネージド ID を仮想マシンなどの別のリソースに割り当てることができ、その仮想マシンは、最小限の特権に従ってキー コンテナーに対して他の操作を行うアクセス許可を持たずに、キー コンテナー内の CMK を使用してオペレーティング システム ディスクを暗号化できます。
-
次の手順を使用して、キー コンテナーをスコープとするマネージド ID に
テンプレートをデプロイする
- 対象のデプロイのワークロードに移動します。
- [
Add Service] ボタンを選択します。 - サービス
Function Appドロップダウンから サービス テンプレートを選択し、必要なバージョン (既定:latest) を確認し、Nextを選択します。
- [基本] タブで、必要なすべてのパラメーターを入力します。 ストレージ アカウント名は、新しいストレージ アカウントの名前です。
- 2 つのサブネットが作成されたら、[ネットワーク] タブに新しいサブネット名を入力します。
- [暗号化] タブで、カスタマー マネージド キー (CMK) セットアップのKey Vaultに追加された新しいキーの名前を入力します。
- CMK のセットアップ中に作成されたユーザー マネージド ID 名を入力します。
- 必要に応じて、事前設定されたパラメーターまたは既定のパラメーターのいずれかを調整します。
-
Review + Create選択し、Createします。
すべてのリソースの作成が完了するまでに 10 分かかる場合があります。 デプロイされたリソース内でアクションを実行する前に、デプロイが正常に完了するまで待ちます。
デプロイメントを検証する
指定したリソース グループに移動して、目的のリソースが作成されたことを確認します。 含む: Function App と新しいストレージ アカウント
Function App リソースを開く
- Function App リソースを開く
- 概要ページで、関数を確認します
デプロイメントを削除する
これらのリソースを保持する予定がない場合は、不要なリソースをクリーンアップして、Azure料金を回避します。 リソース グループに他のデプロイが存在しない場合は、リソース グループ全体を削除できます。
Recommendations
- サービス カタログのデプロイにタグを追加して、次のようなそのリソースの重要な情報を追跡します。
- 所有者:
<main POC> - デプロイヤー:
<yourName> - 目的:
<automation function> - サービス カタログ名:
<App Service Function App> - サービス カタログのバージョン:
<version you deployed>
- 所有者:
- タグを適用して継承するAzure Policyを追加することを検討してください