検索

第6章 Red Hat Quay のアクセス管理

download PDF

Red Hat Quay ユーザーは、独自のリポジトリーを作成し、インスタンスに含まれる他のユーザーにそのリポジトリーへのアクセスを許可できます。または、組織を作成し、その組織にリポジトリーのセット (これは 組織リポジトリー と呼ばれます) を直接関連付けることもできます。

組織リポジトリーは、組織がユーザーのグループを通じて共有リポジトリーをセットアップすることを目的としているという点で、基本的なリポジトリーとは異なります。Red Hat Quay では、ユーザーのグループは、チーム、同じ権限を持つユーザーのセット、または 個々のユーザー のいずれかです。また、ロボットアカウントに関連付けられた認証情報を作成することで、ユーザーリポジトリーと組織リポジトリーへのアクセスを許可することもできます。ロボットアカウントを使用すると、Red Hat Quay ユーザーアカウントを持っていないさまざまなコンテナークライアント (Docker や Podman など) がリポジトリーに簡単にアクセスできるようになります。

6.1. Red Hat Quay のチームの概要

Red Hat Quay の チーム は、権限を共有するユーザーのグループであり、プロジェクトの効率的な管理とコラボレーションを可能にするものです。チームは、組織およびリポジトリー内のアクセス制御とプロジェクト管理を効率化するのに役立ちます。指定の権限をチームに割り当てることで、メンバーの役割と責任に基づいて、リポジトリーへの適切なレベルのアクセス権を付与できます。

6.1.1. UI を使用したチームの作成

組織のためにチームを作成する際に、チーム名を選択し、チームが利用できるリポジトリーを選択し、チームのアクセスレベルを決定できます。

組織リポジトリー用のチームを作成するには、次の手順に従います。

前提条件

  • 組織を作成している。

手順

  1. Red Hat Quay v2 UI で、組織の名前をクリックします。
  2. 組織のページで、Teams and membership をクリックします。
  3. Create new team ボックスをクリックします。
  4. Create team ポップアップウィンドウで、新しいチームの名前を入力します。
  5. オプション: 新しいチームの説明を入力します。
  6. Proceed をクリックします。新しいポップアップウィンドウが表示されます。
  7. オプション: このチームをリポジトリーに追加し、権限を次のいずれかに設定します。

    • None。チームメンバーにリポジトリーに対する権限は付与されません。
    • Read。チームメンバーがリポジトリーの表示とリポジトリーからのプルを行えるようになります。
    • Write。チームメンバーがリポジトリーの読み取り (プル) とリポジトリーへの書き込み (プッシュ) を行えるようになります。
    • Admin。プルおよびプッシュを行うためのリポジトリーへのフルアクセスに加えて、リポジトリーに関連する管理作業を行う権限を付与します。
  8. オプション: チームメンバーまたはロボットアカウントを追加します。チームメンバーを追加するには、Red Hat Quay アカウントの名前を入力します。
  9. 情報を確認し、Review and Finish をクリックします。新しいチームが Teams and membership ページに表示されます。

6.1.2. API を使用したチームの作成

API を使用して組織のチームを作成する際に、チーム名を選択し、チームが利用できるリポジトリーを選択し、チームのアクセスレベルを決定できます。

組織リポジトリー用のチームを作成するには、次の手順に従います。

前提条件

手順

  1. 次のコマンドを入力し、組織のチームを作成します。

    $ ------------------------------
    $ curl -k -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer <bearer_token>"  --data '{"role": "creator"}' https://<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>

    出力例

    {"name": "example_team", "description": "", "can_view": true, "role": "creator", "avatar": {"name": "example_team", "hash": "dec209fd7312a2284b689d4db3135e2846f27e0f40fa126776a0ce17366bc989", "color": "#e7ba52", "kind": "team"}, "new_team": true}

6.1.3. UI を使用したチームの管理

チームを作成したら、UI を使用してチームメンバーを管理したり、リポジトリー権限を設定したり、チームを削除したり、チームに関するより一般的な情報を表示したりできます。

6.1.3.1. UI を使用したチームへのユーザーの追加

組織に対する管理者権限を持っていれば、ユーザーとロボットアカウントをチームに追加できます。ユーザーを追加すると、Red Hat Quay はそのユーザーにメールを送信します。そのユーザーが招待を受け入れるまで、ユーザーは保留状態のままになります。

ユーザーまたはロボットアカウントをチームに追加するには、次の手順を実行します。

手順

  1. Red Hat Quay のランディングページで、組織の名前をクリックします。
  2. ナビゲーションウィンドウで、Teams and Membership をクリックします。
  3. ユーザーまたはロボットアカウントを追加するチームの縦の省略記号メニューを選択します。Manage team members をクリックします。
  4. Add new member をクリックします。
  5. テキストボックスに、次のいずれかの情報を入力します。

    • レジストリー上のアカウントからのユーザー名。
    • レジストリー上のユーザーアカウントのメールアドレス。
    • ロボットアカウントの名前。名前は、<組織名>+<ロボット名> の形式である必要があります。

      注記

      ロボットアカウントはすぐにチームに追加されます。ユーザーアカウントの場合、参加の招待がユーザーにメールで送信されます。ユーザーがその招待を受け入れるまで、ユーザーは INVITED TO JOIN 状態のままになります。ユーザーがチームへの参加招待メールを受け入れると、INVITED TO JOIN リストから組織の MEMBERS リストに移動します。

  6. Add member をクリックします。

6.1.3.2. UI を使用したチームのロールの設定

チームを作成したら、そのチームの組織内でのロールを設定できます。

前提条件

  • チームを作成している。

手順

  1. Red Hat Quay のランディングページで、組織の名前をクリックします。
  2. ナビゲーションウィンドウで、Teams and Membership をクリックします。
  3. 次の図に示すように、TEAM ROLE ドロップダウンメニューを選択します。

    Set the role that a team has within an organization

  4. 選択したチームについて、以下のロールのいずれかを選択します。

    • Admin。チームの作成、メンバーの追加、権限の設定など、組織への完全な管理アクセス権を付与します。
    • Member。チームに設定されているすべての権限を継承します。
    • Creator。メンバーのすべての権限に加えて、新しいリポジトリーを作成する権限を付与します。
6.1.3.2.1. チームメンバーとリポジトリー権限の管理

チームメンバーを管理し、リポジトリー権限を設定するには、次の手順に従います。

  • 組織の Teams and membership ページでは、チームメンバーを管理したり、リポジトリー権限を設定したりすることもできます。

    • 縦の省略記号メニューをクリックし、次のいずれかのオプションを選択します。
    • Manage Team Members。このページでは、すべてのメンバー、チームメンバー、ロボットアカウント、または招待したユーザーを表示できます。Add new member をクリックして、新しいチームメンバーを追加することもできます。
    • Set repository permissions。このページでは、リポジトリー権限を次のいずれかに設定できます。

      • None。チームメンバーにリポジトリーに対する権限は付与されません。
      • Read。チームメンバーがリポジトリーの表示とリポジトリーからのプルを行えるようになります。
      • Write。チームメンバーがリポジトリーの読み取り (プル) とリポジトリーへの書き込み (プッシュ) を行えるようになります。
      • Admin。プルおよびプッシュを行うためのリポジトリーへのフルアクセスに加えて、リポジトリーに関連する管理作業を行う権限を付与します。
    • Delete。このポップアップウィンドウでは、Delete をクリックしてチームを削除できます。
6.1.3.2.2. チームに関する追加情報の表示

チームに関する一般情報を表示するには、次の手順に従います。

手順

  • 組織の Teams and membership ページで、次のいずれかのオプションをクリックすると、チーム、メンバー、コラボレーターに関する詳細情報を表示できます。

    • Team View。このメニューには、すべてのチーム名、メンバーの数、リポジトリーの数、および各チームのロールが表示されます。
    • Members View。このメニューには、チームメンバーのすべてのユーザー名、メンバーが属しているチーム、ユーザーのリポジトリー権限が表示されます。
    • Collaborators View。このメニューにはリポジトリーのコラボレーターが表示されます。コラボレーターは、組織内のどのチームにも属さないが、組織に属する 1 つ以上のリポジトリーに対する直接権限を持つユーザーです。

6.1.4. Red Hat Quay API を使用したチームの管理

チームを作成したら、API を使用して、チームの権限やチームメンバーに関する情報を取得したり、チームメンバーを追加、更新、削除したり (メールによる削除を含む)、組織のチームを削除したりできます。

次の手順では、Red Hat Quay API を使用してチームを管理する方法を説明します。

6.1.4.1. API を使用したチームメンバーとリポジトリー権限の管理

チームにメンバーを追加する (直接招待またはメールによる)、またはチームからメンバーを削除するには、次の手順に従います。

前提条件

手順

  • PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername} コマンドを入力し、既存のチームにメンバーを追加または招待します。

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"

    出力例

    {"name": "testuser", "kind": "user", "is_robot": false, "avatar": {"name": "testuser", "hash": "d51d17303dc3271ac3266fb332d7df919bab882bbfc7199d2017a4daac8979f0", "color": "#5254a3", "kind": "user"}, "invited": false}

  • DELETE /api/v1/organization/{orgname}/team/{teamname}/members/{membername} コマンドを入力し、チームのメンバーを削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"

    このコマンドは CLI に出力しません。メンバーが削除されたことを確認するには、GET /api/v1/organization/{orgname}/team/{teamname}/members コマンドを入力し、出力にメンバーが返されないことを確認します。

    $ curl -X GET \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>/members"

    出力例

    {"name": "owners", "members": [{"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}, "invited": false}, {"name": "test-org+test", "kind": "user", "is_robot": true, "avatar": {"name": "test-org+test", "hash": "aa85264436fe9839e7160bf349100a9b71403a5e9ec684d5b5e9571f6c821370", "color": "#8c564b", "kind": "robot"}, "invited": false}], "can_edit": true}

  • PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email} コマンドを入力し、メールアドレスでユーザーを既存のチームに招待できます。

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
  • DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email} コマンドを入力し、チームに参加させるためのメールアドレスの招待を削除できます。以下に例を示します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"

6.1.4.2. API を使用して組織内のチームのロールを設定する

API を使用して組織内のチームのロールを表示および設定するには、次の手順に従います。

前提条件

手順

  1. 組織のチームのリポジトリー権限リストが返されるように、次のコマンドを入力します。このコマンドで情報を取得するには、チームがリポジトリーに追加されている必要があることに注意してください。

    $ 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"}]}

  2. 組織内のチームを作成または更新して、adminmember、または 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}

6.1.4.3. API を使用した組織内のチームの削除

API を使用して組織内のチームを削除するには、次の手順に従います。

前提条件

手順

  • DELETE /api/v1/organization/{orgname}/team/{teamname} コマンドを入力すると、組織内のチームを削除できます。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "quay-server.example.com/api/v1/organization/<organization_name>/team/<team_name>"

    このコマンドは CLI に出力を返しません。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.