セキュリティの概要
このドキュメントでは、 CircleCI の使用時にデータやシークレットのセキュリティを確保するために推奨されるベストプラクティスについて概説します。 CircleCI の使用を開始するにあたり、CircleCI ユーザーとして考慮していただきたいセキュリティ上のベストプラクティスを紹介します。
シークレットの保護
ビルドに必要なシークレット (プライベートキー、環境変数) の数を最小限に抑え、定期的にシークレットのローテーションを行ってください。 組織のシークレットを定期的に (チームメンバーが変わるときは特に) ローテーションすることが重要です。
シークレットを定期的にローテーションすることで、シークレットの有効期限が設けられ、キーが漏洩した場合の潜在的なリスクを軽減できます。 使用するシークレットは範囲を制限し、 必ず ビルドに必要な最低限の権限のみを付与してください。
ご使用の CircleCI 以外のプラットフォームのロールと権限のシステムを確認してください。 たとえば、AWS の IAM 機能や GitHub の マシンユーザーの機能などです。
スクリプトを記述したり、コマンドラインで作業する際は、 シークレットの安全な取り扱い に記載されているアドバイスに従ってください。
環境変数の保護
複数のチームで環境変数を共有する場合は、選択したセキュリティグループで 制限付きコンテキスト を使用してください。
パブリックの オープンソースプロジェクト では、環境変数を共有するかどうかを明記します。
CircleCI では、プロジェクトの設定を変更して、環境変数を フォークされたバージョンのリポジトリ に渡すかどうかを制御できます。 これはデフォルトでは 有効化 されていません。 この設定とオープンソースのセキュリティの詳細については、 オープンソースプロジェクトのドキュメント を参照してください。
VCS の保護
VCS プロバイダーから付与された組織の権限を確認し、 最小権限の原則 にできる限り従ってください (組織に属している場合)。
VCS では必ず 2 要素認証 (2FA) を使用してください。
VCS アカウントが漏れると、悪意のあるユーザーによりコードがプッシュされたり、シークレットが盗まれたりする危険性があります。