プロジェクトワークフロー

HERE platform では、プロジェクトを作成および管理できます。 プロジェクトの管理者は、他のユーザー、アプリ、およびグループにプロジェクトへのアクセス権を付与できます。 プロジェクトのアクセス権を持つユーザーは、カタログ、スキーマ、テンプレート、パイプラインなどのプロジェクトリソースを作成および管理できます。 プロジェクトポリシーを使用すると、プロジェクトリソースをより詳細に制御できます。 任意のプロジェクトリソースに関連付けられている計算、ストレージ、および転送の使用状況は、プロジェクト ID に基づいて自動的に追跡されます。

OLP CLI には、次の目的で使用できるツールがあり

次の手順では、リソースやそれらのリソースへのアクセス権など、プロジェクトを管理する方法を示します。

  1. 準備 :
  2. プロジェクトカタログを作成して一覧表示します。
  3. プロジェクトパイプラインを作成して一覧表示します。
  4. プロジェクトにアプリケーションを追加し、そのアプリケーションを一覧表示します。
  5. プロジェクトポリシーを使用して、プロジェクトリソースへの詳細なアクセス権を設定します。
  6. リソースを他のプロジェクトにリンクできるようにします。
  7. プロジェクトリソースをリンク :
  8. プロジェクトリソースのリンクを解除 :
  9. リソースを他のプロジェクトにリンクできないようにします。
  10. プロジェクトリソースのクリーンアップ :

詳細について は、「プロジェクトコマンド」、「カタログコマンド」、および「パイプライン コマンド」を参照してください。

注 :

プロジェクト外で作成されたリソースをプロジェクトに移行する方法の詳細について は、「移行ガイド」を参照してください。

プロジェクトを作成

まず、任意のプロジェクトリソースを管理するには、プロジェクトを作成する必要があります。 このためには olp project create 、次のコマンドを使用します。

例 :

olp project create <project-id> <project-name>

<project-id> および <project-name> プレースホルダーには、一意の値を使用します。 <project-id> ハイフンを含む 4 ~ 16 文字の小文字の英数字を使用する必要 <project-id> があります。ハイフンで開始または終了することはできません。

コマンドを使用すると、プロジェクトが作成され、プロジェクトの HERE リソースネーム が表示されます。 この HERE リソースネーム はワークフローの後半で必要になるので、メモしておいてください。


Project hrn:here:authorization::org:project/<project-id> has been created

プロジェクトにカタログを作成します

次の手順に従って、プロジェクトに新しいカタログを作成します。

<catalog-id> プレースホルダーには一意の値を使用します。

olp catalog create コマンドを使用して、カタログ ID 、名前、概要、説明、およびプロジェクト範囲を指定します。

例 :

Linux
olp catalog create <catalog-id> scoped-catalog-name \
    --summary "A new scoped catalog" \
    --description "A new scoped catalog" \
    --scope hrn:here:authorization::org:project/<project-id>
olp catalog create <catalog-id> scoped-catalog-name ^
    --summary "A new scoped catalog" ^
    --description "A new scoped catalog" ^
    --scope hrn:here:authorization::org:project/<project-id>

コマンドは、指定したプロジェクト範囲でカタログを作成し、カタログ HERE リソースネーム を表示します。 この HERE リソースネーム はワークフローの後半で必要になるので、メモしておいてください。

コマンドを実行すると、次の結果が表示されます。


Catalog hrn:here:data::org:<catalog-id> has been created

プロジェクトカタログを一覧表示します

カタログがプロジェクトの範囲内に作成されたことを確認するには olp catalog list 、次のコマンドを使用します。

例 :


olp catalog list --scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


hrn:here:data::org:<catalog-id>

Use olp catalog show <catalog HRN> to display more information about a catalog

プロジェクトにパイプライン を作成します

プロジェクトに新しいパイプラインを作成するには、次の手順に従います。 <pipeline-name> は一意である必要があります。

olp pipeline create コマンドを使用して、パイプライン ID 、名前、説明、およびプロジェクト範囲を指定します。

例 :

Linux
olp pipeline create <pipeline-name> \
   --description "This pipeline analyzes data" \
   --scope hrn:here:authorization::org:project/<project-id>
olp pipeline create <pipeline-name> ^
   --description "This pipeline analyzes data" ^
   --scope hrn:here:authorization::org:project/<project-id>

このコマンド <pipeline UUID>は、指定したプロジェクト範囲でパイプラインを作成し、一意のプロジェクト範囲を表示します。 この UUID はワークフローの後半でパイプラインを削除するために必要になるので、メモしておいてください。

コマンドを実行すると、次の結果が表示されます。


Pipeline has been created
ID: <pipeline UUID>

プロジェクトパイプライン を一覧表示します

パイプラインがプロジェクトの範囲内に作成されたことを確認するには olp pipeline list 、次のコマンドを使用します。

例 :


olp pipeline list --scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


name                                    ID                                      description
<pipeline-name>                         <pipeline UUID>                         This pipeline analyzes data

Use olp pipeline show <pipeline ID> to display more information about a pipeline

--scope <project HRN> このパラメータは、すべて olp pipeline template のおよび olp pipeline version コマンドにも適用できます。 詳細について は、「パイプライン テンプレート コマンド」および「パイプライン バージョンコマンド」を参照してください。

パイプライン ワークフローの詳細について は、「パイプライン ワークフロー」を参照してください。

プロジェクトにテンプレート を作成します

プロジェクトに新しいパイプライン テンプレートを作成するには、次の手順に従います。

olp pipeline template create コマンドを使用して、テンプレート名、ランタイム環境(ストリームまたはバッチ)、パッケージ、メインクラス、パイプライン テンプレートが属するプロジェクト範囲、およびパイプラインバージョンの設定で想定される入力カタログ ID を指定します。

例 :

Linux
olp pipeline template create <name> <cluster type> <JAR file> \
   <class name> 
    --scope <project HRN> 
    --input-catalog-ids catalogExample1 [command options]
olp pipeline template create <name> <cluster type> <JAR file> \
   <class name> 
    --scope <project HRN> 
    --input-catalog-ids catalogExample1 [command options]

このコマンド <template UUID>は、指定したプロジェクト範囲でパイプライン テンプレートを作成し、一意のプロジェクト範囲を表示します。 この UUID はワークフローの後半でパイプライン テンプレートを削除するために必要になるので、メモしておいてください。

コマンドを実行すると、次の結果が表示されます。


Pipeline template has been created
ID: <template UUID>

プロジェクトテンプレート を一覧表示します

パイプラインがプロジェクトの範囲内に作成されたことを確認するには olp pipeline template list 、次のコマンドを使用します。

例 :


olp pipeline template list 
    --scope hrn:here:authorization::org:project/<template-id>

コマンドを実行すると、次の結果が表示されます。



name                                    ID                                      description
<template-name>                         <template UUID>                         

Use olp pipeline template show <template ID> to display more information about a pipeline template 

アプリ をプロジェクトに追加します

プロジェクトをアプリと共有するには、次の手順に従います。

olp project access grant コマンドを使用して <App ID>、、名前、説明、およびプロジェクトの範囲を指定します。

例 :

Linux
olp project access grant hrn:here:authorization::org:project/<project-id> \
   --app <App ID>
olp project access grant hrn:here:authorization::org:project/<project-id> ^
   --app <App ID>

olp credentials list を取得 <App ID>するには、コマンドを使用します。 新しいアプリ を作成し、そのアプリ ID を取得する方法の詳細について は、「資格情報 setup コマンドおよび資格情報 コマンド」を参照してください。

コマンドを実行すると、次の結果が表示されます。


App <App ID> has been granted access to the project hrn:here:authorization::org:project/<project-id>

OLP CLI は、アプリ、ユーザー、グループへのプロジェクトアクセス権の付与だけでなく、プロジェクト管理者としてのアプリまたはユーザーの追加もサポートしています。 詳細について は、「プロジェクトアクセスコマンド」および「プロジェクト管理コマンド」を参照してください。

プロジェクトアプリ を一覧表示します

アプリがプロジェクトに追加されたことを確認するには olp project access list 、次のコマンドを使用します。

例 :


olp project access list hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。



type           HRN                                                              ID                       name
app            hrn:here:account::org:app/<App ID>                               <App ID>                 My App

Use olp project access show <project HRN> to display more information about the access details of an identity in a project

プラットフォーム ポリシーを一覧表示します

HERE platform には、プロジェクトへのアクセス権を付与されたエンティティ(ユーザー、グループ、またはアプリ)に添付できる事前定義済みのポリシーがあります。 これらのポリシーでは、カタログなどのリソースタイプおよび関連付けられている権限に基づいて、プロジェクト内のリソースへのアクセスが制限されます。 カスタムポリシーを作成することもできます ( 詳細については、以下を参照してください ) 。

使用可能なプラットフォームポリシーのリストを取得するには 、次の--type here-platformパラメータを指定してolp project policy listコマンドを使用します。

例 :


olp project policy list hrn:here:authorization::org:project/<project-id> --type here-platform

コマンドを実行すると、次の結果が表示されます。


HRN                                                                                                type
hrn:here:authorization::org:platform:policy/artifacts-read-all                                 here-platform
hrn:here:authorization::org:platform:policy/schemas-read-and-modify-all                        here-platform
hrn:here:authorization::org:platform:policy/all-access-all-project-resources                   here-platform
hrn:here:authorization::org:platform:policy/catalogs-read-and-write-and-manage-all             here-platform
hrn:here:authorization::org:platform:policy/catalogs-read-and-write-all                        here-platform
hrn:here:authorization::org:platform:policy/schemas-read-all                                   here-platform
hrn:here:authorization::org:platform:policy/resource-creation-access-all-project-resources     here-platform
hrn:here:authorization::org:platform:policy/pipelines-all-access                               here-platform
hrn:here:authorization::org:platform:policy/artifacts-read-and-modify-all                      here-platform
hrn:here:authorization::org:platform:policy/pipeline-templates-all-access                      here-platform
hrn:here:authorization::org:platform:policy/catalogs-read-all                                  here-platform

Use olp project policy show <project HRN> <policy HRN> to display more information about a project policy

上記の出力で推奨 olp project policy show されているように、を実行すると、任意のプロジェクトポリシーに関する詳細情報を表示できます。

--type here-platform パラメータが指定されていない場合 、コマンドはすべてのポリシーcustomおよびhere-platformポリシーを一覧表示します。 ただし、この時点ではカスタムポリシーを作成していないため、出力は同じです。

プロジェクトポリシーの詳細を表示します

project policy show のコマンドを実行すると、任意のプロジェクトポリシーの詳細を取得できます。

例 :


olp project policy show hrn:here:authorization::org:project/<project-id> \
hrn:here:authorization::org:platform:policy/all-access-all-project-resources

コマンドを実行すると、次の結果が表示されます。


Details of the project policy:
ID                       all-access-all-project-resources
HRN                      hrn:here:authorization::org:platform:policy/all-access-all-project-resources
name                     AllAccessAllProjectResources
description              A policy that indicates a Project Member has access to all project resources in the project.
type                     here-platform

Permissions
resource     type                  allowed actions
-            catalog               readResource, writeResource, manageResource
-            pipeline              all
-            pipeline-template     all

エンティティがプロジェクトに追加されると、既定ではすべてのリソースへのすべてのアクセス権と、プロジェクト内のすべてのプロジェクトリソースを作成するためのアクセス権が付与されます。 HERE platform は、既定でプロジェクトへのアクセス権が付与されたときに、エンティティにall-access-all-project-resourcesresource-creation-access-all-project-resourcesポリシーを添付します。

エンティティに添付されているポリシーを表示するには olp project access show 、次のコマンドを実行します。

例 :


olp project access show hrn:here:authorization::org:project/<project-id> \
--app <app id>

コマンドを実行すると、次の結果が表示されます。


HRN                                                                                                type
hrn:here:authorization::org:platform:policy/all-access-all-project-resources                   here-platform
hrn:here:authorization::org:platform:policy/resource-creation-access-all-project-resources     here-platform

Use olp project policy show <project HRN> <policy HRN> to display more information about a project policy

プラットフォーム ポリシーを添付します

上記のリストにある任意のプラットフォームポリシーを添付できます。 一度に複数のポリシーを添付することもできます。 このワークフローをシンプルに保つために、プラットフォームポリシーを 1 つだけ添付します。

ポリシーを添付するには olp project access grant 、次のコマンドを使用します。

例 :

Linux
olp project access grant hrn:here:authorization::org:project/<project-id> \
--app <App ID> --policy hrn:here:authorization::org:platform:policy/catalogs-read-all
olp project access grant hrn:here:authorization::org:project/<project-id> ^
--app <App ID> --policy hrn:here:authorization::org:platform:policy/catalogs-read-all

出力 :


Application <App ID> has been granted access to the project hrn:here:authorization::org:project/<project-id> with attached policy hrn:here:authorization::org:platform:policy/catalogs-read-all

添付されたポリシーを表示します

olp project access show 次のコマンドを実行して、このアプリに添付されているポリシーを確認しましょう。

例 :


olp project access show hrn:here:authorization::org:project/<project-id> \
--app <app id>

コマンドを実行すると、次の結果が表示されます。


HRN                                                                                  type
hrn:here:authorization::org:platform:policy/catalogs-read-all     here-platform


Use olp project policy show <project HRN> <policy HRN> to display more information about a project policy

確認できるように、 <app id> ID でアプリに添付されたポリシーがcatalogs-read-all プラットフォームポリシーになりました。

添付されているプラットフォーム ポリシーに基づいて、リソースへのアクセスを検証します

メンバーに添付されているポリシーでは、プロジェクト内のカタログへの読み取り専用アクセス権が付与されます。

まず、プロジェクト内のカタログの詳細を取得し、ポリシーが添付されているメンバーの資格情報を使用してカタログの更新を試行します。 ポリシーではカタログへの読み取りアクセスのみが許可されているため、カタログの詳細を取得できますが、カタログを更新しようとすると失敗します。

カタログの詳細を取得するには olp catalog show 、次のコマンドを使用します。

例 :

Linux
olp catalog show hrn:here:data::org:<catalog-id> \
--scope hrn:here:authorization::org:project/<project-id> \
--credentials path/to/credentials.properties
olp catalog show hrn:here:data::org:<catalog-id> ^
--scope hrn:here:authorization::org:project/<project-id> ^
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。


Details of the hrn:here:data::org:<catalog-id> catalog:

ID                       <catalog-id>
name                     scoped-catalog-name
HRN                      hrn:here:data::org:<catalog-id>
summary                  A new scoped catalog
description              A new scoped catalog
notifications enabled?   false
tags                     <empty>
billing tags             <empty>
created                  <creation date>
owner                    <owner app id>, <realm>
config version           0
metadata version         -1
metadata minimum version -1
marketplace ready        false

ただし、カタログを更新しようとすると、例外が発生します。

Linux
olp catalog update hrn:here:data::org:<catalog-id> \
--description "Updated description" \
--scope hrn:here:authorization::org:project/<project-id> \
--credentials path/to/credentials.properties
olp catalog update hrn:here:data::org:<catalog-id> ^
--description "Updated description" ^
--scope hrn:here:authorization::org:project/<project-id> ^
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。

{"error":"Forbidden","error_description":"These credentials do not authorize access"}

プラットフォームポリシーは、多くの一般的なシナリオをカバーする設定を提供します。 プラットフォームポリシーでカバーされていない特定のユースケースがある場合は、カスタムポリシーを作成できます。 次のステップでは、カスタムポリシーを作成してエンティティに添付する方法について説明します。 後で、ポリシーで定義されたリソースへのアクセス権を検証します。

ポリシーの設定に基づいてカスタムポリシーを作成し、プロジェクト内のリソースに対するアプリケーションのアクセス権を付与する前に、アプリケーションがすべてのリソースにアクセスできることを確認してみましょう。

この目的で、プロジェクト内に別のカタログを作成します。

プロジェクトに別のカタログを作成します

次の手順に従って、プロジェクトに新しいカタログを作成します。

<catalog2-id> プレースホルダーには一意の値を使用します。

olp catalog create コマンドを使用して、カタログ ID 、名前、概要、説明、およびプロジェクト範囲を指定します。

Linux
olp catalog create <catalog2-id> scoped-catalog2-name \
--summary "Second scoped catalog" \
-- description "Second scoped catalog" \
--scope hrn:here:authorization::org:project/<project-id>
olp catalog create <catalog2-id> scoped-catalog2-name ^
--summary "Second scoped catalog" ^
-- description "Second scoped catalog" ^
--scope hrn:here:authorization::org:project/<project-id>

コマンドは、指定したプロジェクト範囲でカタログを作成し、カタログ HERE リソースネーム を表示します。 この HERE リソースネーム はワークフローの後半で必要になるので、メモしておいてください。

コマンドを実行すると、次の結果が表示されます。


Catalog hrn:here:data::org:<catalog2-id> has been created

同じプロジェクト内に 2 つのカタログがあるので olp catalog show、プロジェクトへのアクセス権が付与されたアプリケーションの資格情報を使用する場合は、を実行すると、これらのカタログの詳細を表示できます。

Linux
olp catalog show hrn:here:data::org:<catalog-id> \
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog show hrn:here:data::org:<catalog-id> ^
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。


Details of the hrn:here:data::org:<catalog-id> catalog:

ID                       <catalog-id>
name                     scoped-catalog-name
HRN                      hrn:here:data::org:<catalog-id>
summary                  A new scoped catalog
description              A new scoped catalog
notifications enabled?   false
tags                     <empty>
billing tags             <empty>
created                  <creation date>
owner                    <owner app id>, <realm>
config version           0
metadata version         -1
metadata minimum version -1
marketplace ready        false

Linux
olp catalog show hrn:here:data::org:<catalog2-id> \
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog show hrn:here:data::org:<catalog2-id> ^
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。


Details of the hrn:here:data::org:<catalog2-id> catalog:

ID                       <catalog2-id>
name                     scoped-catalog2-name
HRN                      hrn:here:data::org:<catalog2-id>
summary                  Second scoped catalog
description              Second scoped catalog
notifications enabled?   false
tags                     <empty>
billing tags             <empty>
created                  <creation date>
owner                    <owner app id>, <realm>
config version           0
metadata version         -1
metadata minimum version -1
marketplace ready        false

カスタムポリシーを作成します

カスタムポリシーを作成し、プロジェクトのメンバーに添付できます。

プロジェクトに対する管理者権限があるため、前 <catalog-id> の手順でプロジェクト内に作成した ID を使用してカタログへのアクセスを許可するカスタムポリシーを作成します。

カスタムポリシーを作成するには olp project policy create 、次のコマンドを使用します。

まず、必要なすべての詳細情報を含むファイルを作成します。 前のステップで作成した最初のカタログを使用して、そのカタログのカスタムポリシーを定義します。


{
  "id": "full-access-<catalog-id>-catalog",
  "name": "Access to <catalog-id> catalog",
  "description": "Full access to <catalog-id> catalog",
  "permissions": [
    {
      "resource": "hrn:here:data::org:<catalog-id>",
      "allowedActions": [
        "readResource",
        "manageResource",
        "writeResource"
      ]
    }
  ]
}

設定ファイルにという名前を付けて保存 config.jsonします。

カスタムポリシーを作成するには、次のコマンドを実行します。

Linux
olp project policy create hrn:here:authorization::org:project/<project-id> \
--config path/to/config.json
olp project policy create hrn:here:authorization::org:project/<project-id> ^
--config path/to/config.json

出力 :


Policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog has been created in project hrn:here:authorization::myrealm:project/<project-id>

このコマンドを使用すると、ポリシーに含めるリソースがプロジェクトにすでに存在するかどうかを確認するために、検証せずにポリシーを作成できます。 これにより、リソースの作成前にポリシーを作成できます。このポリシーは、一部の CI/CD フローに役立つ場合があります。 ただし、別のプロジェクトにあり、ポリシーを作成しているプロジェクトと共有およびリンクされていないリソースなど、プロジェクトでアクセスできないリソースを含むポリシーを作成することもできます。 このようなポリシーがプロジェクトメンバーに適用されても、ポリシーに含まれているリソースへのアクセス権は失われます。

カスタムポリシーを一覧表示します

使用可能なカスタムポリシーのリストを取得するには 、次の--type customパラメータを指定してolp project policy listコマンドを使用します。


olp project policy list hrn:here:authorization::org:project/<project-id> --type custom

コマンドを実行すると、次の結果が表示されます。


HRN                                                                                     type
hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog     custom

Use olp project policy show <project HRN> <policy HRN> to display more information about a project policy

上記の出力で推奨 olp project policy show されているように、を実行すると、出力に一覧表示されているカスタムポリシーに関する詳細情報を表示できます。

カスタムポリシーを添付します

カスタムポリシーを作成したら、そのポリシーをプロジェクトのメンバーに添付できます。

ポリシーを添付するには olp project access grant 、次のコマンドを使用します。

Linux
olp project access grant hrn:here:authorization::org:project/<project-id> \
--app <App ID> --policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog
olp project access grant hrn:here:authorization::org:project/<project-id> ^
--app <App ID> --policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog

出力 :


Application <App ID> has been granted access to the project hrn:here:authorization::org:project/<project-id> with attached policy hrn:here:authorization::myrealm:project/<project-id>:policy/full-access-<catalog-id>-catalog

添付されているカスタムポリシーに基づいて、リソースへのアクセスを検証します

ポリシーがアプリケーションに添付されると、定義されたポリシーに従って、アプリケーションがプロジェクト内のリソースにアクセスできるようになります。 この場合、作成したカスタムポリシーで <catalog-id> は、 ID を持つ最初のカタログのみにアクセスできます。

プロジェクトのメンバーであるアプリケーションの資格情報を使用してを実行する olp catalog show と、<catalog-id> ID を使用してカタログの詳細を表示できます。

例 :

Linux
olp catalog show hrn:here:data::org:<catalog-id> \
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog show hrn:here:data::org:<catalog-id> ^
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。


Details of the hrn:here:data::org:<catalog-id> catalog:

ID                       <catalog-id>
name                     scoped-catalog-name
HRN                      hrn:here:data::org:<catalog-id>
summary                  A new scoped catalog
description              A new scoped catalog
notifications enabled?   false
tags                     <empty>
billing tags             <empty>
created                  <creation date>
owner                    <owner app id>, <realm>
config version           0
metadata version         -1
metadata minimum version -1
marketplace ready        false

ただし、 id を使用してカタログの詳細を取得しようとする <catalog2-id> と、例外が発生します。

Linux
catalog show hrn:here:data::org:<catalog2-id> \
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
catalog show hrn:here:data::org:<catalog2-id> ^
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。

{"error":"Forbidden","error_description":"These credentials do not authorize access"}

確認できるように、プロジェクトポリシーが適用された状態で、アプリケーションがプロジェクトリソースへのアクセスに制限されるようになりました。

カスタムポリシーを更新します

カスタムポリシーを作成したら、そのポリシーを更新してリソースを追加または削除したり、リソースに対する権限を変更したりすることもできます。

ポリシーの更新の例として 、 <catalog-id>ID を使用してカタログへのアクセス権を変更し、読み取り専用にして、 <catalog2-id>ID を使用してカタログへのフルアクセス権を追加します。次の設定ファイルを作成します。


{
  "id": "full-access-<catalog-id>-catalog",
  "name": "Access to <catalog-id> and  <catalog2-id> catalog",
  "description": "Various access to <catalog-id> and <catalog2-id> catalog",
  "permissions": [
    {
      "resource": "hrn:here:data::org:<catalog-id>",
      "allowedActions": [
         "readResource"
      ]
    },
    {
      "resource": "hrn:here:data::org:<catalog2-id>",
      "allowedActions": [
         "readResource",
         "manageResource",
         "writeResource"
      ]
    }
  ]
}

設定ファイルにという名前を付けて保存 config.jsonします。

設定ファイルには <catalog-id> 、 ID を使用してカタログへの読み取りアクセス権を付与するポリシーと <catalog2-id> 、 ID を使用してカタログへのフルアクセス権が含まれています。フルアクセス権に は、readResourcewriteResource およびwriteResourceアクションが含まれます。

カスタムポリシーを更新するには olp project policy update 、次のコマンドを実行します。

Linux
olp project policy update hrn:here:authorization::org:project/<project-id> \
hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog
--config path/to/config.json
olp project policy update hrn:here:authorization::org:project/<project-id> ^
hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog
--config path/to/config.json

上記のコマンドは <catalog-id> 、 ID を使用してカタログへの読み取りアクセス権を提供し、 <catalog2-id> ID を使用してカタログへのフルアクセス権を提供し、次の結果を出力します。


Policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog has been updated in project hrn:here:authorization::myrealm:project/<project-id>

その結果、このポリシーが適用されたアプリは、これまでアクセスできなかった 2 番目のカタログにアクセスできるようになりました。 また、ポリシーにすでにリンクされているカタログに対するアプリのアクセス許可が変更されました。

更新されたカスタムポリシーに基づいて、リソースへのアクセスを検証します

ポリシーが更新されたので、アプリケーションは更新されたポリシーに従って、プロジェクト内のリソースにアクセスできます。 この場合、上記で更新したカスタムポリシーによって <catalog-id> 、 ID を持つカタログへの読み取りアクセス権と <catalog2-id> ID を持つカタログへのフルアクセス権を持つ両方のカタログへのアクセスが許可されます。次のコマンドを実行して <catalog2-id> 、 ID を使用してカタログにアクセスできるようになったこと、 <catalog-id> および ID を使用してカタログへの読み取りアクセス権のみを持っていることを示します。

Linux
olp catalog show hrn:here:data::org:<catalog-id> \
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog show hrn:here:data::org:<catalog-id> ^
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

このコマンドを実行すると、次の結果が表示されます。ポリシーの更新後も、最初のカタログへの読み取りアクセス権があることを示します。


Details of the hrn:here:data::org:<catalog-id> catalog:

ID                       <catalog-id>
name                     scoped-catalog-name
HRN                      hrn:here:data::org:<catalog-id>
summary                  First scoped catalog
description              First scoped catalog
notifications enabled?   false
tags                     <empty>
billing tags             <empty>
created                  <creation date>
owner                    <owner app id>, <realm>
config version           0
metadata version         -1
metadata minimum version -1
marketplace ready        false

次のコマンドを実行して、 <catalog-id> 読み取り権限を持つ ID でカタログを更新できなくなっていることを確認してください。 カタログを更新するには olp catalog update 、次のコマンドを実行します。

Linux
olp catalog update hrn:here:data::org:<catalog-id> \
--summary "Updated summary"
--description "Updated description"
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog update hrn:here:data::org:<catalog-id> ^
--summary "Updated summary"
--description "Updated description"
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

コマンドを実行すると、次の結果が表示されます。

{"error":"Forbidden","error_description":"These credentials do not authorize access"}

確認できるように、このアプリケーションは上記のカタログへのアクセスに制限されています。

次のコマンドを実行して、 <catalog2-id> フルアクセス権を持つ ID でカタログを更新できるようにします。

Linux
olp catalog update hrn:here:data::org:<catalog2-id> \
--summary "Updated summary"
--description "Updated description"
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties
olp catalog update hrn:here:data::org:<catalog2-id> ^
--summary "Updated summary"
--description "Updated description"
--scope hrn:here:authorization::org:project/<project-id>
--credentials path/to/credentials.properties

このコマンドを使用すると、次の結果が表示されます。これは、ポリシーの更新で付与された権限で 2 番目のカタログを更新できたことを示しています。


Catalog hrn:here:data::org:<catalog2-id> has been updated

カスタムポリシーを削除します

カスタムポリシーを削除するには olp project access revoke 、次のコマンドを実行します。

例 :

Linux
olp project access revoke hrn:here:authorization::org:project/<project-id> \
--app <App ID> --policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog
olp project access revoke hrn:here:authorization::org:project/<project-id> ^
--app <App ID> --policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog

出力 :


Application <App ID> has been revoked access to the policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog in the project hrn:here:authorization::myrealm:project/<project-id>

リンクに使用できるアクションのリストを取得します

ここで、プロジェクトのリソースを同じ組織内の別のプロジェクトにリンクできるワークフローのステップに進みます。 これは、ホームプロジェクトのリソースを最初に他のプロジェクトにリンクできるようにしてから、リンクできるようになると、リソースが別のプロジェクトにリンクされる 2 つのステップからなるプロセスです。

これには、先に作成したリソース(カタログ)を使用します。 リンク先のプロジェクトを作成します。このプロジェクトには、まずリンク先のリソースを使用可能にし、後でこの使用可能なリソースをリンクします。

まず、宛先プロジェクトを作成します。

手順は、最初のプロジェクトの作成方法に似ています。 このためには olp project create 、次のコマンドを使用します。

例 :

olp project create <destination-project-id> <destination-project-name>

<destination-project-id> および <destination-project-name> プレースホルダーには、一意の値を使用します。 <destination-project-id> ハイフンを含む 4 ~ 16 文字の小文字の英数字を使用する必要 <destination-project-id> があります。ハイフンで開始または終了することはできません。

コマンドを使用すると、プロジェクトが作成され、プロジェクトの HERE リソースネーム が表示されます。 この HERE リソースネーム はワークフローの後半で必要になるので、メモしておいてください。


Project hrn:here:authorization::org:project/<destination-project-id> has been created

宛先プロジェクトが作成されました。このプロセスの次のステップでは、特定のリソースタイプ(この場合はカタログ)でサポートされているアクションを確認します コマンドの実行中にこの宛先プロジェクトへのリンクにリソースを使用できるようにするには、アクションの指定が必須です。

リンクするリソースタイプで使用できるアクションのリストを取得するには olp resource action list 、次のコマンドを使用します。

例 :


olp resource action list catalog available-to-link --json

コマンドを実行すると、次の結果が表示されます。


{
  "allowedActions": [
    "readResource",
    "writeResource"
 ]
}

--actions 次のステップで指定するときに必要になるため、このステップのアクションのリストをメモしてください。

プロジェクトに対する管理者権限があるため、同じ組織の他のプロジェクトへのリンクにリソースを使用できるようにすることができます。 プロジェクトリソースを利用可能にして、特定のプロジェクトまたは同じ組織のすべてのプロジェクトにリンクできます。

また、コマンドの実行中にこのリソースで許可されているアクションのリストを指定する必要があります。 前のステップで説明したように、サポートされているアクションはreadResource、カタログリソースタイプのアクションとwriteResourceです。 このワークフローでは readResource 、アクションのみを指定します。 これらのいずれか、または両方を指定することは問題ありませんが、ワークフローの目的で簡単に保つために、 1 つのアクションで先に進みます。

プロジェクトリソースをリンクに使用できるようにするには olp resource link availability create 、次のコマンドを使用します。

例 :

Linux
olp resource link availability create hrn:here:data::org:<catalog-id> \
    --actions readResource \
    --available-to hrn:here:authorization::org:project/<destination-project-id> \
    --scope hrn:here:authorization::org:project/<project-id> \
    --json
olp resource link availability create hrn:here:data::org:<catalog-id> ^
    --actions readResource ^
    --available-to hrn:here:authorization::org:project/<destination-project-id> ^
    --scope hrn:here:authorization::org:project/<project-id> ^
    --json

コマンドを実行すると、次の結果が表示されます。


{
     "resource": "hrn:here:data::org:<catalog-id>",
     "allowedActions": [
         "readResource"
     ],
     "projectHrn": "hrn:here:authorization::org:project/<destination-project-id>"
}

プロジェクトにリンクするプロジェクトリソースの可用性を表示します

プロジェクトリソースへの管理アクセス権を持っているため、リソースのリンクの可用性の詳細を表示できます。 リンクするリソースの可用性を表示するには olp resource link availability show 、次のコマンドを使用します。

例 :

Linux
olp resource link availability show hrn:here:data::org:<catalog-id> \
    --available-to hrn:here:authorization::org:project/<destination-project-id> \
    --scope hrn:here:authorization::org:project/<project-id> \
    --json
olp resource link availability show hrn:here:data::org:<catalog-id> ^
    --available-to hrn:here:authorization::org:project/<destination-project-id> ^
    --scope hrn:here:authorization::org:project/<project-id> ^
    --json

コマンドを実行すると、次の結果が表示されます。


{
     "resource": "hrn:here:data::org:<catalog-id>",
     "allowedActions": ["readResource"],
     "projectHrn": "hrn:here:authorization::org:project/<destination-project-id>"
}

リンクするプロジェクトリソースの可用性を一覧表示します

プロジェクトリソースへの管理アクセス権があるので、リソースの可用性の詳細を一覧表示できます。 リンクするリソースの可用性を一覧表示するには olp resource link availability list 、次のコマンドを使用します。

例 :

Linux
olp resource link availability list hrn:here:data::org:<catalog-id> \
    --scope hrn:here:authorization::org:project/<project-id> \
    --json
olp resource link availability list hrn:here:data::org:<catalog-id> ^
    --scope hrn:here:authorization::org:project/<project-id> ^
    --json

コマンドを実行すると、次の結果が表示されます。


{"resources": [
    {
        "resource": "hrn:here:data::org:<catalog-id>",
        "allowedActions": [
            "readResource"
        ],
        "projectName": "",
        "projectId": "",
        "projectHrn": "hrn:here:authorization::org:project/<destination-project-id>"
    }
]}

プロジェクトへのアクセス権を持つすべての ID が、利用可能なリソースをプロジェクトにリンクできます。 プロジェクトにリンクできるすべてのリソースのリストを取得するには olp project resource availability list 、次のコマンドを使用します。

例 :

Linux
olp project resource availability list hrn:here:authorization::org:project/<destination-project-id> \
    --type catalog --json
olp project resource availability list hrn:here:authorization::org:project/<destination-project-id> ^
    --type catalog --json

コマンドを実行すると、次の結果が表示されます。


{"resources":[
    {
        "hrn": "hrn:here:data::org:<catalog-id>",
        "allowedActions": [
            "readResource"
        ],
        "type": "catalog"
    }
]}

プロジェクトへのアクセス権を持つすべての ID が、利用可能な任意のリソースをプロジェクトにリンクできます。 リソースをプロジェクトにリンクするには olp project resource link 、次のコマンドを使用します。

例 :

Linux
olp project resource link hrn:here:authorization::org:project/<destination-project-id> \
   hrn:here:data::org:<catalog-id> \
   --actions readResource writeResource --json
olp project resource link hrn:here:authorization::org:project/<destination-project-id> ^
   hrn:here:data::org:<catalog-id> ^
   --actions readResource writeResource --json

コマンドを実行すると、次の結果が表示されます。


{
  "resource": "hrn:here:data::org:<catalog-id>",
  "project": "hrn:here:authorization::org:project/<destination-project-id>",
  "type": "catalog",
  "relation": "reference",
  "allowedActions": [
     "readResource"
  ]
}

プロジェクト内のリソースを一覧表示します

プロジェクトへのアクセス権を持つすべての ID が、そのすべてのリソースを一覧表示できます。 プロジェクト内のすべてのリソースを一覧表示するには olp project resource list 、次のコマンドを使用します。

例 :


olp project resource list hrn:here:authorization::org:project/<destination-project-id> --json

コマンドを実行すると、次の結果が表示されます。


{
  "resources": [
    {
      "resource": "hrn:here:data::org:<catalog-id>",
      "project": "hrn:here:authorization::org:project/<destination-project-id>",
      "type": "catalog",
      "relation": "reference",
      "allowedActions": [
        "readResource"
      ]
    }
  ]
}

プロジェクトへのアクセス権を持つすべての ID とリソースの管理者は、プロジェクトから任意のリソースのリンクを解除できます。

リソースを宛先プロジェクトにリンクする方法を確認しました。次に、宛先プロジェクトからリソースをリンク解除します。

プロジェクトからリソースのリンクを解除するには olp project resource unlink 、次のコマンドを使用します。

例 :

Linux
olp project resource unlink hrn:here:authorization::org:project/<destination-project-id> \
   hrn:here:data::org:<catalog-id>
olp project resource unlink hrn:here:authorization::org:project/<destination-project-id> ^
   hrn:here:data::org:<catalog-id>

コマンドを実行すると、次の結果が表示されます。


Resource hrn:here:data::org:<catalog-id> 
 has been unlinked from project hrn:here:authorization::org:project/<destination-project-id>

リソースをリンクできなくなります。

宛先プロジェクトへのリンクにリソースを使用できないようにするには olp resource link availability delete 、次のコマンドを使用します。

例 :

Linux
olp resource link availability delete hrn:here:data::org:<catalog-id> \
    --available-to hrn:here:authorization::org:project/<destination-project-id> \
    --scope hrn:here:authorization::org:project/<project-id>
olp resource link availability delete hrn:here:data::org:<catalog-id> ^
    --actions readResource ^
    --available-to hrn:here:authorization::org:project/<destination-project-id> ^
    --scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


Resource hrn:here:data::org:<catalog-id> 
 has been made unavailable for linking to the project hrn:here:authorization::org:project/<destination-project-id>

目的のプロジェクトを削除します

宛先プロジェクトを削除するには olp project delete 、次のコマンドを使用します。

例 :


olp project delete hrn:here:authorization::org:project/<destination-project-id>

コマンドを実行すると、次の結果が表示されます。


Project hrn:here:authorization::org:project/<destination-project-id> has been deleted

プロジェクトから 2 番目のカタログを削除します

プロジェクトスコープのカタログを削除するには olp catalog delete 、次のコマンドを使用します。

例 :

Linux
olp catalog delete hrn:here:data::org:<catalog2-id> \
--scope hrn:here:authorization::org:project/<project-id>
olp catalog delete hrn:here:data::org:<catalog2-id> ^
--scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


Catalog hrn:here:data::org:<catalog2-id> has been removed

カスタムポリシーを削除します

カスタムポリシーを削除するには olp project policy delete 、次のコマンドを使用します。

例 :

Linux
olp project policy delete hrn:here:authorization::org:project/<project-id> \
hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog
olp project policy delete hrn:here:authorization::org:project/<project-id> ^
hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog

コマンドを実行すると、次の結果が表示されます。


Policy hrn:here:authorization::org:project/<project-id>:policy/full-access-<catalog-id>-catalog has been deleted from project hrn:here:authorization::myrealm:project/<project-id>

プロジェクトからカタログを削除します

プロジェクトスコープのカタログを削除するには olp catalog delete 、次のコマンドを使用します。

例 :

Linux
olp catalog delete hrn:here:data::org:<catalog-id> \
    --scope hrn:here:authorization::org:project/<project-id>
olp catalog delete hrn:here:data::org:<catalog-id> ^
    --scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


Catalog hrn:here:data::org:<catalog-id> has been removed

プロジェクトパイプライン を削除します

プロジェクトスコープのパイプラインを削除するには olp pipeline delete 、次のコマンドを使用します。

例 :

Linux
olp pipeline delete <pipeline UUID> \
    --scope hrn:here:authorization::org:project/<project-id>
olp pipeline delete <pipeline UUID> ^
    --scope hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


Pipeline <pipeline UUID> has been deleted

プロジェクトからアプリケーションを削除します

アプリからプロジェクトへのアクセス権を削除するには olp project access revoke 、次のコマンドを使用します。

例 :

Linux
olp project access revoke hrn:here:authorization::org:project/<project-id> \
   --app <App ID>
olp project access revoke hrn:here:authorization::org:project/<project-id> ^
   --app <App ID>

コマンドを実行すると、次の結果が表示されます。


App  has been revoked access to the project hrn:here:authorization::org:project/<project-id>

プロジェクトを削除します

プロジェクトを削除するには olp project delete 、次のコマンドを使用します。

例 :


olp project delete hrn:here:authorization::org:project/<project-id>

コマンドを実行すると、次の結果が表示されます。


Project hrn:here:authorization::org:project/<project-id> has been deleted

このコンテキストの ID は、組織内のアプリまたはユーザーを参照します。

詳細については、「プロジェクトの管理」を参照してください。

」に一致する結果は 件です

    」に一致する結果はありません