目次

GCPでスタックを作成する

GCPのクラウドアカウントを作成する

手順 に従って、GCPのクラウドアカウントを作成します。

クラウドアカウントを作成したら、 GCPプロジェクトAPIを呼び出して、 serviceAccountEmail を取得します。

前提条件

  1. gcloud CLIをインストールします

  2. Terraformのインストール

  3. シェルスクリプトを実行する環境を設定します。

gcloud CLIでのTerraformの使用

TerraformによるAll-in-one Stackの作成

  1. gcloudにログインします。

    gcloud auth application-default login

  2. gcloudプロジェクトを設定する

    gcloud config set project PROJECT-ID

    ここで、 PROJECT-ID はスタックをデプロイするGCPプロジェクトのIDです。

  3. テンプレートをダウンロードします。

    wget https://file-storage-security.s3.amazonaws.com/latest/gcp-templates/gcp-templates-terraform.zip && unzip gcp-templates-terraform.zip

  4. Terraformのデプロイを使用してGCPプロジェクトを構成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./gcp-configuration/terraform.tfvars.json

    terraform -chdir=gcp-configuration init && terraform -chdir=gcp-configuration apply

    どこに...

    • projectID はGCPプロジェクトのIDに置き換える必要があります。
  5. 次のコマンドを使用して、GCPで All-in-one Stack を作成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<SCANNER_STACK_NAME>/<scannerStackName>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<STORAGE_STACK_NAME>/<storageStackName>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<GCP_REGION>/<region>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<SCANNING_BUCKET_NAME>/<scanningBucketName>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_GCP_PROJECT_ID>/<managementServiceAccountProjectID>/g" ./all-in-one/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_ID>/<managementServiceAccountID>/g" ./all-in-one/terraform.tfvars.json

    terraform -chdir=all-in-one init && terraform -chdir=all-in-one apply

    どこに...

    • projectID はGCPプロジェクトのIDに置き換える必要があります。
    • scanningBucketName は、Cloud Storageに表示される[Cloud Storage バケット] の名前に置き換える必要があります。指定できるバケットは1つのみです。例: my-bucket-to-scan-01
    • scannerStackName は、スタック名のプレフィックスに置き換える必要があります。プレフィックスは17文字未満である必要があります。例: FSS-AIO-SCANNER
    • storageStackName は、スタック名のプレフィックスに置き換える必要があります。プレフィックスは17文字未満である必要があります。例: FSS-AIO-STORAGE
    • region は、 バケットに置き換える必要があります。サポートされるGCPリージョンのリストについては、サポートされるGCPリージョンを参照してください。例: us-central1
    • managementServiceAccountProjectID は、前の手順で serviceAccountEmail から取得した管理サービスアカウントのGCPプロジェクトIDに置き換える必要があります。例: cloud-one-service-account@<managementServiceAccountProjectID>.iam.gserviceaccount.com
    • managementServiceAccountID は、前の手順で serviceAccountEmail から取得したサービスアカウントに置き換える必要があります。例: <managementServiceAccountID>@my-gcp-project.iam.gserviceaccount.com

    デプロイが完了すると、後のデプロイ手順で使用するスタック出力がtfstateファイルに生成されます。

Terraformを使用して Scanner Stack を作成する

  1. gcloudにログインします。

    gcloud auth application-default login

  2. gcloudプロジェクトを設定する

    gcloud config set project PROJECT-ID

    ここで、 PROJECT-ID はスタックをデプロイするGCPプロジェクトのIDです。

  3. テンプレートをダウンロードします。

    wget https://file-storage-security.s3.amazonaws.com/latest/gcp-templates/gcp-templates-terraform.zip && unzip gcp-templates-terraform.zip

  4. Terraformのデプロイを使用してGCPプロジェクトを構成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./gcp-configuration/terraform.tfvars.json

    terraform -chdir=gcp-configuration init && terraform -chdir=gcp-configuration apply

    どこに...

    • <projectID> はGCPプロジェクトのIDに置き換える必要があります。
  5. 次のコマンドを使用して、GCPで Scanner Stack を作成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./scanners/terraform.tfvars.json

    sed -i "s/<SCANNER_STACK_NAME>/<scannerStackName>/g" ./scanners/terraform.tfvars.json

    sed -i "s/<GCP_REGION>/<region>/g" ./scanners/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_GCP_PROJECT_ID>/<managementServiceAccountProjectID>/g" ./scanners/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_ID>/<managementServiceAccountID>/g" ./scanners/terraform.tfvars.json

    terraform -chdir=scanners init && terraform -chdir=scanners apply

    どこに...

    • projectID はGCPプロジェクトのIDに置き換える必要があります。
    • scannerStackName は、スタック名のプレフィックスに置き換える必要があります。プレフィックスは17文字未満である必要があります。例: FSS-AIO-SCANNER
    • region は、 バケットのに置き換える必要があります。サポートされるGCPリージョンのリストについては、サポートされるGCPリージョンを参照してください。例: us-central1
    • managementServiceAccountProjectID は、前の手順で serviceAccountEmail から取得した管理サービスアカウントのGCPプロジェクトIDに置き換える必要があります。例: cloud-one-service-account@<managementServiceAccountProjectID>.iam.gserviceaccount.com
    • managementServiceAccountID は、前の手順で serviceAccountEmail から取得したサービスアカウントに置き換える必要があります。例: <managementServiceAccountID>@my-gcp-project.iam.gserviceaccount.com

    デプロイが完了すると、後のデプロイ手順で使用するスタック出力がtfstateファイルに生成されます。

Terraformを使用して Storage Stack を作成する

  1. gcloudにログインします。

    gcloud auth application-default login

  2. gcloudプロジェクトを設定する

    gcloud config set project PROJECT-ID

    ここで、 PROJECT-ID はスタックをデプロイするGCPプロジェクトのIDです。

  3. テンプレートをダウンロードします。

    wget https://file-storage-security.s3.amazonaws.com/latest/gcp-templates/gcp-templates-terraform.zip && unzip gcp-templates-terraform.zip

  4. Terraformのデプロイを使用してGCPプロジェクトを構成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./gcp-configuration/terraform.tfvars.json

    terraform -chdir=gcp-configuration init && terraform -chdir=gcp-configuration apply

    どこに...

    • projectID はGCPプロジェクトのIDに置き換える必要があります。
  5. 次のコマンドを使用して、GCPに Storage Stack を作成します。

    sed -i.bak "s/<GCP_PROJECT_ID>/<projectID>/g" ./storages/terraform.tfvars.json

    sed -i "s/<STORAGE_STACK_NAME>/<storageStackName>/g" ./storages/terraform.tfvars.json

    sed -i "s/<GCP_REGION>/<region>/g" ./storages/terraform.tfvars.json

    sed -i "s/<SCANNING_BUCKET_NAME>/<scanningBucketName>/g" ./storages/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_GCP_PROJECT_ID>/<managementServiceAccountProjectID>/g" ./storages/terraform.tfvars.json

    sed -i "s/<MANAGEMENT_SERVICE_ACCOUNT_ID>/<managementServiceAccountID>/g" ./storages/terraform.tfvars.json

    sed -i "s/<SCANNER_STACK_PROJECT_ID>/<scannerProjectID>/g" ./storages/terraform.tfvars.json

    sed -i "s/<SCANNER_STACK_PUBSUB_TOPIC_NAME>/<scannerTopic>/g" ./storages/terraform.tfvars.json

    sed -i "s/<SCANNER_STACK_SERVICE_ACCOUNT_ID>/<scannerServiceAccountID>/g" ./storages/terraform.tfvars.json

    terraform -chdir=storages init && terraform -chdir=storages apply

    どこに...

    • projectID はGCPプロジェクトのIDに置き換える必要があります。
    • scanningBucketName は、Cloud Storageに表示される[Cloud Storage バケット] の名前に置き換える必要があります。指定できるバケットは1つのみです。例: my-bucket-to-scan-01
    • storageStackName は、スタック名のプレフィックスに置き換える必要があります。プレフィックスは17文字未満である必要があります。例: FSS-AIO-STORAGE
    • region は、 バケットに置き換える必要があります。サポートされるGCPリージョンのリストについては、サポートされるGCPリージョンを参照してください。例: us-central1
    • managementServiceAccountProjectID は、前の手順で serviceAccountEmail から取得した管理サービスアカウントのGCPプロジェクトIDに置き換える必要があります。例: cloud-one-service-account@<managementServiceAccountProjectID>.iam.gserviceaccount.com
    • managementServiceAccountID は、前の手順で serviceAccountEmail から取得したサービスアカウントに置き換える必要があります。例: <managementServiceAccountID>@my-gcp-project.iam.gserviceaccount.com
    • scannerProjectID は、 ScannerのTerraform環境の scanner_informations 出力に含まれる、 ScannerのGCPプロジェクトのIDに置き換える必要があります。
    • scannerTopic は、 ScannerのTerraform環境の scanner_informations 出力に含まれる、 Scannerの Pub/Sub トピックの名前に置き換えてください。
    • scannerServiceAccountID は、 ScannerのTerraform環境の scanner_informations 出力に含まれる、ご使用の ScannerのサービスアカウントIDの名前に置き換える必要があります。

    デプロイが完了すると、後のデプロイ手順で使用するスタック出力がtfstateファイルに生成されます。