はじめに
こちらの記事は下記Advent Calendar 2024で紹介しているIBM Cloud権限設定における Container Registry
になります。
共通権限は割愛
こちらの記事に記載しているように、プラットフォーム・アクセス、サービス・アクセスの権限でそれぞれどのようなものが共通して設定されているかを紹介させて頂きました。
こちらの記事では共通部分で出現する権限を除いた各サービス毎の権限設定を紹介します。
Container Registryで指定可能な権限のアクセス範囲
- リソース・グループ
- Resource Type
- Resource Name
- Region
- Geography
リソース・グループの指定
これは指定されたリソース・グループに所属するContainer Registryのみに対してアクセス権限を適用します。異なるリソース・グループのContainer Registryに対しては別途権限を設定する必要があります。
Resource Type, Resource Nameの指定
これはセットになっており、Resource Typeに namespace
を指定して、Resource Nameに許可したいNamespace名を指定することで、特定のNamespaceへのアクセス権限だけ許可することが可能です。
Regionの指定
これは jp-tok
といったContainer Registryの存在するRegionを指定することで、その指定されたRegionのみの権限を与えることが可能になります。
Geographyの指定
これは、Container Registryの作成ロケーションを特定のMZRを選択せずに グローバル
にした場合、そのContainer Registryへのアクセスを権限範囲としたい場合に global
を指定する必要があります。
Container Registryに設定された権限
プラットフォーム・アクセスの権限
※Admin : Administrator, KM : Key Manager, SCR : Service Configuration Reader
権限 | Viewer | Operator | Editor | Admin | KM | SCR |
---|---|---|---|---|---|---|
container-registry.config.read | 〇 | |||||
container-registry.image.list | 〇 | |||||
container-registry.image.vulnerabilities | 〇 |
プラットフォーム・アクセスの権限指定では基本的にサービス固有の権限は与えられておらず、Service Configuration Readerの権限がある場合のみイメージ等のリスト表示等が可能になります。
利用可能な機能を制限できるのはサービス・アクセス側の役割になります。
サービス・アクセスの権限
権限 | Reader | Writer | Manager |
---|---|---|---|
container-registry.auth.get | 〇 | 〇 | 〇 |
container-registry.auth.set | 〇 | ||
container-registry.exemption.list | 〇 | 〇 | |
container-registry.exemption.manager | 〇 | ||
container-registry.image.pull | 〇 | 〇 | 〇 |
container-registry.image.inspect | 〇 | 〇 | |
container-registry.image.list | 〇 | 〇 | |
container-registry.image.vulnerabilities | 〇 | 〇 | |
container-registry.image.push | 〇 | 〇 | |
container-registry.image.delete | 〇 | 〇 | |
container-registry.namespace.list | 〇 | 〇 | |
container-registry.namespace.create | 〇 | ||
container-registry.namespace.delete | 〇 | ||
container-registry.plan.get | 〇 | ||
container-registry.plan.set | 〇 | ||
container-registry.quota.get | 〇 | 〇 | 〇 |
container-registry.quota.set | 〇 | ||
container-registry.retention.analyze | 〇 | 〇 | |
container-registry.retention.get | 〇 | 〇 | |
container-registry.retention.list | 〇 | 〇 | |
container-registry.retention.set | 〇 | 〇 | |
container-registry.settings.get | 〇 | 〇 | 〇 |
container-registry.settings.set | 〇 |
Container Registryのサービス・アクセスの権限で注意が必要なのは Writer
の権限は Reader
の権限を内包していない、という点です。
Writer
の権限はImageのPull権限はありますが、List表示する権限はないので、そもそもどんなイメージがあるか確認することが出来ません。従ってManagerといった管理者権限を与えずにImageの読書を限定で権限を与える場合は Reader
とWriter
の権限の両方を付与する必要があります。
さいごに
Container Registryは権限は決して多くないですが、これまでに紹介した権限と比べると、サービス・アクセスの役割でWriterがReaderを包含していない、というのは設定における落とし穴に思います。必要最低限の権限設定を目指す場合はぜひ気を付けて頂きたいポイントになります。