説明
内部用ソースコードを含むGitHubリポジトリを公開すると、外部の人がコードや公開された資料を読めるようになります。公開プロジェクトは正当な用途にもなるため、公開目的と機密情報の有無を確認する必要があります。
非公開に変えても、すでにコピーされたコードや漏えいしたシークレットは回収できません。公開範囲と書き込み権限・デプロイ権限も別々に管理してください。
想定される影響
- 内部コードや運用情報が外部に公開される可能性があります。
- 過去のコミットにあるシークレットがコピーされ、非公開への変更後も悪用されるおそれがあります。
対処方法
内部専用リポジトリを新規作成するときはIsPrivateをtrueにし、実際のGitHub公開状態を確認してください。既存リポジトリの公開範囲はGitHubで対応する手順で変更してください。このCloudFormationプロパティは更新に対応しません。公開履歴にあるシークレットを失効・交換し、共同作業者と自動化トークンの権限も確認してください。
例
新しいリポジトリを作成する際の2つの構成例です。S3ソース、所有者、名前、トークン参照を実際の値に置き換えてください。既存リポジトリの公開範囲をテンプレート更新で変える例ではありません。
変更前
yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyRepo3:
Type: AWS::CodeStar::GitHubRepository
Properties:
Code:
S3:
Bucket: "my-bucket"
Key: "sourcecode.zip"
ObjectVersion: "1"
EnableIssues: true
IsPrivate: false
RepositoryAccessToken: '{{resolve:secretsmanager:your-secret-manager-name:SecretString:your-secret-manager-key}}'
RepositoryDescription: a description
RepositoryName: my-github-repo
RepositoryOwner: my-github-account
IsPrivate: falseで公開リポジトリを作成します。意図した公開プロジェクトか確認してください。
変更後
yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyRepo1:
Type: AWS::CodeStar::GitHubRepository
Properties:
Code:
S3:
Bucket: "my-bucket"
Key: "sourcecode.zip"
ObjectVersion: "1"
EnableIssues: true
IsPrivate: true
RepositoryAccessToken: '{{resolve:secretsmanager:your-secret-manager-name:SecretString:your-secret-manager-key}}'
RepositoryDescription: a description
RepositoryName: my-github-repo
RepositoryOwner: my-github-account
IsPrivate: trueで非公開リポジトリを作成します。非公開であっても、コードへのシークレット埋め込みは避けてください。