コンテンツにスキップ

プラクティス集@CircleCI

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. CircleCI に関する脆弱性対策

CircleCI に関する脆弱性対策とは

対象のソースコードの脆弱性ではなく、CircleCI に関するそれに対処する。


認証/認可

▼ CircleCI の操作ユーザーの場合

CircleCI の操作アカウントを認証し、認可する。

利便的かつ安全な認証/認可方法を選ぶ。

認証/認可方法 二要素認証 推奨/非推奨
ベーシック認証 - 非推奨
OAuth あり 推奨
なし 非推奨
OIDC あり 推奨
なし 非推奨
SAML あり 推奨
なし 非推奨

▼ CircleCI 自体の場合

CircleCI を認証し、認可する。

期限 説明 方法 推奨/非推奨
恒久的 CircleCI を恒久的に認証し、また同様に恒久的に認可する。 ・AWS の場合、ツールに IAM ユーザを紐付けておき、この IAM ユーザーに常に IAM ロールを紐付けておく。
・GCP の場合、ツールに IAM ユーザを紐付けておき、この IAM ユーザーに常にロールを紐付けておく。
非推奨
一時的 CircleCI を一時的に認証し、また同様に一時的に認可する。 ・AWS の場合、ツールに IAM ユーザー/SAML ユーザー/OIDC ユーザーを紐付けておき、AWS STS で一時的に認証する。また、AssumeRole によるスイッチロールでは、認可スコープを一時的に付与する。
・GCP の場合、ツールに IAM ユーザーを紐付けておき、条件付きロールバインディングで認可スコープを付与する。
推奨


機密な変数やファイルの管理

たとえ、CircleCI から機密な変数が漏洩しても、復号しにくいようにする。

CircleCI の実行環境に出力する変数やファイルは、base64 形式や暗号化キーであらかじめエンコードしておき、使用時にデコードまたは復号する。


02. 事後処理

通知

CI パイプラインと CD パイプライン上で実行しているステップ (例:ホワイトボックステスト、デプロイなど) の結果が通知されるようにする。

通知があることと品質を高めることは直接的には関係ないが、開発者の作業効率が上がるため、間接的に品質を高めることにつながる。