Azure コンテナーレジストリのリソースロックの確認

レジストリの誤削除や管理設定の変更を防ぐため、必要なリソースロックを適用します。

説明

Azure のリソースロックは、レジストリに対する管理操作を制限します。CanNotDelete は削除を、ReadOnly は削除と変更を制限します。上位のリソースグループやサブスクリプションのロックも継承されます。

レジストリのリソースロックは、イメージの作成、上書き、削除を防ぎません。イメージは別途、イメージの属性とアクセス権限で保護してください。

想定される影響

必要なロックがないと、管理権限を持つ利用者の誤操作でレジストリが削除されたり設定が変更されたりして、イメージの取得やデプロイが中断する可能性があります。

対処方法

レジストリと上位スコープのロックを確認し、運用に必要なレベルを選んでください。Ansible では can_not_delete が削除防止、read_only が読み取り専用のロックです。グループ全体の読み取り専用ロックは、ほかのリソースの更新も制限するため、適用範囲を確認してください。

例

既存の myResourceGroup にレジストリを作成し、グループ単位のロックを追加する例です。レジストリ名はグローバルに一意である必要があります。

変更前

yaml
- name: Create an azure container registry
  azure_rm_containerregistry:
    name: myRegistry
    location: eastus
    resource_group: myResourceGroup
    admin_user_enabled: true
    sku: Premium

レジストリを作成する設定に、リソースロックは含まれていません。

変更後

yaml
- name: Create an azure container registry
  azure_rm_containerregistry:
    name: myRegistry
    location: eastus
    resource_group: myResourceGroup
    admin_user_enabled: true
    sku: Premium

- name: Create a lock for a resource group
  azure_rm_lock:
    resource_group: myResourceGroup
    name: myLock
    level: read_only

リソースグループに読み取り専用のロックを追加します。レジストリとグループ内のほかのリソースの管理操作が制限され、イメージの操作は別の権限で管理します。

参考資料