Please scroll down for the Japanese version. / 日本語の説明は下にあります。
codepipeline-default-settings deploys CloudFormation templates about security services, static website hosting and Slack notification using AWS CodePipeline.
The following sections describe the individual components of the architecture.
This template creates the following diagram.
Generate a GitHub personal access token and copy it.
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
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 |
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 は、CodePipeline
を用いて AWSの セキュリティサービスの有効化 や Webサイトのホスティング機能 などをAWS上に一括デプロイします。
このテンプレートが作成するAWSリソースのアーキテクチャ図は、以下の通りです。
このテンプレートは、以下のダイアグラムを作成します。
GitHub パーソナルアクセストークン を作成し、その値をコピーします。
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 スタックがデプロイされます。 |