説明
ACR の管理者アカウントはレジストリ全体に広い権限を持ちます。複数人でパスワードを共有すると操作主体を追跡しにくくなり、漏えいするとイメージの供給に影響する場合があります。連携で特に必要な場合を除き、Microsoft Entra ID とロールによる権限管理を優先してください。
想定される影響
- 管理者認証情報が漏えいすると、イメージの読み取りや変更に悪用されるおそれがあります。
- アカウント共有は、個別の操作追跡や権限の取り消しを難しくします。
対処方法
- 代替認証と必要なロールを先に設定し、
admin_enabled = falseで管理者アカウントを無効にしてください。ユーザーやワークロードごとに、対応する Microsoft Entra ID またはマネージド ID 認証を使用してください。 - 管理者アカウントが必要な連携では使用範囲を限定し、パスワードを保護・ローテーションしてください。漏えいした認証情報は別途再発行し、依存する処理の接続をテストしてください。
例
リソースグループの参照を合わせ、現在の AzureRM の georeplications ブロックを使用しています。レジストリ名は使用可能な名前に置き換えてください。
変更前
hcl
resource "azurerm_resource_group" "example" {
name = "resourceGroup1"
location = "West US"
}
resource "azurerm_container_registry" "example" {
name = "containerRegistry1"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku = "Premium"
admin_enabled = true
georeplications {
location = "East US"
}
georeplications {
location = "West Europe"
}
}
変更後
hcl
resource "azurerm_resource_group" "example" {
name = "resourceGroup1"
location = "West US"
}
resource "azurerm_container_registry" "example" {
name = "containerRegistry1"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku = "Premium"
admin_enabled = false
georeplications {
location = "East US"
}
georeplications {
location = "West Europe"
}
}
補足:
- 変更前: レジストリの管理者アカウントを有効にします。
- 変更後: 管理者アカウントを無効にします。代替の主体やロールが自動作成される設定ではありません。