설명
내부 전용 소스 코드가 담긴 GitHub 저장소를 공개하면 코드와 공개된 저장소 자료를 외부에서 읽을 수 있습니다. 공개 프로젝트는 정당한 용도일 수 있으므로 공개 목적과 민감 정보 포함 여부를 확인해야 합니다.
비공개 전환은 이미 복제된 코드나 노출된 비밀값을 회수하지 않습니다. 저장소 공개 여부와 쓰기 권한·배포 권한도 별도로 관리해야 합니다.
잠재적 영향
- 내부 코드나 운영 정보가 외부에 노출될 수 있습니다.
- 과거 커밋에 포함된 비밀값이 복제되어 저장소를 비공개로 바꾼 뒤에도 악용될 수 있습니다.
해결 방법
내부 전용 저장소를 새로 만들 때 IsPrivate를 true로 설정하고 실제 GitHub 공개 상태를 확인하세요. 기존 저장소의 공개 범위는 GitHub에서 지원하는 절차로 변경하세요. 이 CloudFormation 속성은 업데이트를 지원하지 않습니다. 공개 이력의 비밀값은 폐기·교체하고 협업자와 자동화 토큰 권한도 검토하세요.
예시
새 저장소 생성 시 선택할 두 구성의 비교입니다. 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로 비공개 저장소를 생성합니다. 비공개 상태가 코드 내 비밀값 저장을 정당화하지는 않습니다.