Skip to content

Latest commit

 

History

History
140 lines (96 loc) · 9.78 KB

codepipeline-default-settings.md

File metadata and controls

140 lines (96 loc) · 9.78 KB

Please scroll down for the Japanese version. / 日本語の説明は下にあります。

codepipeline-default-settings (en)

codepipeline-default-settings deploys CloudFormation templates about security services, static website hosting and Slack notification using AWS CodePipeline.

Architecture

The following sections describe the individual components of the architecture.

This template creates the following diagram.

Preparation

Generate a GitHub personal access token

Generate a GitHub personal access token and copy it.

Create S3 artifact bucket in us-east-1 (Optional)

If you deploy Global Settings Template, create an S3 artifact bucket in N.Verginia (us-east-1) region.

aws s3api create-bucket --bucket my-bucket --region us-east-1

Set up template configuration files (Optional)

If you use Template Configuration File, upload your configuration files to your GitHub repository with the following file names and specify GitHubOwnerNameForTemplateConfiguration and GitHubRepoNameForTemplateConfiguration in your deployment.

Stack Name Template Configuration File Name
CICD Template CICD.json
Global Settings Template GlobalSettings.json
Notification Template Notification.json
Security Template DefaultSecuritySettings.json
Security Template with Config Rule DefaultSecuritySettings-ConfigRules.json
Static Website Hosting Template StaticWebsiteHosting.json
EC2-based Web Servers Template Notification.json
Systems Manager Template SystemsManager.json

Deployment

Execute the command to deploy with ArtifactBacketInVirginia and GitHubOAuthToken parameter.

aws cloudformation deploy --template-file template.yaml --stack-name StaticWebsiteHosting --parameter-overrides ArtifactBacketInVirginia=my0bucket GitHubOAuthToken=XXXXX

You can provide optional parameters as follows.

Name Type Default Required Details
ArtifactBacketInVirginia String S3 artifact bucket name in N.Verginia region.
CodeBuildImageName String aws/codebuild/amazonlinux2-x86_64-standard:3.0
GitHubOAuthToken String OAuth token to access GitHub
GitHubOwnerNameForTemplateConfiguration String GitHub owner name for CloudFormation Template Configuration files
GitHubRepoNameForTemplateConfiguration String GitHub repository name for CloudFormation Template Configuration files
GitHubStage String master GitHub stage name of the repository CloudFormation templates are located
DefaultSecuritySettingsConfigRules ENABLED / DISABLED DISABLED If it is ENABLED, DefaultSecuritySettings-ConfigRules stack is deployed.
GlobalSettings ENABLED / DISABLED DISABLED If it is ENABLED, GlobalSettings stack is deployed.
Notification ENABLED / DISABLED DISABLED If it is ENABLED, Notification stack is deployed.
StaticWebsiteHosting ENABLED / DISABLED DISABLED If it is ENABLED, StaticWebsiteHosting stack is deployed.
WebServers ENABLED / SYSTEMS_MANAGER_ONLY / DISABLED DISABLED If it is ENABLED, WebServers stack is deployed.

codepipeline-default-settings (ja)

codepipeline-default-settings は、CodePipeline を用いて AWSの セキュリティサービスの有効化Webサイトのホスティング機能 などをAWS上に一括デプロイします。

アーキテクチャ

このテンプレートが作成するAWSリソースのアーキテクチャ図は、以下の通りです。

このテンプレートは、以下のダイアグラムを作成します。

準備

GitHub パーソナルアクセストークンの作成

GitHub パーソナルアクセストークン を作成し、その値をコピーします。

S3 アーティファクトバケットの作成 (オプション)

Global Settings Template を実行する際には、バージニアリージョン(us-east-1)に Amazon S3 アーティファクトバケットを作成してください。

aws s3api create-bucket --bucket my-bucket --region us-east-1

テンプレート設定ファイルの作成 (オプション)

テンプレート設定ファイル を使用する場合は、GitHubリポジトリに以下に示す命名規則で Configuration File をアップロードした上で、CloudFormationを実行する際には、GitHubOwnerNameForTemplateConfiguration パラメータと GitHubRepoNameForTemplateConfiguration パラメータを指定してください。

スタック名 Template Configuration File 名
CICD Template CICD.json
Global Settings Template GlobalSettings.json
Notification Template Notification.json
Security Template DefaultSecuritySettings.json
Security Template with Config Rule DefaultSecuritySettings-ConfigRules.json
Static Website Hosting Template StaticWebsiteHosting.json
EC2-based Web Servers Template Notification.json
Systems Manager Template SystemsManager.json

デプロイ

ArtifactBacketInVirginia パラメータと GitHubOAuthToken パラメータを指定して、デプロイを実行してください。

aws cloudformation deploy --template-file template.yaml --stack-name StaticWebsiteHosting --parameter-overrides ArtifactBacketInVirginia=my0bucket GitHubOAuthToken=XXXXX

デプロイ時に、以下のパラメータを指定することができます。

名前 タイプ デフォルト値 必須 詳細
ArtifactBacketInVirginia String Amazon S3 アーティファクトバケット(us-east-1)
CodeBuildImageName String aws/codebuild/amazonlinux2-x86_64-standard:3.0
GitHubOAuthToken String GitHubからコードを取得する際に用いるOAuthトークン
GitHubOwnerNameForTemplateConfiguration String TemplateConfigurationファイルが置かれているGitHubリポジトリの所有者名 
GitHubRepoNameForTemplateConfiguration String TemplateConfigurationファイルが置かれているGitHubリポジトリ名 
GitHubStage String master CloudFormationテンプレートが置かれているリポジトリのステージ名
DefaultSecuritySettingsConfigRules ENABLED / DISABLED DISABLED ENABLEDを指定した場合、DefaultSecuritySettingsConfigRules スタックがデプロイされます。
GlobalSettings ENABLED / DISABLED DISABLED ENABLEDを指定した場合、GlobalSettings スタックがデプロイされます。
Notification ENABLED / DISABLED DISABLED ENABLEDを指定した場合、Notification スタックがデプロイされます。
StaticWebsiteHosting ENABLED / DISABLED DISABLED ENABLEDを指定した場合、StaticWebsiteHosting スタックがデプロイされます。
WebServers ENABLED / SYSTEMS_MANAGER_ONLY / DISABLED DISABLED ENABLEDを指定した場合、WebServers スタックがデプロイされます。