会社は、新しいアプリの設計と開発を行っています。 開発者は、キーとマネージド ID のみを使用してストレージにアクセスできるようにする必要があります。 開発者は、ロールベースのアクセス制御を使用したいと考えています。 テストを支援するには、保護された不変ストレージが必要です。
アーキテクチャ ダイアグラム
スキルアップ タスク
- ストレージ アカウントとマネージド ID を作成します。
- キー コンテナーとキーを使用してストレージ アカウントへのアクセスをセキュリティで保護します。
- キー コンテナー内のカスタマー マネージド キーを使用するようにストレージ アカウントを構成します。
- 時間ベースのアイテム保持ポリシーと暗号化スコープを構成します。
演習の手順
ストレージ アカウントとマネージド ID を作成します
- Web アプリ用のストレージ アカウントを提供します。
- ポータルで、「ストレージ アカウント」と検索して選択します。
- [+ 作成] を選択します。
- リソース グループで [新規作成] を選択します。 リソース グループに名前を付け、[OK] を選択して、変更内容を保存します。
- [ストレージ アカウント名] を指定します。 名前が一意であり、名前付け要件を満たしていることを確認します。
- [暗号化] タブに移動します。
- [インフラストラクチャ暗号化を有効にする] ボックスをオンにします。
- このストレージ アカウントが作成された後に、このオプションを変更することはできませんという警告に注意してください。
- [確認および作成] を選択します。
- リソースがデプロイされるまで待ちます。
-
Web アプリが使用するマネージド ID を提供します。 マネージド ID に関する詳細を確認します。
- マネージド ID を検索して選択します。
- [作成] を選択します
- リソース グループを選択します。
- マネージド ID に名前を付けます。
- [確認と作成] を選択してから、[作成] を選択します。
-
マネージド ID に正しいアクセス許可を割り当てます。 ID には、コンテナーと BLOB の読み取りと一覧表示のみが必要です。 Azure ロールの割り当て方法に関する詳細を確認します。
- 「ストレージ アカウント」を検索して選択します。
- [アクセス制御 (IAM)] ブレードを選択します。
- ページの中央で、[ロールの割り当ての追加] を選択します。
- [職務のロール] ページで、ストレージ BLOB データ閲覧者ロールを検索して選択します。
- [メンバー] ページで、[マネージド ID] を選択します。
- [メンバーの選択] を選択し、[マネージド ID] ドロップダウンで [ユーザー割り当てマネージド ID] を選択します。
- 前の手順で作成したマネージド ID を選択します。
- [選択] をクリックし、ロールの [確認と割り当て] をクリックします。
- もう一度 [確認と割り当て] を選択し、ロールの割り当てを追加します。
- ストレージ アカウントは、ストレージ データ BLOB 閲覧者のアクセス許可を持つマネージド ID によってアクセスできるようになりました。
キー コンテナーとキーを使用してストレージ アカウントへのアクセスをセキュリティで保護します
- ラボのこの部分に必要なキー コンテナーとキーを作成するには、ユーザー アカウントに Key Vault 管理者のアクセス許可が必要です。 Azure のロールベースのアクセス制御を使用して Key Vault のキー、証明書、シークレットへのアクセス権を付与する方法に関する詳細を確認します。
- ポータルで、「リソース グループ」を検索して選択します。
- リソース グループを選択し、[アクセス制御 (IAM)] ブレードを選択します。
- ページの中央で、[ロールの割り当ての追加] を選択します。
- [職務のロール] ページで、「Key Vault 管理者ロール」を検索して選択します。
- [メンバー] ページで、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
- [メンバーの選択] を選択します。
- 「ユーザー アカウント」を検索して選択します。 ユーザー アカウントはポータルの右上に表示されます。
- [選択]、[確認と割り当て] の順にクリックします。
- もう一度 [確認と割り当て] を選択し、ロールの割り当てを追加します。
- これで、ラボを続行する準備が整いました。
-
アクセス キーを格納するキー コンテナーを作成します。
- ポータルで、「キー コンテナー」を検索して選択します。
- [作成] を選択します
- リソース グループを選択します。
- キー コンテナーの名前を指定します。 名前は一意である必要があります。
- [アクセス構成] タブで、[Azure ロールベースのアクセス制御 (推奨)] が選択されていることを確認します。
- Review + create を選択します。
- 検証チェックが完了するまで待ってから、[作成] を選択します。
- デプロイ後、[リソースに移動] を選択します。
- [概要] ブレードで、論理的な削除と消去の両方の保護が有効になっていることを確認します。
-
キー コンテナーにカスタマー マネージド キーを作成します。
- キー コンテナーの [オブジェクト] セクションで、[キー] ブレードを選択します。
- [生成/インポート] を選択し、キーに名前を付けます。
- 残りのパラメーターについては既定値を使用し、[作成] をクリックしてキーを作成します。
キー コンテナー内のカスタマー マネージド キーを使用するようにストレージ アカウントを構成します。
- 次の手順を完了する前に、Key Vault Crypto サービス暗号化ユーザー ロールをマネージド ID に割り当てる必要があります。 システム割り当てマネージド ID を使用してアクセスを承認する方法に関する詳細を確認します
- ポータルで、「リソース グループ」を検索して選択します。
- リソース グループを選択し、[アクセス制御 (IAM)] ブレードを選択します。
- ページの中央で、[ロールの割り当ての追加] を選択します。
- [職務のロール] ページで、「Key Vault Crypto サービス暗号化ユーザー ロール」を検索して選択します。
- [メンバー] ページで、[マネージド ID] を選択します。
- [メンバーの選択] を選択し、[マネージド ID] ドロップダウンで [ユーザー割り当てマネージド ID] を選択します。
- [マネージド ID] を選択します。
- [選択]、[確認と割り当て] の順にクリックします。
- もう一度 [確認と割り当て] を選択し、ロールの割り当てを追加します。
- キー コンテナー内のカスタマー マネージド キーを使用するようにストレージ アカウントを構成します。 既存のストレージ アカウントのカスタマー マネージド キーに関する詳細を確認します。
- 自分のストレージ アカウントに戻ります。
- [セキュリティとネットワーク] セクションで、[暗号化] ブレードを選択します。
- [カスタマー マネージド キー] を選択します。
- キー コンテナーとキーを選択します。 キー コンテナーとキーを選択します。
- 選択して選択を確定します。
- [ID の種類] が [ユーザー割り当て] であることを確認します。
- ID を選択します。
- マネージド ID を選択し、[追加] を選択します。
- 変更内容を保存します。
- ID に正しいアクセス許可がないというエラーが表示された場合は、少し待ってからやり直してください。
時間ベースのアイテム保持ポリシーと暗号化スコープを構成します。
-
開発者は、管理者であってもファイルを変更できないストレージ コンテナーを必要としています。 BLOB 不変ストレージに関する詳細を確認します。
- ストレージ アカウントに移動します。
- [データ ストレージ] セクションで、[コンテナー] ブレードを選択します。
- hold という名前のコンテナーを作成します。 既定値のままにします。 必ずコンテナーを 作成 してください。
- ファイルをコンテナーにアップロードします。
- [設定] セクションで、[アクセス ポリシー] ブレードを選択します。
- [不変 BLOB ストレージ] セクションで、[+ ポリシーの追加] を選択します。
- [ポリシーの種類] では、[時間ベースの保持] を選択します。
- [保持期間] を 5 日に設定します。
- 変更を必ず保存してください。
- コンテナー内のファイルを削除してみてください。
- ポリシーが原因で BLOB の削除に失敗したことが通知されたことを確認します。
-
開発者は、インフラストラクチャの暗号化を有効にする暗号化スコープを必要としています。 インフラストラクチャの暗号化に関する詳細を確認します。
- ストレージ アカウントに戻ります。
- [セキュリティとネットワーク] ブレードで、[暗号化] を選択します。
- [暗号化スコープ] タブで、[追加] を選択します。
- 暗号化スコープに名前を付けます。
- 暗号化の種類は、Microsoft マネージド キーです。
- インフラストラクチャの暗号化を [有効] に設定します。
- 暗号化スコープを作成します。
- ストレージ アカウントに戻り、新しいコンテナーを作成します。
- [新しいコンテナー] ページに、名前とパブリック アクセス レベルがあることを確認します。
- [詳細設定] セクションで、作成した暗号化スコープを選択し、コンテナー内のすべての BLOB に適用できます。
注: 追加の演習については、「ネットワーク セキュリティ グループとサービス エンドポイントを使うことで Azure リソースへのアクセスをセキュリティで保護し、分離する」モジュールを完了してください。 このモジュールにはサンドボックスがあり、ストレージへのアクセスを制限する演習をさらに行うことができます。
リソースのクリーンアップ
自分のサブスクリプションで作業してラボを完了した場合は、少し時間をかけてラボ リソースを削除してください。 これにより、リソースが確実に解放されるため、コストが最小限に抑えられます。 ラボ リソースを削除する最も簡単な方法は、ラボ リソース グループを削除することです。
- Azure portal で、リソース グループを選び、[リソース グループの削除]、[リソース グループ名を入力してください] の順に選び、[削除] をクリックします。
- Azure PowerShell を使用する場合は、「
Remove-AzResourceGroup -Name resourceGroupName
」と入力します。 - CLI を使用する場合は、「
az group delete --name resourceGroupName
」と入力します。
Copilot を使用して学習を拡張する
Copilot は、あなたの学習体験に役立ちます。 Copilot では、基本的な技術情報、手順の概要、長所と短所、トラブルシューティングのヘルプ、使用例、コーディング例などを提供できます。 Copilot にアクセスするには、Edge ブラウザーを開き、Copilot (右上) を選択します。 次のプロンプトを試すには数分かかります。
- Azure マネージド ID とは何ですか? また、Azure Storage でどのように使用しますか?
- Azure Storage へのアクセスを管理するのに使用できる組み込みのロールベースのアクセス制御 (RBAC) ロールは何ですか?
- カスタマー マネージド キーとは何ですか? また、Azure Storage でどのように使用されますか?
自習トレーニングでさらに学習する
- ネットワーク セキュリティ グループとサービス エンドポイントを使うことで Azure リソースへのアクセスをセキュリティで保護し、分離する。 このモジュールでは、仮想ネットワーク サービス エンドポイントを使用して Azure サービスとの間のネットワーク トラフィックを制御する方法について説明しています。
要点
- Azure には、Azure Storage 用の組み込み RBAC ロールがあります。 このロールには、ストレージ アカウント共同作成者、ストレージ BLOB データ所有者、ファイル データ SMB 共有共同作成者などがあります。
- 独自の暗号化キーを使用して、ストレージ アカウントのデータを保護できます。 カスタマー マネージド キーを指定すると、データを暗号化するキーへのアクセスを保護および制御するために、そのキーが使用されます。
- 不変ストレージにより、ユーザーが指定した期間データを変更または削除できなくなります。 不変ポリシーには、時間ベースと訴訟ホールドの 2 種類があります。
- インフラストラクチャ暗号化は、ストレージ アカウント全体、またはアカウント内の暗号化スコープに対して有効にできます。 インフラストラクチャの暗号化は、コンプライアンス要件のためにデータを二重に暗号化する必要があるシナリオの場合にお勧めします。