Azure リソースに対するアクセス権限の付与
スキャンモードが azure で動作する Ksocket は VM インスタンスに関する情報を API 経由で収集します。
この際、対象の Azure のサブスクリプションに対して Reader 相当の権限を必要とします。
そのため、以下のいずれかの方法で必要な権限を付与してください。
Azure リソースのマネージド ID を使用する場合
リソースのマネージド ID を使用し Ksocket がインストールされた VM インスタンスに対象サブスクリプションへの権限を付与します。
具体的な設定手順は下記リンクを参照してください。
- Windows VM のシステム割り当てマネージド ID を使用して Resource Manager にアクセスする
- Linux VM のシステム割り当てマネージド ID を使用して Resource Manager にアクセスする
※サービスプリンシパル用のファイル(Ksocket インストール先の ./etc/ksocket/azure.toml
)が存在する場合は削除してください。
サービスプリンシパルを使用する場合
サービスプリンシパルを使用し Ksocket に対象サブスクリプションへの権限を付与します。
Azure ポータルを使用してサービスプリンシパルを作成します。
次に対象のサブスクリプションをスコープとするロールを、作成したサービスプリンシパルに付与します。
上記の具体的な手順は下記リンクを参照してください。
- リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルをポータルで作成する
- Azure RBAC と Azure portal を使用してロールの割り当てを追加または削除する
その後 Ksocket のインストール先に ./etc/ksocket/azure.toml
を作成し、以下のように設定してください。
# 作成したサービスプリンシパルの「アプリケーション ID」
clientId = "Application ID"
# 作成したサービスプリンシパルの「認証キー」
secret = "xxxxxxxxxxxxxx"
# サービスプリンシパルを作成した Azure AD の「テナント ID」
tenant = "Directory ID"