ターゲット クラスターでのサービス プリンシパルのローテーション
このドキュメントでは、ターゲット Nexus クラスターでサービス プリンシパルのローテーションを実行するプロセスの概要について説明します。 セキュリティのベスト プラクティスに合わせて、セキュリティ プリンシパルを定期的にローテーションする必要があります。 サービス プリンシパルの整合性が疑わしい場合、または侵害されたことがわかった場合は、ただちにローテーションする必要があります。
前提条件
- [Azure CLI のインストール][インストール手順] をインストールする必要があります。
networkcloud
CLI 拡張機能が必要です。networkcloud
拡張機能がインストールされていない場合は、こちらに記載されている手順のようにしてインストールできます。- ターゲット クラスターの Azure portal にアクセスします。
az login
を使って、ターゲット クラスターと同じサブスクリプションにログインする必要があります- ターゲット クラスターは実行中で、正常な状態である必要があります。
- サービス プリンシパルのローテーションは、構成された資格情報の有効期限が切れる前に実行する必要があります。
- サービス プリンシパルには、ターゲット クラスターのサブスクリプションに対する所有者特権が必要です。
既存のサービス プリンシパルにセカンダリ資格情報を追加する
サービス プリンシパルの既存の資格情報を一覧表示します
az ad app credential list --id "<SP Application (client) ID>"
サービス プリンシパルにセカンダリ資格情報を追加します。 生成されたパスワードは、ベスト プラクティスに従って、安全な場所にコピーしてください。
az ad app credential reset --id "<SP Application (client) ID>" --append --display-name "<human-readable description>"
新しいサービス プリンシパルを作成する
サービス プリンシパルには、ターゲット クラスターのサブスクリプションに対する所有者特権スコープが必要です。
az ad sp create-for-rbac -n "<service principal display name>" --role owner --scopes /subscriptions/<subscription-id>
ターゲット クラスターでサービス プリンシパルをローテーションする
新しい情報を提供すると、ターゲット クラスターでサービス プリンシパルをローテーションできます。これは、セカンダリ資格情報の更新のみにすることも、ターゲット クラスターの新しいサービス プリンシパルにすることもできます。
az networkcloud cluster update --resource-group "<resourceGroupName>" --cluster-service-principal application-id="<sp app id>" password="<cleartext password>" principal-id="<sp id>" tenant-id="<tenant id>" -n <cluster name> --subscription <subscription-id>
ターゲット クラスターで新しいサービス プリンシパルの更新を確認する
クラスター ショーでは、ターゲット クラスター上でローテーションが実行された場合、新しいサービス プリンシパルの変更が一覧表示されます。
az networkcloud cluster show --name "clusterName" --resource-group "resourceGroup"
出力で、clusterServicePrincipal
プロパティの下に詳細が表示されます。
"clusterServicePrincipal": {
"applicationId": "<sp application id>",
"principalId": "<sp principal id>",
"tenantId": "tenant id"
}
Note
更新時に、正しいサービス プリンシパル ID (Azure のオブジェクト ID) を使用していることを確認します。 同じサービス プリンシパル名に対して Azure から取得できる 2 つの異なるオブジェクト ID があります。正しい ID を見つけるには、次の手順に従います。
- Azure portal の検索バーでサービス プリンシパルを検索するときに表示される種類のアプリケーションのサービス プリンシパルからオブジェクト ID を取得することは避けてください。
- 代わりに、Azure Services の [エンタープライズ アプリケーション] でサービス プリンシパル名を検索し、正しいオブジェクト ID を見つけて、それをプリンシパル ID として使用します。
さらに不明な点がある場合は、サポート にお問い合わせください。 サポート プランの詳細については、Azure サポート プランに関するページを参照してください。