なぜDevinを自己ホスト型システムと連携するのか?
概要
- アクセスを小さく管理された範囲に限定 - Devin の既知の IP からのみ接続可能
- セットアップに要するエンジニアリング工数は数時間以内
- 既存インフラを維持 - クラウドホスト型ソリューションへ移行する必要なし
- 一元管理が可能 - 複数サービス向けに単一のロードバランサーを利用可能(任意)
前提条件
- 社内ネットワークからアクセス可能な セルフホスト型 GitLab(またはその他の SCM システム)
- セルフホスト型アーティファクトリポジトリ(オプション、例:Artifactory や Nexus)
- ファイアウォール、ロードバランサー、DNS を構成できる ネットワーク管理権限
- Devin の静的 IP アドレス - こちら に記載
このインテグレーションは Enterprise プランをご利用のお客様が対象です。サポートが必要な場合は [email protected] までご連絡ください。
セットアップ方法
オプション 1: 直接 IP 許可リスト登録(推奨)
- Devin の IP(こちら に記載)からの受信接続を許可するようにファイアウォールを設定します
- GitLab(または他の SCM)インスタンスが HTTPS 経由でアクセス可能であることを確認します
- 連携設定時に Devin に URL を指定します
- Devin の IP を Artifactory/Nexus の許可リストに追加します
- アーティファクトリポジトリが HTTPS 経由でアクセス可能であることを確認します
- Devin がアーティファクトにアクセスできるよう、適切な認証情報を設定します
アーティファクトリポジトリでロードバランサーを使用している場合、IP 許可リストに関する重要な詳細については、以下の ロードバランサーに関する考慮事項 セクションを参照してください。
オプション 2: 集約型ロードバランサー
- すべてのネットワークフィルタリングを単一の場所で一元管理できる
- 異なるドメインを持つ複数の内部サービスに対応できる
- セキュリティ監査とコンプライアンスを簡素化できる
ロードバランサーに関する考慮事項
- ALB はレイヤー 7 (HTTP/HTTPS) で動作し、高度なルーティング機能を提供します
- トラフィックは NAT を経由するため、バックエンドサービスからは Devin の送信元 IP ではなく、ALB の内部 IP アドレスが見えます
- ALB 配下のアーティファクトリポジトリの場合: リポジトリからはロードバランサーの内部 IP が見えるため、Artifactory/Nexus 側で直接 IP allowlisting を設定する必要があります
- ALB レベルでの IP フィルタリングには AWS WAF を使用してください(下記の例を参照)
- NLB はレイヤー 4 (TCP) で動作し、元の送信元 IP アドレスを保持します
- バックエンドサービスからは Devin の実際の送信元 IP が見えます
- NLB 配下のアーティファクトリポジトリの場合: 送信元 IP が保持されるため、ロードバランサーレベルでの IP allowlisting だけで十分です
- 各 IP アドレスごとにセキュリティグループを手動で設定する必要があります
AWS 実装例
WAF 付き Application Load Balancer(簡単な方法)
ここに記載されている IP アドレスを、IP whitelisting ドキュメント に記載されている実際の IP アドレスに置き換えてください。
Network Load Balancer(セキュリティグループを手動で設定する場合)
DNS 設定
dns-change.json の例:
統合手順
- 接続をテストする - 設定したドメインを使用して、ネットワークの外部からサービスにアクセスできることを確認します
- Devin サポートに連絡する - Cognition に次の情報を連絡してください:
- セルフホスト型 GitLab の URL(例:
https://gitlab.yourcompany.com) - アーティファクトリポジトリの URL(該当する場合)
- 特定の認証要件があればその内容
- セルフホスト型 GitLab の URL(例:
- 統合設定を完了する - Devin チームと連携して接続を最終確定します
- リポジトリを設定する - Devin’s Machine にリポジトリを追加します
ベストプラクティス
- HTTPS を使用する - 常に有効な SSL 証明書付きの HTTPS でサービスを公開する
- 専用のサービスアカウントを作成する - GitLab/SCM システム内で Devin 専用のアカウントを用意する
- アクセスログを監視する - Devin の IP アドレスからの接続ログを定期的に確認する
- セットアップを文書化する - ロードバランサーおよび DNS 構成についての社内ドキュメントを整備しておく
- フェイルオーバーをテストする - ロードバランサーやサービスの障害を問題なく処理できる構成になっていることを確認する
- 定期的なセキュリティ監査 - 公開しているサービスを定期的に見直し、IP アローリストを検証する
トラブルシューティング
- すべての Devin の IP アドレス が許可リスト(allowlist)に登録されているか確認する
- SSL 証明書が有効で信頼されていることを確認する
- DNS レコードが正しく設定され、伝播していることを確認する
- ファイアウォールのルールで HTTPS(ポート 443)のトラフィックが許可されていることを確認する
- サービスアカウントの認証情報が正しいことを確認する
- サービスアカウントが SCM/アーティファクトシステム内で適切な権限を持っていることを確認する
- 許可リスト以外に IP ベースの認証制限がないか確認する
- ロードバランサーのメトリクスを監視し、ボトルネックがないか確認する
- セルフホスティングしているサービスに十分なリソースがあることを確認する
- 自社インフラと Devin のシステムとの地理的な近接性を考慮する
サポート
- app.devin.ai/settings/support から、当社チームとの Slack Connect チャンネルを作成する
- ご利用中のセットアップの詳細を記載して、[email protected] にメールを送信する
- 問題を報告する際は、機密データをマスクしたうえで、関連する設定ファイルを共有する
