# GitLab Self Managed Container Registry

GitLab Self Managed Container Registry を Aikido と連携して、コンテナの既知の脆弱性をスキャンできます。

この機能を有効にするには、以下の簡単な手順に従ってください：

**ステップ 1：** GitLab アカウントにログインして、必要な情報を収集します。

ユーザー名を確認する必要があります（スクリーンショットを参照）

![](https://help.aikido.dev/_assets/5f47e080c18d/ucarecdn-7a56ad48-6f3c-4291-97c1-b36896ef0de0.png)

**ステップ 2：** コンテナレジストリが存在するグループ ID をコピーします（スクリーンショットを参照）

![](https://help.aikido.dev/_assets/d6f5fd1508fc/ucarecdn-9c7c898a-dc4e-4169-82c2-708df1c479f1.png)

**ステップ 3：** **Personal Preferences** >> **Access tokens** に移動し、Aikido 用の新しいパーソナルアクセストークンを作成します（[直接リンク](https://gitlab.com/-/user_settings/personal_access_tokens)）。正しいスコープ `read_api`、`read_registry` を設定してください

{% hint style="warning" %}
**Impersonation Token** ではなく、必ず **Personal Access Token** を作成してください。
{% endhint %}

![](https://help.aikido.dev/_assets/97ead855a9bb/ucarecdn-167e7af9-436c-43f9-a585-a6bd0d693234.png)

**ステップ 4：** 収集した情報を Aikido に入力します（直接リンク：[https://app.aikido.dev/settings/container-image-registry/add/gitlab-self](https://app.aikido.dev/settings/container-image-registry/add/gitlab-self)）

![GitLab セルフホスト型コンテナイメージレジストリを必要な認証情報で接続するためのフォーム。](https://help.aikido.dev/_assets/52a1486fa611/ucarecdn-1d74b1b9-dacb-49e5-840f-1d3e7e38ab6e.png)

**ステップ 5：** Aikido が、アクセス可能なすべてのコンテナリポジトリを検出して一覧表示します。

**ステップ 6：** 検出結果の重複排除をより適切に行うため、リポジトリをコードリポジトリにリンクできます。この手順は任意です！

**ステップ 7：** レジストリの横にあるアクションメニューで「scan repos in registry」をクリックして開始します。結果は Feed に表示されます！

## 内部ネットワーク上のレジストリを接続する（Broker）

GitLab インスタンスまたはそのコンテナレジストリにインターネットからアクセスできない場合は、[Aikido Broker](https://help.aikido.dev/docs/docs-ja/miscellaneous-info/aikido-broker-for-internal-applications) を介して接続してください。

{% hint style="warning" %}
GitLab は通常、コンテナレジストリを GitLab インスタンスとは別のホストで提供します。**両方**を Broker リソースとして追加してください：

1. GitLab インスタンスの URL（例：`https://gitlab.example.com`）
2. レジストリの URL（例：`https://registry.example.com`）

レジストリの URL は、GitLab の **Deploy > Container Registry**、または `gitlab.rb` の `registry_external_url` 設定で確認できます。
{% endhint %}

{% stepper %}
{% step %}
**両方のリソースを Broker に追加する**

[Broker Clients ページ](https://app.aikido.dev/settings/integrations/broker/clients)で、GitLab インスタンスの URL とレジストリの URL を Broker クライアントのリソースとして追加します。
{% endstep %}

{% step %}
**GitLab インスタンスの Broker URL を使用する**

Aikido のレジストリフォーム（ステップ 4）で、**GitLab インスタンス**リソースの Broker URL を **Instance Url** フィールドに入力します。レジストリの Broker URL をどこかに貼り付ける必要はありません。
{% endstep %}

{% step %}
**レジストリをスキャンする**

ステップ 7 の説明に従ってスキャンを開始します。`unable to login to registry ... Client.Timeout exceeded` が表示される場合は、レジストリのホストが Broker リソースに含まれていないか、Broker がそのホストにアクセスできません。Broker の `ALLOWED_INTERNAL_SUBNETS` および `DNS_SERVERS` 設定を確認してください。
{% endstep %}
{% endstepper %}

***
