# コードおよびコンテナスキャンのためのIPアドレスの許可

Gitプロバイダーが特定の静的IPアドレスからのコードへのアクセスのみを許可している場合、スキャンを開始する前に、コードスキャン用のAikidoの静的IPアドレスをホワイトリストに登録する必要があります。

## どのIPを許可リストに登録すべきか？

コードおよびコンテナスキャンのトラフィックは、Gitプロバイダーやレジストリが稼働しているリージョンではなく、**お使いのAikidoワークスペース**がホストされているリージョンから送信されます。Aikidoへのログインに使用しているURLを確認し、そのリージョンのIPを許可リストに登録してください：

| Aikido URL                                     | リージョン  | IPリスト               |
| ---------------------------------------------- | ------- | --------------------- |
| [app.aikido.dev](https://app.aikido.dev)       | EU      | EUベースのIPアドレス |
| [app.us.aikido.dev](https://app.us.aikido.dev) | US      | USベースのIPアドレス |
| [app.aikidogov.us](https://app.aikidogov.us)   | FedRAMP | FedRAMPのIPアドレス  |
| [app.au.aikido.dev](https://app.au.aikido.dev) | AU      | AUベースのIPアドレス |
| [app.me.aikido.dev](https://app.me.aikido.dev) | ME      | MEベースのIPアドレス |

{% hint style="warning" %}
`app.aikido.dev` でログインしている場合、Gitプロバイダーやレジストリが米国でホストされていても、スキャンには**EU**のIPが使用されます。この場合にUSのIPのみを許可リストに登録すると、スキャンが失敗します。
{% endhint %}

{% hint style="warning" %}
`app.aikidogov.us` でログインしている場合、スキャンにはFedRAMPのIPが使用されます。商用のUS IP（`app.us.aikido.dev`）はFedRAMPワークスペースでは機能しません。
{% endhint %}

## IPアドレス

### EUベースのIPアドレス（`app.aikido.dev`）

* 52.214.244.18
* 18.202.209.180
* 52.50.198.227
* 52.51.98.186

### USベースのIPアドレス（`app.us.aikido.dev`）

* 3.211.221.73
* 54.163.131.24
* 54.225.143.47

### FedRAMPのIPアドレス（`app.aikidogov.us`）

* 18.252.220.64
* 16.64.88.75
* 18.252.60.10
* 16.64.93.238

### MEベースのIPアドレス（`app.me.aikido.dev`）

* 3.29.13.194
* 40.172.18.244
* 40.172.67.79

### AUベースのIPアドレス（`app.au.aikido.dev`）

* 3.24.60.82
* 52.65.15.49

開放する必要があるポートは、少なくともHTTPS用のポート**443**です。Dockerコンテナレジストリの場合は、追加のポートが必要になることがあります。例えば、Gitlab Container Registryではポート**4567**を開放する必要があります。

IPを追加した後、リポジトリを再スキャンして接続を確認してください。


サードパーティプロバイダーでIPアドレスをホワイトリストに登録する手順については、以下のリソースを参照してください。

* [Cloudflare WAF](https://developers.cloudflare.com/waf/custom-rules/use-cases/allow-traffic-from-ips-in-allowlist/)
  * Cloudflare Turnstileは、特定のクライアントIPアドレスの許可リスト登録をサポートしていません。[Aikidoのスキャントラフィックに対してTurnstileをバイパスする必要がある場合は、アプリケーションコード内で行う必要があります。](https://developers.cloudflare.com/turnstile/tutorials/conditionally-enforcing-turnstile/) 以下の両方の条件を満たす場合にのみバイパスすることをお勧めします。
    1. リクエストがAikidoのIP範囲から送信されている
    2. 上記のとおり、リクエストのヘッダーに`aikido` User Agentが含まれている
* [Azure WAF](https://learn.microsoft.com/en-us/azure/web-application-firewall/ag/custom-waf-rules-overview)
* [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-ipset-match.html)。
  * Application Load BalancerまたはCloudFrontの背後にあるWAFの場合、[WAFは`X-Forwarded-For`ヘッダー内の最後のIPアドレスをチェックする必要があります](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-forwarded-ip-address.html)。
* [Vercel WAF](https://vercel.com/docs/vercel-firewall/vercel-waf/custom-rules)
  * 信頼できるIPには[「bypass」アクション](https://vercel.com/docs/vercel-firewall/firewall-concepts#bypass)を使用してください

{% hint style="info" %}
[IPアドレスリストはJSON配列としても入手できます](https://aikido.help/ips/)
{% endhint %}
