GitHub 저장소 공개 범위 점검

GitHub 저장소의 공개 목적과 포함된 정보를 확인하고 내부 전용 저장소를 비공개로 유지하세요.

설명

내부 전용 소스 코드가 담긴 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로 비공개 저장소를 생성합니다. 비공개 상태가 코드 내 비밀값 저장을 정당화하지는 않습니다.

참조