GitLab CI/CDとJFrogで完成させるソフトウェアサプライチェーン
ソフトウェアはコーディングだけでは完成しません。ソフトウェアを開発し、高品質なビルドを保証するには、完全なソフトウェアサプライチェーンを管理する必要があります。サプライチェーン全体に セキュリティ上の脅威 が数多く存在するため、顧客に提供するソフトウェアのあらゆる側面(ソフトウェアの作成プロセス全体を含む)を管理することが組織にとって重要です。これは、DevOpsとセキュリティのベストプラクティスを組み込むようにソフトウェアリリースサイクルを設定することを意味します。課題は、これをソフトウェアリリースのシームレスな部分である、継続的なフローとして実行することです。
すでにGitLabをCIワークフローエンジンとして使用している場合は、ソフトウェアリリースが1回限りで終わるわけではないことをご存知でしょう。継続的なセキュリティ、コード管理、ソフトウェアの継続リリース、リリース環境別の管理などを通じて、ソフトウェアサプライ チェーンのフィードバックループを完了する必要があります。これを実現するために、GitLab プロセス を JFrog プラットフォーム と統合して、完全なソフトウェアサプライ チェーン管理ソリューションを提供します。
GitLab CI/CD用のJFrogテンプレートギャラリー
JFrog GitLab テンプレートリポジトリ を使用すると、JFrogプラットフォームを既存のGitLab CI/CDに簡単に統合してセットアップでき、完全なソフトウェアサプライ チェーンを実現できます。
テンプレートギャラリーには、.NET, go, Gradle, Maven, npm, NuGet, Pip, Pipenv, Yarnなどの一般的なビルドツール用にすぐ使用できるテンプレートが含まれています。各テンプレートは、セキュリティ設定や、ビルドインテグレーションのためのJFrog機能を提供します。
たとえば、”audit”テンプレートを使用すると、ソースコードをスキャンしてセキュリティの脆弱性やライセンスコンプライアンスの問題を見つけることができます。
default:
image: maven:3.8.6-openjdk-11-slim
include:
- remote: "https://releases.jfrog.io/artifactory/jfrog-cli/gitlab/v2/.setup-jfrog-unix.yml"
# For Windows agents:
#- remote: "https://releases.jfrog.io/artifactory/jfrog-cli/gitlab/v2/.setup-jfrog-windows.yml"
jfrog-maven-audit:
script:
- !reference [.setup_jfrog, script]
# Configure JFrog Artifactory repositories
- jf mvn-config --repo-resolve-releases $ARTIFACTORY_VIRTUAL_RELEASE_REPO --repo-resolve-snapshots $ARTIFACTORY_VIRTUAL_SNAPSHOT_REPO
# Audit Maven project
- jf audit
after_script:
# Cleanup
- !reference [.cleanup_jfrog, script]
ソース内の依存関係のスキャン について詳しくはこちら> |
テンプレートの使用方法
テンプレートをGitLabリポジトリにコピーし、必要に応じて変更し、GitLab CI/CD変数を設定します(インストールセクション で説明されています)。これでパイプラインを実行する準備が整いました。
使い方
各テンプレートの先頭にある include ステートメントは、多くのJFrog Platform機能に素早く簡単にアクセスできるようにする初期化スクリプトをパイプラインに追加します。.setup_jfrogパイプラインジョブでスクリプトを参照すると、次のことが行われます。
- JFrog CLI をインストールします
- JFrog CLI をJFrogプラットフォームと連携するように設定します
- ビルド名とビルド番号の値を設定して、Artifactoryへのビルド情報の公開を許可します。
- オプションで、デフォルトのDockerレジストリを Artifactory Dockerレジストリ に置き換えます
JFrog CLIとGitlab CIのシームレス統合 で、顧客がどのように実現したかもお読みください 。
さらにJFrogプラットフォームを知る
コンテナー、パッケージ、ライブラリー、またはその他のタイプのバイナリー・ファイルを使用する場合でも、JFrog Artifactory が対応します。業界標準として、ArtifactoryはDevOps環境のバックボーンとして機能し、ソフトウェア開発チームにバイナリアーティファクトを保存、管理、リリースするための一元的な場所を提供します。
Artifactoryは、GitLab CIなどの一般的なCI/CDツールと完全に 統合 されているため、すべてのバイナリアーティファクトを単一の一元化されたユニバーサルリポジトリで簡単に管理でき、さまざまな種類のバイナリファイルに複数のツールを使用する必要がなくなり、ソフトウェアリリースが合理化されます。よってプロセスは改善され、エラーのリスクを軽減します。さらに重要なことは、Artifactoryはソフトウェアの規模のスケールに合わせた構築も可能です。
ソフトウェア成果物のライフサイクルを安全に管理するには、実稼働環境で実行される資産、つまりソフトウェアバイナリに焦点を当てた真のサプライ チェーン管理ソリューションが必要です。
JFrog プラットフォームの独自機能 には、複数のロケーションでも一貫した信頼性の高いアクセスを実現するサードパーティパッケージのプロキシとキャッシュのほか、30を超えるパッケージタイプのエンタープライズグレードのサポート、マルチサイトサポート、ソースコードとバイナリの両方に重点を置いた 継続的なセキュリティ監視、膨大な脆弱性リストからのインパクトの優先順位付け、実用的なポリシー、信頼できるクラウドでの稼働時間保証SLAが含まれています。
その他の開発者向けツール
私たちは、JFrogテンプレートギャラリーと以下のオープンソースツールを開発者が利用して始められることを嬉しく思います。
- JFrog Frogbot – Gitでプルリクエストのセキュリティ脆弱性を自動スキャン。
- JFrog IDE インテグレーション – VS Code, IntelliJ IDEA, Eclipseなどの開発者用プラグインと拡張機能により、開発者は開発段階の早い段階でセキュリティの脆弱性を発見して修正できます。
- JFrog ビルドインテグレーション – Jenkins CI, GitHub Actions, Azure DevOps, Bambooなどを含む開発者向けプラグインと拡張機能により、開発者によるCIシステムへの統合を可能にします。
いつでも喜んで支援します!JFrog GitLabテンプレートリポジトリ はオープンソースです。みなさんからのコントリビューションもいつでも大歓迎です。プルリクエストを作成し、Issueをオープンして私たちと協力しましょう。