アクセスと権限の管理
はじめに
Red Hat Quay は包括的な権限モデルを提供しており、管理者はリポジトリーにアクセス、管理、変更できるユーザーを詳細なレベルで制御できます。次のセクションでは、ユーザーアクセスの管理、チームロールの定義、ユーザーとロボットアカウントの権限の設定、リポジトリーの可視性の定義の方法を説明します。これらのガイドには、Red Hat Quay UI と API の両方を使用する手順が含まれています。
以下のトピックを説明します。
- ロールベースのアクセス制御
- リポジトリーの可視性の調整
- ロボットアカウントの作成と管理
- Clair 脆弱性レポート
第1章 Red Hat Quay 権限モデル
Red Hat Quay の権限モデルは、リポジトリーとそのリポジトリーのコンテンツに対するアクセス制御を詳細に指定でき、安全なコラボレーションと自動化を実現します。Red Hat Quay 管理者は、ユーザーとロボットアカウントに次のいずれかのアクセスレベルを付与できます。
- Read: ユーザー、ロボット、チームがイメージをプルできるようにします。
- Write: ユーザー、ロボット、チームがイメージをプッシュできるようにします。
- Admin: ユーザー、ロボット、チームに管理者権限を提供します。
管理ユーザーは、既存のユーザーやチームに新しい権限を委譲したり、既存の権限を変更したり、必要に応じて権限を取り消したりすることができます。
これらのアクセスレベルをまとめると、ユーザーまたはロボットアカウントは、イメージのプル、イメージの新しいバージョンのレジストリーへのプッシュ、リポジトリーの設定の管理など、特定のタスクを実行できるようになります。これらの権限は、組織全体および特定のリポジトリーに委譲できます。たとえば、Read 権限は組織内の特定のチームに設定できますが、Admin 権限は組織内のすべてのリポジトリーのすべてのユーザーに付与できます。
1.1. Red Hat Quay のチームの概要
Red Hat Quay の チーム は、権限を共有するユーザーのグループであり、プロジェクトの効率的な管理とコラボレーションを可能にするものです。チームは、組織およびリポジトリー内のアクセス制御とプロジェクト管理を効率化するのに役立ちます。指定の権限をチームに割り当てることで、メンバーの役割と責任に基づいて、リポジトリーへの適切なレベルのアクセス権を付与できます。
1.1.1. UI を使用したチームのロールの設定
チームを作成したら、そのチームの組織内でのロールを設定できます。
前提条件
- チームを作成している。
手順
- Red Hat Quay のランディングページで、組織の名前をクリックします。
- ナビゲーションウィンドウで、Teams and Membership をクリックします。
次の図に示すように、TEAM ROLE ドロップダウンメニューを選択します。
選択したチームについて、以下のロールのいずれかを選択します。
- Admin。チームの作成、メンバーの追加、権限の設定など、組織への完全な管理アクセス権を付与します。
- Member。チームに設定されているすべての権限を継承します。
- Creator。メンバーのすべての権限に加えて、新しいリポジトリーを作成する権限を付与します。
1.1.1.1. チームメンバーとリポジトリー権限の管理
チームメンバーを管理し、リポジトリー権限を設定するには、次の手順に従います。
組織の Teams and membership ページでは、チームメンバーを管理したり、リポジトリー権限を設定したりすることもできます。
- 縦の省略記号メニューをクリックし、次のいずれかのオプションを選択します。
- Manage Team Members。このページでは、すべてのメンバー、チームメンバー、ロボットアカウント、または招待したユーザーを表示できます。Add new member をクリックして、新しいチームメンバーを追加することもできます。
Set repository permissions。このページでは、リポジトリー権限を次のいずれかに設定できます。
- None。チームメンバーにリポジトリーに対する権限は付与されません。
- Read。チームメンバーがリポジトリーの表示とリポジトリーからのプルを行えるようになります。
- Write。チームメンバーがリポジトリーの読み取り (プル) とリポジトリーへの書き込み (プッシュ) を行えるようになります。
- Admin。プルおよびプッシュを行うためのリポジトリーへのフルアクセスに加えて、リポジトリーに関連する管理作業を行う権限を付与します。
- Delete。このポップアップウィンドウでは、Delete をクリックしてチームを削除できます。
1.1.2. API を使用して組織内のチームのロールを設定する
API を使用して組織内のチームのロールを表示および設定するには、次の手順に従います。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
組織のチームのリポジトリー権限のリストを返すには、次の
GET/api/v1/organization/{orgname}/team/{teamname}/permissions
コマンドを入力します。このコマンドで情報を取得するには、チームがリポジトリーに追加されている必要があることに注意してください。$ curl -X GET \ -H "Authorization: Bearer <your_access_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/permissions"
出力例
{"permissions": [{"repository": {"name": "api-repo", "is_public": true}, "role": "admin"}]}
PUT/api/v1/organization/{orgname}/team/{teamname}
コマンドを使用して、組織内のチームを作成または更新し、指定されたロールを admin、member、または creator にすることができます。以下に例を示します。$ curl -X PUT \ -H "Authorization: Bearer <your_access_token>" \ -H "Content-Type: application/json" \ -d '{ "role": "<role>" }' \ "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"
出力例
{"name": "testteam", "description": "", "can_view": true, "role": "creator", "avatar": {"name": "testteam", "hash": "827f8c5762148d7e85402495b126e0a18b9b168170416ed04b49aae551099dc8", "color": "#ff7f0e", "kind": "team"}, "new_team": false}
1.2. UI を使用したデフォルトの権限の作成および管理
デフォルトの権限は、リポジトリーの作成者のデフォルトに加えて、リポジトリーの作成時にリポジトリーに自動的に付与される権限を定義します。権限は、リポジトリーを作成したユーザーに基づいて割り当てられます。
Red Hat Quay v2 UI を使用してデフォルトの権限を作成するには、次の手順を実行します。
手順
- 組織名をクリックします。
- Default permissions をクリックします。
- Create default permissions をクリックします。切り替え式のドロワーが表示されます。
リポジトリーの作成時にデフォルトの権限を作成するには、Anyone または Specific user を選択します。
Anyone を選択する場合は、次の情報を入力する必要があります。
- Applied to。ユーザー/ロボット/チームを検索、招待、または追加します。
- Permission。権限を Read、Write、または Admin のいずれかに設定します。
Specific user を選択する場合は、次の情報を指定する必要があります。
- Repository creator。ユーザーまたはロボットアカウントを指定します。
- Applied to。ユーザー名、ロボットアカウント、またはチーム名を入力します。
- Permission。権限を Read、Write、または Admin のいずれかに設定します。
- Create default permission をクリックします。確認ボックスが表示され、Successfully created default permission for creator というアラートが返されます。
1.3. API を使用したデフォルトの権限の作成および管理
Red Hat Quay API を使用してデフォルトの権限を管理するには、次の手順に従います。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
次のコマンドを入力し、
POST /api/v1/organization/{orgname}/prototypes
エンドポイントでデフォルトの権限を作成します。$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" --data '{ "role": "<admin_read_or_write>", "delegate": { "name": "<username>", "kind": "user" }, "activating_user": { "name": "<robot_name>" } }' https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
出力例
{"activating_user": {"name": "test-org+test", "is_robot": true, "kind": "user", "is_org_member": true, "avatar": {"name": "test-org+test", "hash": "aa85264436fe9839e7160bf349100a9b71403a5e9ec684d5b5e9571f6c821370", "color": "#8c564b", "kind": "robot"}}, "delegate": {"name": "testuser", "is_robot": false, "kind": "user", "is_org_member": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}}, "role": "admin", "id": "977dc2bc-bc75-411d-82b3-604e5b79a493"}
次のコマンドを入力し、
PUT /api/v1/organization/{orgname}/prototypes/{prototypeid}
エンドポイントを使用してデフォルトの権限を更新します。これは権限タイプを変更する場合の例です。ポリシーを作成したときに返された ID を含める必要があります。$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ --data '{ "role": "write" }' \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototypeid>
出力例
{"activating_user": {"name": "test-org+test", "is_robot": true, "kind": "user", "is_org_member": true, "avatar": {"name": "test-org+test", "hash": "aa85264436fe9839e7160bf349100a9b71403a5e9ec684d5b5e9571f6c821370", "color": "#8c564b", "kind": "robot"}}, "delegate": {"name": "testuser", "is_robot": false, "kind": "user", "is_org_member": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}}, "role": "write", "id": "977dc2bc-bc75-411d-82b3-604e5b79a493"}
DELETE /api/v1/organization/{orgname}/prototypes/{prototypeid}
コマンドを入力すると、権限を削除できます。curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototype_id>
このコマンドは出力を返しません。
GET /api/v1/organization/{orgname}/prototypes
コマンドを入力すると、すべての権限のリストを取得できます。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
出力例
{"prototypes": []}
1.4. UI を使用したリポジトリーのアクセス設定の調整
v2 UI を使用してリポジトリーのユーザーまたはロボットアカウントのアクセス設定を調整するには、次の手順に従います。
前提条件
- ユーザーアカウントまたはロボットアカウントを作成した。
手順
- Red Hat Quay にログインします。
- v2 UI で、Repositories をクリックします。
-
リポジトリーの名前をクリックします (例:
quayadmin/busybox
)。 - Settings タブをクリックします。
オプション: User and robot permissions をクリックします。Permissions のドロップダウンメニューオプションをクリックすると、ユーザーまたはロボットアカウントの設定を調整できます。設定を Read、Write、または Admin に変更できます。
- Read。ユーザーまたはロボットアカウントが、リポジトリーを表示し、リポジトリーからプルできます。
- Write。ユーザーまたはロボットアカウントが、リポジトリーからの読み取り (プル) とリポジトリーへの書き込み (プッシュ) を実行できます。
- Admin。ユーザーアカウントまたはロボットアカウントに、リポジトリーからのプルとリポジトリーへのプッシュのアクセス権に加え、リポジトリーに関連する管理タスクを実行する権限を付与します。
1.5. API を使用したリポジトリーのアクセス設定の調整
API を使用してリポジトリーのユーザーアカウントまたはロボットアカウントのアクセス設定を調整するには、次の手順に従います。
前提条件
- ユーザーアカウントまたはロボットアカウントを作成した。
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
ユーザーの権限を変更するには、次の
PUT /api/v1/repository/{repository}/permissions/user/{username}
コマンドを入力します。$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -d '{"role": "admin"}' \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
出力例
{"role": "admin", "name": "quayadmin+test", "is_robot": true, "avatar": {"name": "quayadmin+test", "hash": "ca9afae0a9d3ca322fc8a7a866e8476dd6c98de543decd186ae090e420a88feb", "color": "#8c564b", "kind": "robot"}}
現在の権限を削除するには、
DELETE /api/v1/repository/{repository}/permissions/user/{username}
コマンドを入力します。$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
このコマンドは CLI に出力を返しません。
GET /api/v1/repository/{repository}/permissions/user/
コマンドを入力すると、権限が削除されたことを確認できます。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>/
出力例
{"message":"User does not have permission for repo."}
第2章 Red Hat Quay のリポジトリーの概要
リポジトリーは、関連するコンテナーイメージのセットを一元的に保存するための場所を提供します。これらのイメージを使用して、アプリケーションとその依存関係を標準化された形式で構築できます。
リポジトリーは名前空間を使用して整理します。名前空間には、それぞれ複数のリポジトリーを含めることができます。たとえば、個人プロジェクト用の名前空間、会社用の名前空間、または組織内の特定のチーム用の名前空間を設定できます。
プライベートリポジトリーでは、リポジトリーにプッシュしたり、リポジトリーからプルしたりできるユーザーまたはチームを定義できるため、イメージにアクセスできるユーザーを制御でき、レジストリーのセキュリティーが強化されます。
2.1. UI を使用してリポジトリーの可視性を調整する
Red Hat Quay UI を使用して、リポジトリーの可視性を調整し、パブリックまたはプライベートにすることができます。
手順
- Red Hat Quay UI で、ナビゲーションペインの Repositories をクリックします。
- リポジトリーの名前をクリックします。
- ナビゲーションペインで Settings をクリックします。
- Repository visibility をクリックします。
- Make private をクリックします。リポジトリーは非公開に設定され、権限リストに載っているユーザーのみがリポジトリーを表示して操作できるようになります。
2.2. API を使用してリポジトリーの可視性を調整する
リポジトリーの可視性は POST/api/v1/repository/{repository}/changevisibility
コマンドを使用して、private
または public
に設定できます。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。 - リポジトリーが作成済みである。
手順
visibility
スキーマで必要なオプションを指定することにより、リポジトリーの可視性をパブリックまたはプライベートに変更できます。以下に例を示します。$ curl -X POST \ -H "Authorization: Bearer GCczXwaZ5i21p8hOO09uZqjZSsTYGKteu5PC5UuA" \ -H "Content-Type: application/json" \ -d '{ "visibility": "private" }' \ "https://quay-server.example.com/api/v1/repository/my_namespace/test_repo_three/changevisibility"
出力例
{"success": true}
第3章 Red Hat Quay のロボットアカウントの概要
ロボットアカウントは、Red Hat Quay レジストリー内のリポジトリーへの自動アクセスを設定するのに使用します。ロボットアカウントは OpenShift Container Platform のサービスアカウントに似ています。
ロボットアカウントを設定すると、以下が実行されます。
- ロボットアカウントに関連付けられた認証情報が生成されます。
- ロボットアカウントがイメージをプッシュおよびプルできるリポジトリーとイメージが特定されます。
- 生成された認証情報をコピー/ペーストして、Docker、Podman、Kubernetes、Mesos などのさまざまなコンテナークライアントで使用し、定義された各リポジトリーにアクセスできます。
ロボットアカウントは、次のようなさまざまなセキュリティー上の利点を提供することで、Red Hat Quay レジストリーのセキュリティー保護に役立ちます。
- リポジトリーアクセスの指定。
-
Read
(プル) またはWrite
(プッシュ) アクセスなどの詳細な権限。必要に応じてAdmin
権限を付与することもできます。 - CI/CD パイプライン、システム統合、その他の自動化タスク向けの設計。スクリプト、パイプライン、その他の環境変数での認証情報の公開を回避します。
- パスワードの代わりにトークンを使用するロボットアカウント。トークンが侵害された場合に管理者がトークンを取り消すことができます。
各ロボットアカウントは、1 つのユーザー名前空間または組織に制限されます。たとえば、ロボットアカウントは、ユーザー quayadmin
にすべてのリポジトリーへのアクセスを提供できます。しかし、ユーザーのリポジトリーリストにないリポジトリーへのアクセスは提供できません。
ロボットアカウントは、Red Hat Quay UI を使用して作成することも、Red Hat Quay API を使用して CLI 経由で作成することもできます。作成後、Red Hat Quay 管理者は、キーレス認証などの Robot Accounts のより高度な機能を活用できます。
3.1. UI を使用したロボットアカウントの作成
v2 UI を使用してロボットアカウントを作成するには、次の手順を実行します。
手順
- v2 UI で、Organizations をクリックします。
-
ロボットアカウントを作成する組織の名前をクリックします (例:
test-org
)。 - Robot accounts タブ → Create robot account をクリックします。
-
Provide a name for your robot account ボックスに、
robot1
などの名前を入力します。ロボットアカウントの名前は、ユーザー名とロボットの名前を組み合わせたものになります (例:quayadmin+robot1
)。 オプション: 必要に応じて、以下のオプションを使用できます。
- ロボットアカウントをチームに追加します。
- ロボットアカウントをリポジトリーに追加します。
- ロボットアカウントの権限を調整します。
Review and finish ページで、入力した情報を確認してから、Review and finish をクリックします。Successfully created robot account with robot name: <organization_name> + <robot_name> というアラートが表示されます。
また、別のロボットアカウントと同じ名前でロボットアカウントを作成しようとすると、Error creating robot account というエラーメッセージが表示される場合があります。
- オプション: Expand または Collapse をクリックすると、ロボットアカウントの説明情報を表示できます。
- オプション: 縦の省略記号メニュー → Set repository permissions をクリックして、ロボットアカウントのパーミッションを変更できます。Successfully updated repository permission というメッセージが表示されます。
オプション: ロボットアカウントの名前をクリックすると、次の情報を取得できます。
- Robot Account: ロボットアカウントのトークンを取得するには、これを選択します。Regenerate token now をクリックすると、トークンを再生成できます。
- Kubernetes Secret: Kubernetes プルシークレット YAML ファイルの形式で認証情報をダウンロードするには、これを選択します。
-
Podman: 認証情報を含む完全な
podman login
コマンドラインをコピーするには、これを選択します。 -
Docker Configuration: 認証情報を含む完全な
docker login
コマンドラインをコピーするには、これを選択します。
3.2. Red Hat Quay API を使用したロボットアカウントの作成
Red Hat Quay API を使用してロボットアカウントを作成するには、次の手順に従います。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
次のコマンドを入力し、
PUT /api/v1/organization/{orgname}/robots/{robot_shortname}
エンドポイントを使用して組織の新しいロボットアカウントを作成します。$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_name>"
出力例
{"name": "orgname+robot-name", "created": "Fri, 10 May 2024 15:11:00 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
次のコマンドを入力し、
PUT /api/v1/user/robots/{robot_shortname}
エンドポイントを使用して現在のユーザーの新しいロボットアカウントを作成します。$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/user/robots/<robot_name>"
出力例
{"name": "quayadmin+robot-name", "created": "Fri, 10 May 2024 15:24:57 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
3.3. ロボットアカウントのリポジトリーアクセスの一括管理
Red Hat Quay v2 UI を使用してロボットアカウントのリポジトリーアクセスを一括管理するには、次の手順を実行します。
前提条件
- ロボットアカウントを作成している。
- 1 つの組織に複数のリポジトリーを作成している。
手順
- Red Hat Quay v2 UI ランディングページで、ナビゲーションペインの Organizations をクリックします。
- Organizations ページで、複数のリポジトリーを持つ組織の名前を選択します。単一組織内のリポジトリーの数は、Repo Count 列で確認できます。
- 組織のページで、Robot accounts をクリックします。
- 複数のリポジトリーにロボットアカウントを追加する場合は、縦の省略記号アイコン → Set repository permissions をクリックします。
Set repository permissions ページで、ロボットアカウントを追加するリポジトリーのチェックボックスをオンにします。以下に例を示します。
- ロボットアカウントの権限を設定します (例: None、Read、Write、Admin)。
- save をクリックします。Success alert: Successfully updated repository permission というアラートが Set repository permissions ページに表示され、変更が確認されます。
- Organizations → Robot accounts ページに戻ります。これで、ロボットアカウントの Repositories 列に、ロボットアカウントが追加されたリポジトリーの数が表示されます。
3.4. UI を使用したロボットアカウントの無効化
Red Hat Quay 管理者は、ユーザーに新しいロボットアカウントの作成を禁止することでロボットアカウントを管理できます。
リポジトリーのミラーリングにはロボットアカウントが必要です。ROBOTS_DISALLOW
設定フィールドを true
に設定すると、ミラーリング設定が破棄されます。リポジトリーをミラーリングするユーザーは、config.yaml
ファイルで ROBOTS_DISALLOW
を true
に設定しないでください。これは既知の問題であり、Red Hat Quay の今後のリリースで修正される予定です。
ロボットアカウントの作成を無効にするには、次の手順を実行します。
前提条件
- 複数のロボットアカウントを作成している。
手順
config.yaml
フィールドを更新してROBOTS_DISALLOW
変数を追加します。次に例を示します。ROBOTS_DISALLOW: true
- Red Hat Quay デプロイメントを再起動します。
検証: 新しいロボットアカウントの作成
- Red Hat Quay リポジトリーに移動します。
- リポジトリーの名前をクリックします。
- ナビゲーションウィンドウで、Robot Accounts をクリックします。
- Create Robot Account をクリックします。
-
ロボットアカウントの名前を入力します (例:
<organization-name/username>+<robot-name>)
。 -
Create robot account をクリックして作成を確定します。次のメッセージが表示されます。
Cannot create robot account.Robot accounts have been disabled.Please contact your administrator.
検証: ロボットアカウントへのログイン
コマンドラインインターフェイス (CLI) で、次のコマンドを入力してロボットアカウントの 1 つとしてログインを試みます。
$ podman login -u="<organization-name/username>+<robot-name>" -p="KETJ6VN0WT8YLLNXUJJ4454ZI6TZJ98NV41OE02PC2IQXVXRFQ1EJ36V12345678" <quay-server.example.com>
次のエラーメッセージが返されます。
Error: logging into "<quay-server.example.com>": invalid username/password
log-level=debug
フラグを渡すと、ロボットアカウントが無効化されたことを確認できます。$ podman login -u="<organization-name/username>+<robot-name>" -p="KETJ6VN0WT8YLLNXUJJ4454ZI6TZJ98NV41OE02PC2IQXVXRFQ1EJ36V12345678" --log-level=debug <quay-server.example.com>
... DEBU[0000] error logging into "quay-server.example.com": unable to retrieve auth token: invalid username/password: unauthorized: Robot accounts have been disabled. Please contact your administrator.
3.5. Red Hat Quay API を使用したロボットアカウントトークンの再生成
Red Hat Quay API を使用してロボットアカウントトークンを再生成するには、次の手順に従います。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
次のコマンドを入力し、
POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate
エンドポイントを使用して組織のロボットアカウントトークンを再生成します。$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<orgname>/robots/<robot_shortname>/regenerate"
出力例
{"name": "test-org+test", "created": "Fri, 10 May 2024 17:46:02 -0000", "last_accessed": null, "description": "", "token": "<example_secret>"}
次のコマンドを入力し、
POST /api/v1/user/robots/{robot_shortname}/regenerate
エンドポイントを使用して現在のユーザーのロボットアカウントトークンを再生成します。$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>/regenerate"
出力例
{"name": "quayadmin+test", "created": "Fri, 10 May 2024 14:12:11 -0000", "last_accessed": null, "description": "", "token": "<example_secret>"}
3.6. UI を使用したロボットアカウントの削除
Red Hat Quay UI を使用してロボットアカウントを削除するには、次の手順に従います。
手順
- Red Hat Quay レジストリーにログインします。
- ロボットアカウントがある組織の名前をクリックします。
- Robot accounts をクリックします。
- 削除するロボットアカウントのボックスをチェックします。
- 縦の省略記号メニューをクリックします。
- Delete をクリックします。
-
テキストボックスに
confirm
と入力し、Delete をクリックします。
3.7. Red Hat Quay API を使用したロボットアカウントの削除
Red Hat Quay API を使用してロボットアカウントを削除するには、次の手順に従います。
前提条件
- OAuth アクセストークンを作成 した。
-
config.yaml
ファイルでBROWSER_API_CALLS_XHR_ONLY: false
を設定した。
手順
次のコマンドを入力し、
DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}
エンドポイントを使用して組織のロボットアカウントを削除します。curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_shortname>"
API を使用してロボットアカウントを削除する場合、CLI は情報を返しません。削除を確認するには、Red Hat Quay UI を確認するか、次の
GET /api/v1/organization/{orgname}/robots
コマンドを入力して、ロボットアカウントの詳細が返されるかどうかを確認します。$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
出力例
{"robots": []}
次のコマンドを入力し、
DELETE /api/v1/user/robots/{robot_shortname}
エンドポイントを使用して現在のユーザーのロボットアカウントを削除します。$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
API を使用して現在のユーザーのロボットアカウントを削除する場合、CLI は情報を返しません。削除を確認するには、Red Hat Quay UI を確認するか、次の
GET /api/v1/user/robots/{robot_shortname}
コマンドを入力して、ロボットアカウントの詳細が返されるかどうかを確認します。$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
出力例
{"message":"Could not find robot with specified username"}
第4章 Clair セキュリティースキャナー
Clair v4 (Clair) は、静的コード分析を活用してイメージコンテンツを解析し、コンテンツに影響を与える脆弱性を報告するオープンソースアプリケーションです。Clair は Red Hat Quay にパッケージ化されており、スタンドアロンと Operator デプロイメントの両方で使用できます。エンタープライズ環境に合わせてコンポーネントを個別にスケーリングできる、非常にスケーラブルな設定で実行できます。
Clair セキュリティースキャナーの詳細は、Red Hat Quay での Clair による脆弱性レポート を参照してください。