1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM CloudAdvent Calendar 2024

Day 3

Code Engineに定義された権限

Last updated at Posted at 2024-12-11

はじめに

こちらの記事は下記Advent Calendar 2024で紹介しているIBM Cloud権限設定における Code Engine になります。

共通権限は割愛

こちらの記事に記載しているように、プラットフォーム・アクセス、サービス・アクセスの権限でそれぞれどのようなものが共通して設定されているかを紹介させて頂きました。

こちらの記事では共通部分で出現する権限を除いた各サービス毎の権限設定を紹介します。

Code Engineで指定可能な権限のアクセス範囲

image.png

  • リソース・グループ
  • Location
  • Project

リソース・グループの指定

これは指定されたリソース・グループに所属するCode Engineのみに対してアクセス権限を適用します。異なるリソース・グループのCode Engineに対しては別途権限を設定する必要があります。

Locationの指定

これは jp-tok, jp-osa のように、Code Engineが作成されたロケーションを指定して許可を与えることが可能です。勝手に海外のDCに作成しないようにするといった対策が必要な場合は利用しても良いですね。

Projectの指定

これは既に作成されたCode EngineのProjectが存在する場合、そのProjectを指定して権限を与えることが可能です。
開発チームには既存のProject上の操作だけ許可して、新規Projectを作らないように、といった権限の振り分けが必要な場合に利用できます。

Code Engineに設定された権限

プラットフォーム・アクセスの権限

※Admin : Administrator, KM : Key Manager, SCR : Service Configuration Reader

権限 Viewer Operator Editor Admin KM SCR
codeengine.config.read
codeengine.dashboard.view

プラットフォーム・アクセスとして設定されているCode Engineの権限はダッシュボードの参照といった権限のみになります。Code Engineのどの機能を利用できるかはサービス・アクセス側で設定して、という感じですね。

サービス・アクセスの権限

Projectに対する権限

権限 Reader Writer Manager Compute Environment Administrator
codeengine.computeenvironment.projects.create
codeengine.computeenvironment.projects.delete
codeengine.tenant.read
codeengine.tenant.update

プロジェクトを作成するには、WriterかManagerの権限が必要になります。
ただ、注意としてプラットフォーム・アクセスの共通権限部分でインスタンスを作成する権限が結局必要になるので、プラットフォーム・アクセスのEditor、Administratorといった権限が必要になります。
また、Code Engineはリソース・グループを明示的に指定して作成するサービスのため、リソース・グループのみの権限で少なくとも対象のリソース・グループに対するReader権限が無いとインスタンスの作成で権限不足になります。

Project内のアプリやJobに対する権限

権限 Reader Writer Manager Compute Environment Administrator
codeengine.tenant.entities.read
codeengine.tenant.entities.create
codeengine.tenant.entities.update
codeengine.tenant.entities.delete
codeengine.computeenvironment.create
codeengine.computeenvironment.delete

プロジェクト内のアプリケーションやSecretといった構成情報のリスト表示はReader権限があれば良いですが、更新には基本的にWriter以上の権限が必要です。ただ、ProjectをIBM Cloudの他のリソースと接続する設定(codeengine.tenant.update)を行うには、Administratorの権限が必要な点に注意してください。

残念なことに執筆時点で codeengine.computeenvironment.create/deleteがいったい何をするための権限なのかよくわかりませんでした。
この権限だけ付与してもプロジェクト上にアプリを作成したりすることもできないので、どこで利用するんだろう状態です。

さいごに

Code Engineとして個別に設定されている権限は少なかったですね。
アプリやジョブといったコンテナ環境を立ち上げるのであれば基本的にサービスアクセスに対してWriter以上の権限を付与する必要がありそうですね。
他のリソースと接続はわざわざ宣言しなくてもそのサービスにアクセスするための認証情報を作成すれば、IBM Cloud内ネットワークでそのサービスのエンドポイントにアクセスできるはずなので、サービス・アクセスのManager権限の付与するタイミングはあまり多くは無さそうに思いました。

Compute Environment Administratorとは何者なのか…またわかったら記事を更新したいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?