コンテンツにスキップ

Local Code Scanning向けAWS CodePipelineセットアップ

Aikido Security Local Scannerは、環境内でAikido Securityスキャンを実行できるツールで、コードが社内から一切出ないことを保証します。スキャンはローカルで行われ、その結果がAikido Securityプラットフォームにアップロードされます。このセットアップにより、レポート目的でLocal ScannerをAWS CodePipelineに簡単に組み込めます。

Local Scanningのセットアップ方法

Section titled “Local Scanningのセットアップ方法 ”

前提条件: Local Scanning用のアカウントを作成済みであることを確認してください。Local Scanning用アカウントの作成に関する詳細情報

本ガイドでは、AWS CodePipelineとAWS CodeBuildを使ってAWS上にCIパイプラインを作成します。このパイプラインは、コンテナイメージ内のAikido Security local scannerを使ってセキュリティスキャンを実行します。

1. CodeBuildプロジェクトを作成する

Section titled “1. CodeBuildプロジェクトを作成する”

まず、スキャンを実行するCodeBuildプロジェクトを作成します。

CodeBuildに移動します

  1. AWSコンソールを開きます
  2. CodeBuildに移動します
  3. Create build projectをクリックします

aikido-security-scanプロジェクトを作成する

Section titled “aikido-security-scanプロジェクトを作成する”
  • Source: No Sourceを選択します。ソースはCodePipelineから提供されます。

  • Environment:

    • Image: Custom Image
    • Compute: EC2
    • Environment type: Linux Container
    • Image registry: Other Registry
    • External registry URL(外部レジストリのURL): public.ecr.aws/z1o3v2w5/aikidosecurity/local-scanner:latest
  • Buildspec:

    version: 0.2
    phases:
    build:
    commands:
    - aikido-local-scanner scan . --apikey $AIKIDO_API_KEY --repositoryname MyRepo --branchname myDefaultBranch

CodeBuildプロジェクトにAPIキーを追加する

Section titled “CodeBuildプロジェクトにAPIキーを追加する”
  • Local Scannerセットアップページに移動します
  • 認証トークンを生成してコピーします。このトークンは一度しか表示されない点に注意してください。
  • このトークンをキーAIKIDO_API_KEYでAWS Secrets Managerに追加し、aikido/local-scanner-api-keyのような名前を付けます。完全なsecret ARNを控えておいてください — 後ほど必要になります。
  • CodeBuildプロジェクトはIAMサービスロールで実行されます。このロールにはシークレットを読み取る権限が必要です。以下のポリシーを追加し、ARNをシークレットのARNに置き換えてください
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": "arn:aws:secretsmanager:<region>:<account-id>:secret:aikido/local-scanner-api-key-*"
}
]
}
  • CodeBuildプロジェクトに戻り、Edit > Environment > Additional Configurationをクリックします。環境変数を追加します:
    • Name: AIKIDO_API_KEY
    • Value: aikido/local-scanner-api-key
    • Type: Secrets Manager

値の形式は次のとおりです: <secret-name>:<json-key>。CodeBuildはビルド時にこれを自動的に解決し、値を環境に注入します。詳細はAWS Docsを参照してください。

スキャンしたいリポジトリ用にパイプラインをセットアップします。
デフォルトブランチへの変更でトリガーされるソースステージを追加します。Buildステージでは、ビルドプロバイダーとしてAWS CodeBuildを選択し、aikido-security-scanビルドプロジェクトを追加します。これにより、パイプラインが先ほど作成したビルドジョブに接続されます。

最初のスキャンが完了したら、Aikido Feedに移動して結果を確認できます。スキャンのすべての結果を含むリポジトリが作成されているはずです。