Bridge to Kubernetes でマネージド ID を使用する
AKS クラスターでマネージド ID セキュリティ機能を使用してシークレットとリソースへのアクセスをセキュリティで保護している場合、Bridge to Kubernetes には、これらの機能を使用できるように特別な構成が必要です。 ローカル実行およびデバッグが適切に保護されるようにするには Microsoft Entra トークンをローカル コンピューターにダウンロードする必要があり、これには Bridge to Kubernetes での特別な構成が必要となります。 この記事では、Bridge to Kubernetes を構成して、マネージド ID を使用するサービスと連携させる方法について説明します。
マネージド ID を使用するようにサービスを構成する方法
マネージド ID がサポートされているローカル コンピューターを有効にするには、KubernetesLocalConfig.yaml ファイルの enableFeatures
セクションで、ManagedIdentity
を追加します。 enableFeatures
セクションがまだない場合は、追加します。
enableFeatures:
- ManagedIdentity
警告
Microsoft Entra トークンがローカル コンピューターにフェッチされ、セキュリティ上のリスクが生じる可能性があるため、運用クラスターではなく開発クラスターを使用する場合は、Bridge to Kubernetes でのみマネージド ID を使用するようにしてください。
KubernetesLocalConfig.yaml ファイルがない場合は作成できます。Bridge to Kubernetes の構成方法に関するページを参照してください。
Microsoft Entra トークンをフェッチする方法
トークンをフェッチする場合は、コードで Azure.Identity.DefaultAzureCredential
または Azure.Identity.ManagedIdentityCredential
のいずれかに依存していることを確認する必要があります。
次の C# コードでは、ManagedIdentityCredential
を使用するときにストレージ アカウントの資格情報をフェッチする方法を示します。
var credential = new ManagedIdentityCredential(miClientId);
Console.WriteLine("Created credential");
var containerClient = new BlobContainerClient(new Uri($"https://{accountName}.blob.windows.net/{containerName}"), credential);
Console.WriteLine("Created blob client");
次のコードでは、DefaultAzureCredential を使用するときにストレージ アカウントの資格情報をフェッチする方法を示します。
var credential = new DefaultAzureCredential();
Console.WriteLine("Created credential");
var containerClient = new BlobContainerClient(new Uri($"https://{accountName}.blob.windows.net/{containerName}"), credential);
Console.WriteLine("Created blob client");
マネージド ID を使用して他の Azure リソースにアクセスする方法については、「次のステップ」セクションを参照してください。
トークンがダウンロードされたときに Azure アラートを受け取る
サービスで Bridge to Kubernetes を使用するたびに、Microsoft Entra トークンがローカル コンピューターにダウンロードされます。 このような場合に通知を受け取るように Azure アラートを有効にすることができます。 詳細については、「Azure Defender の有効化」を参照してください。 (30 日間の試用期間が終了した後は) 料金が発生することに注意してください。
次のステップ
マネージド ID を使用する AKS クラスターと連携するように Bridge to Kubernetes を構成したので、通常どおりデバッグを行うことができます。 [bridge-to-kubernetes.md#connect-to-your-cluster-and-debug-a-service] を参照してください。
マネージド ID を使用して Azure リソースにアクセスする方法の詳細については、次のチュートリアルを参照してください。
- チュートリアル: Linux VM のシステム割り当てマネージド ID を使用して Azure Storage にアクセスする
- チュートリアル: Linux VM のシステム割り当てマネージド ID を使用して Azure Data Lake Store にアクセスする
- チュートリアル: Linux VM のシステム割り当てマネージド ID を使用して Azure Key Vault にアクセスする
そのセクションには、他の Azure リソースにアクセスするためにマネージド ID を使用する他のチュートリアルもあります。