プロジェクト全体の設定の構成

コンソールの「プロジェクト設定」ページを使用して、特定のプロジェクトに適用される設定を確認および構成できます。 プロジェクト全体の統合を操作する方法について説明します。

プロジェクト全体の統合とは何か、なぜそれらを使用するのか?

プロジェクトのすべてのユーザーが特定のアクションを実行できるようにプロジェクト全体の設定を構成する場合は、コンソールの「統合」ページを使用します。 十分な権限があれば、サービスバインディング操作の設定や、1つのページから IBM Cloud Container Registry、画像へのアクセスを設定することができます。 これらのアクションを実行するための十分な権限がない場合は、これらのページを使用して、必要な権限を理解することができます。

「統合 (Integrations)」ページでプロジェクト全体の設定を行うと、 Code Engine によって必要な資格情報が自動的にセットアップされ、 Code Engine がサービス・バインディング操作を実行したり、 Container Registry サービス・バインディング操作を構成するとき、または Container Registryへのアクセスを構成するときに、 Code Engine の動作に関する詳細を表示できます。 これらの詳細には、サービス ID とそのアクセス・ポリシー、API キー、およびシークレットに関する情報が含まれます。

プロジェクト全体のサービスバインディング操作の設定

コンソールの「統合」ページを使用して、サービス・バインディング操作の設定を構成します。これにより、特定のプロジェクトのすべてのユーザーが、自分の個人ユーザー ID に必要なすべての特権を割り当てることなく、バインディングを作成および削除できます。

Code Engineでは、サービス・バインディング操作 (サービス・バインディングの作成と削除を含む) は、ログインしているユーザーの ID では実行されません。 代わりに、 Code Engine は、サービス・バインディング操作専用に使用されるサービス ID を自動的に作成します。 十分な許可があれば、「統合」ページからサービス・バインディング操作用にこのサービス ID を自動的にセットアップするようにサービス・バインディング操作を構成できます。 あるいは、サービス・バインディング操作用に管理する独自のカスタム・サービス ID を使用することもできます。

サービス・バインディング操作を構成するには、どのようなアクセス許可が必要ですか?

サービス・バインディング操作を正常に構成するには、この「統合」ページのユーザーに、ユーザー・アカウントに割り当てられた以下の Cloud Identity and Access Management (IAM) アクセス・ポリシーが必要です。 これらのアクションを実行するための十分な権限がない場合は、このページを使用して、必要な権限を理解することができます。

  • サービスすべてのアイデンティティおよびアクセス対応サービス
    • リソース: リソースグループ、地域、アクセス管理タグから選択。
    • リソースグループへのアクセス: Viewer
    • 役割とアクション: Administrator プラットフォーム・アクセス (サービス・アクセスは必要ありません)
  • サービス: Code Engine
    • リソース: この Code Engine プロジェクトのリソース・グループ
    • リソースグループへのアクセス: Viewer
    • 役割とアクション: Writer サービス・アクセスと Operator プラットフォーム・アクセス

Code Engine がサービス・バインディング操作のサービス ID を自動的に生成するようにするために、 Code Engine は、 Code Engine プロジェクトのリソース・グループ内のすべてのサービスについて、 Operator プラットフォーム・アクセス権限および Manager サービス・アクセス権限を持つサービス ID を検査し、自動的にセットアップします。 Code Engine は、このサービス ID を使用して、サービス・バインディングを持つ IBM Cloud サービスにアクセスします。

独自のカスタム・サービス ID を使用する場合、そのカスタム・サービス ID は、 Code Engine アプリまたはジョブにバインドするすべての IBM Cloud サービスまたはサービス・インスタンスに対して、 Operator プラットフォーム・アクセスおよび Manager サービス・アクセスを提供する必要があります。

このサービス ID が存在しない場合、 Code Engine は、サービス・バインディングが作成されるたびにこのサービス ID を自動的に作成しようとします。 サービス・バインディング操作のためにこのサービス ID が正常に作成されるかどうかは、 Code Engine にログインしているユーザーに十分な権限があるかどうかによって異なります。 オペレーター・シークレットが正常に作成されない場合、サービス・バインディングを作成しようとしても失敗します。 サービス・バインディング操作の Code Engine アクセス要件について詳しくは、 サービス・バインディングのアクセス権限の構成 を参照してください。

サービス ID とオペレーター・シークレットの関係はどのようなものですか?

サービス・バインディング操作を構成すると、 Code Engine が実行する内容 (サービス ID、API キー、および秘密鍵に関する情報を含む) の詳細を表示できます。

Code Engineで、 サービス・バインディング は、アプリまたはジョブと別の IBM Cloud サービスとの間の関係です。

Code Engine は、ログインしているユーザーの ID を使用する代わりに、 サービス ID を使用してユーザーの代わりにバインディング操作を実行します。 サービス ID は、特定の IBM Cloud サービス・インスタンスの資格情報を作成します。 これらのサービス資格情報は、サービス・インスタンスと対話するために、バインドされた Code Engine アプリおよびジョブによって使用されます。 サービス ID の API キー は、オペレーター・シークレットに保管されます。 アクセス・ポリシーは、サービス ID に付与される許可です。

オペレーター・シークレット または ibmcloud-operator-secret は、 Code Engine によって生成および管理されるシークレットで、サービス ID と自動生成された API キーが含まれます。 このシークレットは、サービス・バインディング操作で使用され、現行ユーザーのアカウントとしては機能しません。 オペレーター・シークレットが存在しない場合は、以下のいずれかのシナリオに該当するときに自動的に作成されます。

  • プロジェクトの次のサービス・バインディングが (コンソールまたは CLI から) 作成されるとき。
  • 「統合」ページからサービス・バインディング操作を構成する場合。
  • project update コマンドを実行するとき。

サービス・バインディング操作が構成されると、 サービス ID および オペレーター・シークレット が特定のプロジェクトに適用されます。

サービス・バインディング操作を構成し、 Code Engine によってサービス ID を自動的に生成 するか、 独自のカスタム・サービス ID を使用してサービス・バインディングを構成 することができます。

Code Engine 自動生成サービス ID を使用したサービス・バインディング操作の構成

プロジェクト内のすべてのユーザーが、 Code Engine コンソールから、選択したリソース グループの IBM Cloud サービスへのサービス バインディングを作成および管理できるように、サービス バインディング操作を構成できます。

  1. Integrations(統合)ページにアクセスしてください。
    1. Code Engine コンソールの「プロジェクト」ページからプロジェクトを選択します。
    2. 「プロジェクト設定」 > 「統合」 をクリックします。
  2. 「サービス・バインディング」 タイルで 「構成」 をクリックして、このプロジェクトのすべてのユーザーのサービス・バインディング操作を構成します。
  3. サービスバインディング操作の設定]ページで、サービスバインディング操作に使用するリソースグループを指定します。 Code Engineプロジェクトを含む'IBM Cloud®リソースグループを選択し、'Code Engineに必要なクレデンシャルを作成させることができます。 または、サービスID認証情報を使用する カスタムサービスID を使用することもできます。
  4. (オプション) サービス・バインディング操作を構成するときに Code Engine が自動的に作成する内容に関する情報を表示するには、 「 Code Engine が実行する内容」 セクションを展開します。 このサービス ID に割り当てられているサービス ID とアクセス・ポリシー、 Code Engine がサービス ID 用に自動的に生成する API キー、およびサービス・バインディングに使用されるオペレーター・シークレットに関する情報を表示します。
  5. **「構成」**をクリックします。
  6. (オプション) 「詳細の表示」 をクリックして、サービス・バインディング操作構成の詳細を表示します。 このページから、サービス・バインディング操作に使用されるサービス ID、API キー、およびオペレーター・シークレットに関する情報を表示できます。

これで、指定されたリソース・グループのサービス・バインディング操作が構成されました。この Code Engine プロジェクトに対する書き込み権限または管理者権限を持つすべてのユーザーが、サービス・バインディングを作成および削除できます。 IBM Cloud サービスを Code Engineと統合するためのサービス・バインディングの処理 を参照してください。

Code Engine 自動生成(および管理)されたサービスIDを使用してサービスバインディング操作を構成する場合、サービスバインディング操作の構成の一部として作成されるサービスIDまたはAPIキーを手動で更新または削除しないでください。 また、サービス ID に関連付けられている API キーをローテートしないでください。 代わりに、コンソールの 「プロジェクト設定」 > 「統合」 ページに移動し、プロジェクトのサービス・バインディング操作の構成を削除してから、サービス・バインディング操作を再度構成してください。 このアクションにより、古いサービス ID と API キーが削除され、サービス・バインディング操作用の新しいサービス ID と API キーが作成されます。

カスタム・サービス ID を使用したサービス・バインディング操作の構成

プロジェクト内のすべてのユーザーが、 Code Engine コンソールから IBM Cloud サービスへのカスタム サービス ID を持つサービス バインディングを作成および管理できるように、サービス バインディング操作を構成できます。

カスタム・サービス ID を使用する場合、サービス ID に割り当てられた IAM ポリシーによってリソース・グループが決定されます。

  1. Integrations(統合)ページにアクセスしてください。
    1. Code Engine コンソールの「プロジェクト」ページからプロジェクトを選択します。
    2. 「プロジェクト設定」 > 「統合」 をクリックします。
  2. 「サービス・バインディング」 タイルで 「構成」 をクリックして、カスタム・サービス ID を持つこのプロジェクトのすべてのユーザーのサービス・バインディング操作を構成します。
  3. サービスバインディング操作の設定]ページで、[カスタムサービスIDを使用する]を選択します。
  4. 使用するカスタム・サービス ID を選択します。
  5. (オプション) サービス・バインディング操作を構成するときに Code Engine が自動的に作成する内容に関する情報を表示するには、 「 Code Engine が実行する内容」 セクションを展開します。 サービス・バインディング操作に使用されるサービス ID とオペレーター・シークレットに対して Code Engine が自動的に生成する API キーに関する情報を表示します。
  6. **「構成」**をクリックします。 サービス・バインディング操作が構成されると、サービス・バインディング操作のカスタム・サービス ID が表示されます。
  7. (オプション) 「詳細の表示」 をクリックして、サービス・バインディング操作構成の詳細を表示します。 このページから、サービス・バインディング操作に使用されるサービス ID、API キー、およびオペレーター・シークレットに関する情報を表示できます。

必要な IAM 権限を持つカスタム・サービス ID を使用してサービス・バインディング操作を構成したので、この Code Engine プロジェクトに対する書き込み権限または管理者権限を持つすべてのユーザーが、サービス・バインディングを作成および削除できます。 IBM Cloud サービスを Code Engineと統合するためのサービス・バインディングの処理 を参照してください。

設定されたサービスバインディング操作の削除

サービス・バインディング操作が構成されている場合は、「統合」ページを使用して、プロジェクトのすべてのユーザーがサービス・バインディングを作成または削除できないようにすることもできます。 このアクションは、サービス・バインディング操作のオペレーター・シークレットを削除します。

  1. Integrations(統合)ページにアクセスしてください。
    1. Code Engine コンソールの「プロジェクト」ページからプロジェクトを選択します。
    2. 「プロジェクト設定」 > 「統合」 をクリックします。
  2. サービス・バインディング操作の状況が 「構成済み」 である場合は、 「構成の削除」 をクリックして、オペレーター秘密を削除します。 オペレーター・シークレットを削除するかどうかの確認を求められます。

サービス・バインディング操作が削除されたことを示すメッセージを受け取ると、サービス・バインディング操作の状況は 「未構成」 になります。

「統合」ページから構成済みのサービス・バインディング操作を削除した場合、既存のサービス・バインディングは残ります。 つまり、既存のサービス・バインディングの場合、アプリケーションの実行時、新規アプリケーション・リビジョンの実行時、またはジョブの実行時に、バインドされたアプリケーションまたはジョブは既存のサービス・バインディングとその資格情報を使用します。 ただし、十分な許可がないと新規サービス・バインディングを作成できません。また、既存のバインディングを削除することもできません。

オペレーター・シークレットが存在しない場合は、以下のいずれかのシナリオに該当するときに自動的に作成されます。

  • プロジェクトの次のサービス・バインディングが (コンソールまたは CLI から) 作成されるとき。
  • 「統合」ページからサービス・バインディング操作を構成する場合。
  • project update コマンドを実行するとき。

Container Registry へのプロジェクト全体のアクセスの構成

コンソールの「Integrations」ページを使用して、 IBM Cloud Container Registry のイメージへのレジストリアクセスを設定・管理する設定を行い、特定の Code Engine プロジェクトのすべてのユーザーが、レジストリシークレットを手動で作成することなく、 Container Registry のイメージに保存・アクセスできるようにします。

プロジェクト統合を使用して Code Engine Container Registryへの管理対象アクセスを制御する場合、 Code Engine はユーザーの ID を使用しません。 代わりに、 Code Engine は、 IBM Cloud Container Registry内のイメージへのアクセス専用に使用されるレジストリー・アクセスを自動的に作成します。 十分な権限があれば、このデフォルトのレジストリー・アクセス権限をロケーション (地域) ごとに構成できます。 Container Registry リージョンについて詳しくは、 IBM Cloud Container Registry リージョン を参照してください。

IBM Cloud Container Registryへの Code Engine 管理対象アクセスに必要なアクセス権

この「統合」ページのユーザーは、プロジェクトのすべてのユーザーのレジストリー・アクセス権限を正常に構成するために、ユーザー・アカウントに割り当てられた以下の IBM Cloud® Identity and Access Management (IAM) アクセス・ポリシーを持っている必要があります。 これらのアクションを実行するための十分な権限がない場合は、このページを使用して、必要な権限と実行可能なアクションを理解することができます。

  • サービス: Container Registry
    • リソース: リソースグループ、地域、アクセス管理タグから選択。
    • リソースグループへのアクセス: Viewer
    • 役割とアクション: Administrator プラットフォーム・アクセスと ReaderWriter、および Manager サービス・アクセス
  • サービス: Code Engine
    • リソース: この Code Engine プロジェクトのリソース・グループ
    • リソースグループへのアクセス: Viewer
    • 役割とアクション: Operator プラットフォーム・アクセスと Writer サービス・アクセス

Code Engine の特定の場所にある Container Registry 内のイメージにアクセスするためのサービス ID を自動的に生成するために、 Code Engine は、このサービス ID と共にサービス ID をセットアップします。 Administrator さらに、 Code Engine は、指定された場所 (地域) にスコープ設定されている IBM Cloud Container Registry サービスの Manager 役割を付与します。 これらのロールとパーミッションは、 Code Engine がこのサービス ID を使用して、 Code Engine プロジェクトのユーザーに代わって Container Registry にアクセスできるようにするために必要です。

Code Engine がこのサービスIDに Administrator プラットフォームアクセスおよび Manager サービスアクセスを IBM Cloud Container Registry に設定する場合、アクセスはこのサービスIDのみにスコープされる。

コンテナー・レジストリー内のイメージにアクセスするための Code Engine 要件について詳しくは、 コンテナー・レジストリーへのアクセス を参照してください。

サービス ID とレジストリー・シークレットの関係はどのようなものですか?

特定のロケーションに対してデフォルトのレジストリー・アクセス権限を構成すると、サービス ID とそのアクセス・ポリシー、API キー、およびレジストリー・シークレットに関する情報など、 Code Engine の機能に関する詳細を表示できます。

Code Engine は サービス ID を使用して、ログインしているユーザーの ID を使用する代わりに、ユーザーの代わりに Container Registryへのレジストリー・アクセスを有効にします。

レジストリー・シークレット は、自動生成された API キーを含む、 Code Engine によって生成および管理されるレジストリー・シークレットです。 このシークレットは、 Container Registry内のイメージにアクセスするために使用されます。

ロケーション (リージョン) に対してデフォルトのレジストリー・アクセスが構成されている場合、 サービス ID および レジストリー・シークレット が特定のプロジェクトに適用されます。

Container Registry アクセスの構成

レ ジ ス ト リ ア ク セ ス を設定す る こ と で、 プ ロ ジ ェ ク ト 内のすべてのユーザーが Code Engine コンソールから IBM Cloud Container Registry 内のイ メ ージにア ク セ ス し、 作業で き る よ う にす る こ と がで き ます。

  1. Integrations(統合)ページにアクセスしてください。
    1. Code Engine コンソールの「プロジェクト」ページからプロジェクトを選択します。
    2. 「プロジェクト設定」 > 「統合」 をクリックします。
  2. Container Registry タイルで、レジストリー・アクセスを構成するロケーションの行をクリックします。
  3. デフォルト・レジストリ・アクセスの設定ページでは、オプションで Code Engineがあなたのためにすることセクションを展開し、特定の場所へのデフォルト・レジストリ・アクセスを設定したときにCode Engineがあなたのために自動的に作成するものについての情報を表示することができます。 サービスIDと、このサービスIDに割り当てられているアクセス・ポリシー、Code EngineがサービスIDに対して自動的に生成するAPIキー、およびこのレジストリ・アクセスに使用されるレジストリ・シークレットに関する情報を表示します。
  4. 「構成」 をクリックして、特定のロケーションのデフォルトのレジストリー・アクセス権限を構成します。
  5. この表から、ロケーション別の構成状況と、自動生成されたレジストリー・シークレットを表示できます。
  6. (オプション) 詳しくは、 「アクション」 アイコン 「アクション」 > 「詳細の表示」 をクリックしてください。 サービス ID、このサービス ID に割り当てられているアクセス・ポリシー、 Code Engine がサービス ID 用に自動的に生成する API キー、および Container Registryにアクセスするために構成されているレジストリー・シークレットに関する情報を表示できます。

これで、 Container Registryに対する特定のロケーションのデフォルト・レジストリー・アクセスが構成されたので、この Code Engine プロジェクトに対するライターまたはマネージャーのアクセス権限を持つすべてのユーザーが、このレジストリー・シークレットを使用して、イメージにアクセスすることができます。{{{{{{site.key.word.build

統合 ページからプロジェクト全体の {{site.data.keyword.registryshort_notm}} アクセスを構成すると、 Code Engine によって サービス ID が自動的に生成され、 Container Registryへのレジストリー・アクセスが有効になります。

Code Engine、自動生成(および管理)されたレジストリ秘密を使用している場合は、レジストリ秘密を手動で削除しないでください。 また、設定された Container Registry リージョンのサービスIDや関連するAPIキーを手動で削除しないでください。 このサービス ID に関連付けられている API キーをローテートしないでください。 代わりに、コンソールの Project settings > Integrations ページで、プロジェクトに必要な Container Registry アクセスの設定を削除し、レジストリ・アクセスを再度設定します。 このアクションにより、古いサービス ID と API キーが削除され、目的のリージョンにあるプロジェクトのレジストリー・アクセス用の新しいサービス ID と API キーが作成されます。

Container Registry への Code Engine 管理対象アクセスの削除

特定の地域の Code Engine 管理レジストリのシークレットを削除すると、このプロジェクト全体のレジストリアクセスが削除されます。 関連付けられたサービス ID、API キー、およびレジストリー・シークレットが削除されます。 手動で作成したレジストリ・アクセス・シークレットを引き続き使用することも、プロジェクト全体の Container Registry アクセスを再度設定することもできます。

  1. Integrations(統合)ページにアクセスしてください。
    1. Code Engine コンソールの「プロジェクト」ページからプロジェクトを選択します。
    2. 「プロジェクト設定」 > 「統合」 をクリックします。
  2. レジストリー・アクセス権限を削除するロケーション (地域) の行で、 「アクション」 アイコン 「アクション」 > 「構成の削除」 をクリックします。 レジストリアクセスを削除するかどうかを確認するメッセージが表示されます。

レジストリー・アクセスが削除されたことを示すメッセージを受け取った場合、特定の Container Registry ロケーションのレジストリー・アクセスの状況は 未構成です。