演習 - キー コンテナーを作成してシークレットを格納する

完了

アプリケーション用のキー コンテナーを作成する

各アプリケーションのデプロイ環境 (開発、テスト、運用など) ごとに、個別のコンテナーを作成することをお勧めします。 1 つのコンテナーを使用して複数のアプリと環境のシークレットを格納することは可能ですが、攻撃者がコンテナーへの読み取りアクセスを得た場合の影響は、コンテナー内のシークレットの数と共に高まります。

ヒント

1 つのアプリケーションに対し、異なる環境間でシークレットに同じ名前を使用する場合、アプリ内で変更する必要がある環境固有の構成は、コンテナー URL だけです。

コンテナーの作成には、初期構成は必要ありません。 ユーザー ID には、シークレット管理アクセス許可の完全なセットが自動的に付与されます。 すぐにシークレットの追加を開始できます。 コンテナーを作成すると、シークレットの追加と管理は、Azure 管理インターフェイス (Azure portal、Azure CLI、Azure PowerShell など) から実行できるようになります。 そのコンテナーを使用するようにアプリケーションを設定する場合、適切なアクセス許可を割り当てる必要があります。これについては次のユニットで説明します。

キー コンテナーを作成し、そこにシークレットを格納する

経営陣は、アプリケーション シークレットについて会社が抱えているすべての問題を考慮して、他の開発者を正しい道に導くために小規模なスターター アプリを作成することをあなたに求めています。 アプリは、できる限り簡単かつ安全にシークレットを管理するためのベスト プラクティスを示す必要があります。

まず、コンテナーを作成し、そこに 1 つのシークレットを格納します。

Key Vault を作成する

''Key Vault 名はグローバルに一意である必要があるため、一意の名前を選択します''。 Vault の名前は長さを 3 - 24 文字とし、英数字と特殊文字のハイフン (-) のみを使用する必要があります。 選択したコンテナー名を書き留めます。これは、この演習を通して必要になるためです。

コンテナーを作成するには、Azure Cloud Shell で次のコマンドを実行します。 --name パラメーターには必ず一意のコンテナー名を入力してください。

az keyvault create \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --location centralus \
    --name <your-unique-vault-name>

完了すると、新しいコンテナーを記述する JSON 出力が表示されます。

ヒント

このコマンドでは、[サンドボックス リソース グループ名] という名前の事前に作成されたリソース グループが使用されました。 独自のサブスクリプションを使用する場合は、新しいリソース グループを作成するか、以前に作成した既存のリソース グループを使用します。

シークレットを追加する

次に、シークレットを追加します。 このシークレットの名前は SecretPassword で、値は reindeer_flotilla になります。 必ず、--vault-name パラメーターで作成したコンテナー名に <your-unique-vault-name> を置き換えてください。

az keyvault secret set \
    --name SecretPassword \
    --value reindeer_flotilla \
    --vault-name <your-unique-vault-name>

アプリのコードをすぐに記述しますが、まず、アプリがコンテナーに対して認証される方法について少し説明する必要があります。