2.2. ユーザーリポジトリーへのロボットアクセスの許可

ロボットアカウントは、Red Hat Quay レジストリーのリポジトリーへの自動アクセスを設定するために使用されます。これらは OpenShift サービスアカウントと同様です。ロボットアカウントを設定する場合は、以下を実行します。

  • ロボットアカウントに関連付けられる認証情報を生成します。
  • リポジトリーおよびロボットがイメージをプッシュしたり、プルできるイメージを特定します。
  • 定義されたそれぞれのリポジトリーにアクセスするために、異なるコンテナークライアント(Docker、podman、Kubernetes、Mesos など) で使用するために生成される認証情報をコピーし、貼り付けます。

それぞれのロボットアカウントは、単一のユーザー namespace または組織に制限される点に留意してください。たとえば、ロボットアカウントはユーザー jsmith がアクセスできるすべてのリポジトリーへのアクセスを提供できますが、そのユーザーのリポジトリー一覧にないリポジトリーへのアクセスを提供することはできません。

以下では、リポジトリーへのアクセスを許可するロボットアカウントを設定する手順を説明します。

  1. 「Robot」アイコンを選択します。「Repositories」ビューの左側の列で「Robot」アイコンを選択します。
  2. ロボットアカウントを作成します。「Create Robot Account」ボタンを選択します。
  3. ロボット名を設定します。名前および説明を入力し、「Create robot account」ボタンを選択します。ロボット名はユーザー名と設定するロボット名の組み合わせになります (例: jsmith+myrobot)。
  4. パーミッションをロボットアカウントに追加します。ロボットアカウントの「Add permissions」画面で、以下のようにロボットがアクセスできるようにするリポジトリーを定義します。

    • ロボットがアクセスできる各リポジトリーの横にチェックマークを付けます。
    • 各リポジトリーについて、以下のいずれかを選択し、「Add permissions」をクリックします。

      • None: ロボットにはリポジトリーへのパーミッションがありません。
      • Read: ロボットはリポジトリーを表示し、これからプルできます。
      • Write: ロボットはリポジトリーから/への読み取り (pull) および書き込み (push) を実行できます。
      • Admin: リポジトリーから/への pull および push を実行するためのアクセスがあります。また、リポジトリーに関連付けられる管理タスクを実行することもできます。
    • 「Add permissions」ボタンを選択して設定を適用します。
  5. ロボット経由でリポジトリーにアクセスするための認証情報を取得します。「Robot Accounts」ページに戻り、ロボットアカウント名を選択してそのロボットアカウントの認証情報を表示します。
  6. トークンを取得します。以下の図に示されているように「Robot Token」を選択し、ロボット用に生成されたトークンを確認します。トークンをリセットする必要がある場合は、「Regenerate Token」を選択します。

    トークンを再生成すると、このロボット用の以前のトークンが無効になる点を理解しておく必要があります。

    Select Options drop-down to change user passwords

  7. 認証情報を取得します。生成されたトークンに問題がなければ、以下の方法で生成される認証情報を取得します。

    • Kubernetes Secret: これを選択し、Kubernetes プルシークレットの yaml ファイルの形式で認証情報をダウンロードします。
    • rkt Configuration: これを選択し、json ファイルの形式で rkt コンテナーランタイムの認証情報をダウンロードします。
    • Docker Login: これを選択し、認証情報が含まれる docker login コマンドラインすべてをコピーします。
    • Docker Configuration: これを選択し、Docker config.json ファイルとして使用するファイルをダウンロードし、認証情報をクライアントシステムに永続的に保存します。
    • Mesos Credentials: これを選択し、Mesos 設定ファイルの uris フィールドで特定できる認証情報を提供する tarball をダウンロードします。