演習 - キー コンテナーを作成してシークレットを格納する
アプリケーション用のキー コンテナーを作成する
各アプリケーションのデプロイ環境 (開発、テスト、運用など) ごとに、個別のコンテナーを作成することをお勧めします。 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>
アプリのコードを記述する前に、まず、アプリが資格情報コンテナーに対して認証される方法について少し説明する必要があります。