AWS 内の Bitbucket を保護する

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページでは、AWS で Bitbucket を実行および保守する際のセキュリティ ベスト プラクティスについて説明します。

Amazon Virtual Private Cloud (VPC) およびサブネット

Amazon VPC を使用すると、定義した仮想ネットワークで AWS リソースを起動できます。この仮想ネットワークは独自のデータ センターを運用していた従来のネットワークに非常によく似ていますが、AWS の拡張可能なインフラストラクチャのメリットを備えています。詳細は、「Amazon EC2 および Amazon Virtual Private Cloud」を参照してください。

サブネットは、VPC 内の IP アドレス範囲です。AWS リソースを選択したサブネットで起動できます。インターネット接続が必要なリソースにはパブリック サブネットを、インターネットに接続されないリソースにはプライベート サブネットを使用します。

VPC およびサブネットの全般的な概要については、Amazon の記事「VPC とサブネット」を参照してください。

VPC のセキュリティを強化するため、次の 1 つ以上を有効化できます。

  • 不正なネットワーク アクティビティから保護するために、ファイアウォール仮想アプライアンス/AMI で VPC を保護する
  • サイト間 VPN を設定して、Bitbucket Server とユーザーとの間で情報が安全に転送されるようにする
  • 不正なネットワーク アクティビティが発生した際に検出するよう、侵入防止および侵入検出仮想アプライアンスを設定する
  • Amazon CloudTrail を有効化して VPC の API 操作を記録し、ネットワーク変更の監査証跡を残す

Atlassian Standard Infrastructure

AWS クイック スタートで Bitbucket をデプロイした場合、Atlassian Standard Infrastructure (ASI) が使用されます。ASI は、アトラシアンのすべての Data Center 製品で必要なコンポーネントを含む仮想プライベート クラウド (VPC) です。詳細については、「AWS の Atlassian Standard Infrastructure (ASI)」をご参照ください。

このページの内容

セキュリティ グループ

セキュリティ グループは、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォールとして機能します。新しく起動されたインスタンスに適用されるセキュリティ グループは、起動方法によって異なります。

  • AWS コンソールまたは API 経由でインスタンスを起動した場合、EC2 の起動プロセスで、新しいセキュリティ グループを作成するか、1 つ以上の既存のセキュリティ グループをそのインスタンスに関連付けることができます。Bitbucket へのインバウンド アクセスにはポート 22、80、443、および 7999 のみを許可し、もっとも厳格な IP 範囲からのみアクセスを許可することをおすすめします。
  • BitbucketServer.template または BitbucketDataCenter.template 経由で起動した場合、AWS CloudFormation はスタックの一部としてセキュリティ グループを作成および管理し、指定されたアドレスで構成される許可された IP 範囲から、ポート 22、80、443、および 7999 でのインバウンド アクセスを許可します。許可された IP 範囲にはもっとも厳格な値を指定し、起動後に、セキュリティ グループへの不要なインバウンド アクセスを追加しないようにすることをおすすめします。

セキュリティ グループを使用して、Bitbucket インスタンスへの受信トラフィックを必要最低限な量に制限することをおすすめします。

詳細は、「Linux インスタンスの Amazon EC2 セキュリティ グループ」を参照してください。 

HTTPS を有効化するように SSL を構成する

HTTPS を有効にするには、有効な SSL 証明書が必要です。SSL 証明書は、商業ベースのサービスを提供する VeriSignDigiCert または Thawte などの信頼できるサードパーティ認証局 (CA) によって発行されている必要があります。アトラシアンではこのようなサービスは提供していません。 

CA から適切な SSL 証明書を取得したら、AWS 証明書マネージャにインポートできます。これにより、後で AWS に Bitbucket をデプロイするときに証明書を使用できます。これを行うには (たとえば、クイック スタートで Bitbucket をデプロイする場合)、証明書の Amazon リソース番号 (ARN) を提供する必要があります。

有効な SSL 証明書をインストールするまで、新しい Bitbucket Server と Data Center インスタンスは、HTTPS ではなくプレーンな HTTP 経由でリクエストを処理するように構成されます。つまり、すべてのパスワードとデータは、パブリック インターネット経由で暗号化されずに送信されます (ユーザーが仮想プライベート ゲートウェイ経由で AWS に接続されている場合を除く)。

SSL を有効または無効にした場合のロード バランサ設定

SSL を有効にして Bitbucket をデプロイすると、ロード バランサのリスナーは次のようにセットアップされます。

ロード バランサのプロトコルロード バランサのポートインスタンスのプロトコルインスタンスのポート
http80http7991
HTTPS443http7990

初回起動時に SSL 証明書をセットアップしていない場合、ELB は次のように 1 つの HTTP リスナーでのみ設定されます。

ロード バランサのプロトコルロード バランサのポートインスタンスのプロトコルインスタンスのポート
http80http7990

すべての自己署名 SSL 証明書を置き換える (Bitbucket Server の場合)

クイック スタートを使用して Bitbucket Data Center をデプロイする場合は、起動時にすぐに適切な CA 証明書をデプロイメントに提供できます。ただし、BitbucketServer.template を使用して (または「AWS で Bitbucket Server を起動する」の説明にしたがって手動で) Bitbucket Server をデプロイする場合、現時点では初回起動時に自身の SSL 証明書をインストールすることはできません。 

Bitbucket Server インスタンスをインターネットに接続する場合、ATL_SSL_SELF_CERT_ENABLED=true を設定し、ご利用のインスタンスで起動時に HTTPS を有効化することをおすすめします。この設定を行うことで、Bitbucket Server インスタンス用の自己署名証明書が生成されます。

自己署名証明書は、適切な CA が発行した証明書と同じレベルのセキュリティは提供しません。Bitbucket Server インスタンスが自己署名証明書を使用している場合、次のようになります。

  • ほとんどのブラウザでは、Bitbucket Server Web インターフェイスに進むときにセキュリティ警告が表示されます。これは無視する必要があります。
  • git クライアントは、git config --global http.sslVerify false で自己署名証明書を無視するように構成されている場合を除き、Bitbucket Server への HTTPS 経由での接続を拒否します。
  • Bitbucket Server の REST API を使用する、自己署名証明書を許可しないアプリケーション リンクや他のアプリケーションとの連携は失敗する場合があります。

このため、すべての自己署名 SSL 証明書をドメイン用の適切な CA 証明書に置き換えることをおすすめします。これを行うには、次の操作を実行します。

  1. 証明書ファイルを /etc/nginx/ssl/my-ssl.crt などにに配置します。
  2. password-less 証明書キー ファイルを /etc/nginx/ssl/my-ssl.key に配置します。
  3. /etc/nginx/nginx.conf を次のように編集します。
    1. /etc/nginx/ssl/self-ssl.crt への参照を /etc/nginx/ssl/my-ssl.crt に置き換えます。
    2. /etc/nginx/ssl/self-ssl.key への参照を /etc/nginx/ssl/my-ssl.key に置き換えます
  4. /etc/nginx/ssl/my-ssl.crt  のコンテンツを既定のシステム PKI バンドル (/etc/pki/tls/certs/ca-bundle.crt) に適用し、インスタンスのスクリプト (DIY バックアップなど) が正常に curl を実行されるようにします。 
  5. nginx を再起動します。

デプロイ後に SSL 証明書をインストールまたは変更する

クイック スタートを使用して Bitbucket Data Center を初めてデプロイする場合は、適切な CA 証明書を提供することをおすすめします。これを行うには、証明書を AWS Certificate Manager にインポートし、[SSL 証明書の ARN] フィールドから Amazon リソース番号を指定する必要があります。

クイック スタートを使用したデプロイ中にこれを行わなかった場合 (または自己署名証明書を使用した場合)、初回デプロイにいつでも SSL 証明書をインストールまたは変更できます。

  1. AWS コンソールで、[サービス] > [CloudFormation] に移動してスタックを選択し、[スタックの更新]をクリックします。
  2. [SSL 証明書の ARN] フィールドで証明書の Amazon リソース番号 (ARN) を指定します。詳細については、「AWS Certification Manager への証明書のインポート」を参照してください。
  3. <Bitbucket home directory>/shared ディレクトリにある bitbucket.properties ファイルで、HTTP から HTTPS へのリダイレクトを手動で設定します (「HTTP リクエストを HTTPS にリダイレクト」を参照)。
  4. すべてのアプリケーション ノードで次のコマンドを実行して、Bitbucket サービスを再起動します。

    sudo service atlbitbucket restart

Bitbucket インスタンスのホスト名が変更されている場合、「Bitbucket Server のベース URL を指定する」ページの説明にしたがい、Bitbucket のベース URL を更新する必要があります。

システムを最新に保つ

最大限のセキュリティを確保し、悪用や事故の可能性を最小限に抑えるため、パッチや更新を使用して Bitbucket Server インスタンスを最新に保つことは非常に重要です。Bitbucket Server の初回起動時に、AMI インスタンスはその時点の最新の Bitbucket Server の公式リリースをダウンロードします。このため、AWS で Bitbucket Server を初めて使用する際には必ず最新の Bitbucket Server を使用することになります。

更新を試みる前には必ずインスタンスのバックアップを作成するようにしてください。

Amazon Linux のセキュリティ アップデート

Bitbucket Server AMI は Amazon Linux に基づいており、Bitbucket Server AMI の最新リリースの公開時には、最新バージョンの Amazon Linux が使用されます。稀に、Amazon Linux で使用されるライブラリやユーティリティに脆弱性が見つかり、アップデートが Amazon Linux AMI yum リポジトリに投稿されることがあります。アトラシアンでは必要に応じて新しいバージョンの Bitbucket Server AMI を発行し、新しい Bitbucket Server AWS インスタンスがこれらのアップデートで開始されるようにしますが、既存のインスタンスを管理している場合は、これらのアップデートを自分で適用する必要がある可能性があります。デフォルトでは、Amazon Linux は再起動時にすべてのセキュリティ アップデートを適用します。管理者が "yum update --security" を実行することもできます。 

Amazon Linux AMI yum リポジトリから Bitbucket Server インスタンスに他のアップデートを適用することもできます。更新された任意のパッケージが、実行している Bitbucket Server バージョンをサポートしていることを確認する必要があります。Bitbucket Server バージョンの要件は「サポート対象プラットフォーム」ページで確認できます。

Bitbucket Server のアップデート

アトラシアンの Bitbucket Server チームは一定のリリース頻度の確保に取り組んでおり、新機能、パフォーマンス、およびセキュリティの修正を含むリリースを定期的に発行しています。Bitbucket Server をできる限り最新に保つことを強くおすすめします。既存のインスタンスで Bitbucket Server を更新するには、「Bitbucket Server アップグレード ガイド」に従います。

最終更新日 2020 年 5 月 26 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.