AWS CodeBuild 向け導入ガイド

技術サポートが必要ですか?   導入支援のご依頼・ご相談       

AWS CodeBuild に Sider Scan を導入する方法について記述します。

事前準備

まず、AWS のアカウントを持ち、CodeCommit でコード管理を行い、CodeBuild, CodePipeline を使用し CI/CD を使用していることが条件となります。また、Sider Scan のアーティファクトの保存読込のため、S3 のバケット作成とアクセス権限も必要となります。

また、Docker Hubから、Sider Scan のDocker イメージを取得するために、Docker Hub のアカウントも必要となります。

ビルドプロジェクトの作成

ビルドの環境は上図のように設定します。新しい環境イメージはマネージド型イメージ、オペレーティングシステムは Ubuntu、ランタイムは Standard、イメージはデフォルトのもの、環境タイプは Linux を選びます。Docker を使用するため、特権付与をお願いいたします。Docker アカウントの環境変数 $DOCKERHUB_USERNAME, $DOCKERHUB_PASSWORD の追加もお願いいたします。

S3は、解析結果とそのレポートの保存のために使用します。まず、Sider Scan 用のバケットをご用意ください。下記の Buildspec で、環境変数 ${S3のバケット名}、${S3の公開URL} が必要となりますので設定してください。注意点として、以下の設定例では、S3 に保存した解析結果の詳細画面を誰でも閲覧可能な状態となっています。実運用の際は、IP制限をかけるなど、貴社セキュリティポリシーに合うように、S3 のアクセス制限の設定をお願いいたします。詳しくはこちらの資料を参照ください。

${契約メールアドレス} には、Sider Scan を使用される代表者のメールアドレスを記載下さい。解析後のレポートもこちらのメールアドレスに送信されます。

ビルド詳細内の Buildspec は次のように設定します。

version: 0.2

phases:
  install:
    commands:
       - echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin
       - docker image pull sider/sider_scan_runner:latest
  pre_build:
    commands:
       - aws s3 cp s3://${S3のバケット名}/${リポジトリ名}/output.radump ./ || true
  build:
    commands:
       - |
        cat << JSON > .siderscan.json
        {
          "report": {
            "mail": {
              "to": ["${契約メールアドレス}"],
              "useBuiltInProvider": true
            }
          },
          "scan": {
            "result": {
              "url": "${S3の公開URL}/${リポジトリ名}/public/${CODEBUILD_BUILD_NUMBER}/"
            }
          },
          "enableSiderScanTracing": {
            "userEmail": "${契約メールアドレス}"
          }
        }
        JSON
       - docker run --rm -v $(pwd):/target -w /target sider/sider_scan_runner:latest sider run /target
  post_build:
    commands:
       - aws s3 sync scan_result s3://${S3のバケット名}/${リポジトリ名}/public/${CODEBUILD_BUILD_NUMBER}/scan_result --acl public-read
       - aws s3 cp output.radump s3://${S3のバケット名}/${リポジトリ名}/output.radump

Sider Scan は、初回の解析はリポジトリ全体のソースコードを解析します。2回目以降の解析に関しては、前回の解析内容を取得して、前回解析時から変更のあったファイルのみ分析します。

より高度な設定

Sider Scan 本体に関する詳しい設定に関しては、

Sider Scan の高度な設定
Sider Scan 設定リファレンスガイド

を参照下さい。