Elastic Bamboo のセキュリティ
Elastic Bamboo は、Bamboo が Amazon Elastic Compute Cloud (EC2) からコンピューティング リソースを動的に調達できるようにする Bamboo の機能です。
EC2 にあるエージェントと Bamboo サーバー間で送信されるすべてのトラフィックは、SSL 暗号化トンネル経由でトンネリングされます。トンネルは Bamboo サーバーから開始され EC2 インスタンスに至ります。つまり、サーバーへのインバウンド接続を許可する必要はありません。ただし、トンネル ポート上のサーバーからのアウトバウンド トラフィックは許可する必要があります。既定のポート番号は 26224 です。EC2 インスタンスでは、トンネルポートのみがインバウンド トラフィック用に開かれている必要があります。
ただし、VCS (バージョン管理システム) から EC2 へのトラフィックに対して SSL トンネリングは実装されません。Elastic Bamboo を使用するには、VCS を EC2 からアクセスできるようにする必要があります。Elastic Bamboo の VCS の設定に関するセクションを参照してください。VCS の保護に関するガイドラインが記載されています。
インターネットからアクセスできる通常のホストと同様に、リモート エージェント インスタンスの 1 つが侵害されると、Bamboo インストールが多くのセキュリティ上の脆弱性にさらされる可能性があることに注意してください。これらには、機密データ (たとえば、ソース コード、VCS 資格情報) の窃取、悪意のあるコードのエラスティック エージェントへの注入、ビルド キューへの不正アクセス、Bamboo サーバーへの虚偽情報の送信などが含まれます。Bamboo 関連のトラフィックはすべて単一の暗号化された接続を介して送信されることを考えると、そのリスクはそれほど高くなく、VPC (Amazon Virtual Private Cloud) を設定することでさらに軽減できます。VPC では、通常、エラスティック インスタンスにはパブリック IP がありません。つまり、通常の業界標準の VPN 接続以外はインターネットからアクセスできません。
以下のセクションでは、リモート エージェント インスタンスの既定のアクセス ルールと、必要に応じてこれらのルールを変更する方法について説明します。
このページの内容
関連ページ
上の図: Elastic Bamboo のセキュリティ アーキテクチャ
既定の EC2 アクセス ルール
Elastic Bamboo の初回使用時、つまりエラスティック インスタンスの起動時に、AWS アカウントに「elasticbamboo」セキュリティ グループが設定されます。このセキュリティ グループは、基本的には EC2 へのアクセスを許可される IP アドレスのセットです。既定では、セキュリティ グループには 2 つのルールが含まれます。1 つは Elastic Bamboo 自体の接続を許可するルールで、もう 1 つは SSH 経由の接続を許可するルールです。
EC2 セキュリティ グループには、AWS マネジメントコンソールからアクセスできます (左側のメニューの [設定] の [セキュリティグループ] を参照してください)。
上のスクリーンショット: AWSコンソール - セキュリティグループ
既定の EC2 アクセス ルールの変更
EC2 インスタンスへの追加接続を許可する場合は、「elasticbamboo」セキュリティ グループの [Allowed Connections (許可された接続)] セクションにエントリを追加することで許可できます。EC2 セキュリティ グループへのアクセス方法については、前のセクション「既定の EC2 アクセス ルール」を参照してください。
Elastic Bamboo で VPC を使う
VPC機能はBamboo 4.3 で利用できます。Amazon Virtual Private Cloud (Amazon VPC) では、Amazon Web Services (AWS) Cloud の非公開で独立したセクションをプロビジョニングして、仮想ネットワークで AWS リソースを起動できます。既定では、そのネットワークで実行されているインスタンスにはパブリック IP がなく、VPC 外部のコンピューターにはアクセスできません。また、会社のデータセンターと VPC の間にハードウェア仮想プライベート ネットワーク (VPN) 接続を作成し、AWS クラウドを会社のデータセンターの拡張として活用することもできます。VPC の詳細については、Amazon Web Services の VPC ページをご覧ください。
VPC を使用すると、エージェント (および VPC で起動されたその他のインスタンス) がインターネット上で利用できなくなります。VPC を使用して実現できる基本的なシナリオはいくつかあります。
- 会社のデータセンターへの安全なアクセス - エージェントは、VPN 接続を介して内部ネットワークからリソースに安全にアクセスできます。このようにして、バージョン管理システムや、エラスティック エージェントからのデータベースなどのその他の内部リソースを、公開してアクセス可能にすることなく、安全に使用できます。
- 一部の EC2 インスタンスをインターネットから非表示にする - エージェントは内部ネットワークを使用して VPC 上のその他のホストと通信できます。これにより、たとえば、Windows ベースの DBMS でエージェントを設定し、別のプラットフォームからその DBMS に対してテストを実行するもう 1 つのエージェントを設定できます。VPC 外部のコンピューターは外部 IP を持たないため、DBMS にアクセスできません。そのユースケースでは VPN を使用する必要はありません。エージェントに Elastic IP を割り当てるだけで十分です。
- フルクラウド デプロイ - Bamboo サーバーを Amazon の VPC でホストし、VPC 内のすべてのエージェントを非表示にすることができます。これにより、VPC にあるその他のリソースにもアクセスできるようになります。Bamboo サーバーには、VPN または Elastic IP を使用してアクセスできます。
Elastic Bamboo のバージョン管理システム (VCS) のセットアップ
以下の手順を実行して、バージョン管理システムが Elastic Bamboo 用に安全に設定されていることを確認することをお勧めします。
1.バージョン管理システムをパブリック インターネットにアクセスできるようにする
これは、エージェント接続に VPC を使用していない場合にのみ必要です。詳細については、「Bamboo と VPC の使用」をご参照ください。
VCS から EC2 への接続には SSL トンネリングが実装されていないため、Elastic Bamboo を使用するには、VCS をパブリック インターネットにアクセスできるようにする必要があります。VCS がファイアウォールの内側にある場合は、ファイアウォールでアクセスポイントを設定する必要があります。その方法の詳細については、お使いのファイアウォール ソフトウェアのドキュメンテーションを参照してください。
2.VCS 認証とアクセス制御を使用する
VCS の認証機能とアクセス制御機能を有効にして、VCS へのアクセスを保護することを強くお勧めします。詳細については、VCS のドキュメンテーションを参照してください。
3.VCS への暗号化された接続を使用する
また、VCS には暗号化された接続を使用することを強くお勧めします (たとえば、SSL)。詳細については、VCS のドキュメンテーションを参照してください。