ラボ 16 - マネージド ID に Azure Key Vault を使用する
ログインの種類 = Azure リソース ログイン
ラボのシナリオ
Azure リソース用マネージド ID を使うとき、Microsoft Entra 認証をサポートするリソースに対して認証するためのアクセス トークンをコードで取得できます。ただし、すべての Azure サービスで Microsoft Entra 認証がサポートされているわけではありません。 Azure リソースのマネージド ID をこれらのサービスと共に使用するには、Azure Key Vault にサービス資格情報を保存し、マネージド ID を使用して Key Vault にアクセスして、資格情報を取得します。
推定時間:20 分
演習 1 - Azure Key Vault を使用して仮想マシン ID を管理する
タスク 1 - キー コンテナーを作成する
-
グローバル管理者アカウントを使用して、https://portal.azure.com にサインインします。
-
左側のナビゲーション バーの上部で、[+ リソースの作成] を選択します。
-
[Marketplace を検索] ボックスに「Key Vault」と入力します。
-
結果から [Key Vault] を選択します。
-
[作成] を選択します
-
次に示すように、必要なすべての情報を入力します。 このラボで使用しているサブスクリプションを選択していることを確認してください。 注 キー コンテナー名は一意である必要があります。 フィールドの右側にある緑色のチェックマークを探します。
- リソース グループ - rgSC300KeyVault
- キー コンテナー名 - anyuniquevalue
- [アクセスの構成] ページで、 [Vault Access Policy] (コンテナーのアクセス ポリシー) ラジオ ボタンをオンにします。
- Review + create を選択します。
- [作成] を選択します
タスク 2 - Windows 仮想マシンを作成する
-
[+ リソースの作成] を選択します。
-
[Marketplace を検索] 検索バーに「Windows 11」と入力します。
-
[Windows 11] を選択し、プランのドロップダウンから [Windows 11 Enterprise、バージョン 22H2] を選択します。 次に、 [作成] を選択します。
フィールド | 値 |
---|---|
VM 名 | vmKeyVault |
可用性のオプション | インフラストラクチャ冗長は必要ありません |
管理ユーザー名 | adminKeyVault |
Password | 忘れにくい安全なパスワードを設定してください |
ライセンス | 適格なライセンスがあることを確認してください |
-
[次へ] ボタンを使用して、[管理] タブに移動します。
-
[管理] タブで、[システム割り当てマネージド ID の有効化] の横のボックスをオンにします。
-
仮想マシンの作成エクスペリエンスの残りの部分に移動します。
-
[レビューと作成]、[作成] の順に選択します。
タスク 3 - シークレットを作成する
-
新しく作成した Key Vault に移動します。
-
左側のメニューで [オブジェクト] を開き、[シークレット] を選択します。
-
[生成/インポート] を選択します。
-
[シークレットの作成] 画面の [アップロード オプション] で、 [手動] を選択したままにします。
-
シークレットの名前と値を指定します。 値は任意のものを指定できます。
-
アクティブ化した日付と有効期限の日付をクリアのままにし、[有効] を [はい] のままにします。
-
[作成] を選択して、シークレットを作成します。
タスク 4 - Key Vault へのアクセス許可を付与する
-
新しく作成した Key Vault に移動します。
-
左側のメニューで、 [アクセス ポリシー] を選択します。
-
[+ 作成] を選択します。
-
[アクセス ポリシーの追加] セクションで、[テンプレートから構成する] (オプション) の下にあるプルダウン メニューから [シークレット管理] を選択します。
-
[次へ] ボタンを使用して [プリンシパル] タブに進みます。
-
検索フィールドに、タスク 2 で作成した VM の名前「vmKeyVault」を入力します。 結果一覧で VM を選択し、 [選択] を選択します。
-
[次へ] ボタンを使用して [確認および作成] タブに進みます。
-
[作成] を選択します
タスク 5 - PowerShell を使用して Key Vault シークレットを使用してデータにアクセスする
-
vmKeyVault に移動し、RDP を使用して adminKeyVault として仮想マシンに接続します。
-
ラボの仮想マシンから PowerShell を開きます。
-
PowerShell では、テナント上で Web 要求を呼び出し、VM の特定のポートでローカル ホストのトークンを取得します。
$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"}
-
次に、アクセス トークンを応答から抽出します。
$KeyVaultToken = $Response.access_token
-
PowerShell の Invoke-WebRequest コマンドを使用して、Key Vault で以前に作成したシークレットを取得し、Authorization ヘッダーにアクセス トークンを渡します。 Key Vault の [概要] ページの [要点] セクションにある Key Vault の URL が必要です。 リマインダー - Key Vault の URI は、[概要] タブにあります。
- キー コンテナー URI – Azure portal のキー コンテナーの [概要] ページから取得
-
シークレット名 – オブジェクトから取得 - キー コンテナーの [シークレット] ページ
Invoke-RestMethod -Uri https://<your-key-vault-URI>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}
1. 次のような応答を受け取ります。 ``` 'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16… ``` 1. このシークレットは、名前とパスワードを必要とするサービスに対する認証に使用できます。