업스트림 레포지토리 자격 증명을 AWS Secrets Manager 시크릿에 저장하기
업스트림 레포지토리 자격 증명을 AWS Secrets Manager 시크릿에 저장하기 (Storing your upstream repository credentials in an AWS Secrets Manager secret)
인증이 필요한 업스트림 레포지토리에 대한 풀 스루 캐시 규칙을 만들 때 자격 증명을 Secrets Manager 시크릿에 저장해야 해요. Secrets Manager 시크릿을 사용하면 비용이 발생할 수 있어요. 자세한 내용은 AWS Secrets Manager 요금 페이지를 참고하세요.
출처: 문서
본문
인증이 필요한 업스트림 레포지토리에 대한 풀 스루 캐시 규칙을 만들 때 자격 증명을 Secrets Manager 시크릿에 저장해야 해요. Secrets Manager 시크릿을 사용하면 비용이 발생할 수 있어요. 자세한 내용은 AWS Secrets Manager 요금 페이지를 참고하세요.
다음 절차는 지원되는 각 업스트림 레포지토리에 대한 Secrets Manager 시크릿을 만드는 방법을 안내해요. Secrets Manager 콘솔로 시크릿을 만드는 대신 Amazon ECR 콘솔의 풀 스루 캐시 규칙 생성 워크플로우를 사용해 시크릿을 만들 수도 있어요. 자세한 내용은 "Creating a pull through cache rule in Amazon ECR"을 참고하세요.
공통 절차 (AWS Management Console)
인증이 필요한 각 업스트림 레지스트리(Docker Hub, GitHub Container Registry, Microsoft Azure Container Registry, GitLab Container Registry, Chainguard Registry)의 자격 증명에 대한 Secrets Manager 시크릿을 만드는 절차는 동일한 기본 단계를 따르며, 레지스트리마다 키/값 쌍만 달라져요.
- Secrets Manager 콘솔(https://console.aws.amazon.com/secretsmanager/)을 엽니다.
- Store a new secret을 선택합니다.
- Choose secret type 페이지에서 다음을 수행합니다.
- Secret type에서 Other type of secret을 선택합니다.
- Key/value pairs에서 해당 업스트림 레지스트리의 자격 증명에 대한 두 개의 행을 만듭니다. 시크릿에 최대 65536바이트를 저장할 수 있어요.
- 첫 번째 키/값 쌍에서 키로 username을, 값으로 레지스트리 사용자 이름을 지정합니다.
- 두 번째 키/값 쌍에서 키로 accessToken을, 값으로 레지스트리 액세스 토큰을 지정합니다.
- Encryption key에서 기본 aws/secretsmanager AWS KMS 키 값을 유지한 다음 Next를 선택합니다. 이 키를 사용하는 데는 비용이 없어요. 자세한 내용은 AWS Secrets Manager 사용 설명서의 "Secret encryption and decryption in Secrets Manager"을 참고하세요.
- Configure secret 페이지에서 다음을 수행합니다.
- 설명적인 Secret name과 Description을 입력합니다. 시크릿 이름은 1~512개 유니코드 문자여야 하며 ecr-pullthroughcache/ 접두사로 시작해야 해요.
- (선택) Tags 섹션에서 시크릿에 태그를 추가합니다. 태그 지정 전략은 AWS Secrets Manager 사용 설명서의 "Tag Secrets Manager secrets"을 참고하세요. 태그는 암호화되지 않으므로 민감한 정보를 저장하지 마세요.
- (선택) Resource permissions에서 시크릿에 리소스 정책을 추가하려면 Edit permissions을 선택합니다. 자세한 내용은 AWS Secrets Manager 사용 설명서의 "Attach a permissions policy to an Secrets Manager secret"을 참고하세요.
- (선택) Replicate secret에서 시크릿을 다른 AWS 리전에 복제하려면 Replicate secret을 선택합니다. 지금 복제하거나 나중에 돌아와 복제할 수 있어요. 자세한 내용은 AWS Secrets Manager 사용 설명서의 "Replicate a secret to other Regions"을 참고하세요.
- Next를 선택합니다.
- (선택) Configure rotation 페이지에서 자동 회전을 켤 수 있어요. 지금은 회전을 끄고 나중에 켤 수도 있어요. 자세한 내용은 AWS Secrets Manager 사용 설명서의 "Rotate Secrets Manager secrets"을 참고하세요. Next를 선택합니다.
- Review 페이지에서 시크릿 세부 정보를 검토한 다음 Store를 선택합니다.
- Secrets Manager는 시크릿 목록으로 돌아갑니다. 새 시크릿이 표시되지 않으면 새로 고침 버튼을 선택합니다.
중요: 시크릿을 암호화하려면 기본 aws/secretsmanager 암호화 키를 사용해야 해요. Amazon ECR은 이를 위한 고객 관리형 키(CMK) 사용을 지원하지 않아요.
레지스트리별 키/값 쌍
각 업스트림 레지스트리에 대해 3단계의 Key/value pairs에서 다음 키/값 쌍을 지정해요.
- Docker Hub – 첫 번째 쌍은 키 username, 값 Docker Hub 사용자 이름. 두 번째 쌍은 키 accessToken, 값 Docker Hub 액세스 토큰. Docker Hub 액세스 토큰 생성에 대한 자세한 내용은 Docker 문서의 "Create and manage access tokens"을 참고하세요.
- GitHub Container Registry – 첫 번째 쌍은 키 username, 값 GitHub 사용자 이름. 두 번째 쌍은 키 accessToken, 값 GitHub 액세스 토큰. GitHub 액세스 토큰 생성에 대한 자세한 내용은 GitHub 문서의 "Managing your personal access tokens"을 참고하세요.
- Microsoft Azure Container Registry – 첫 번째 쌍은 키 username, 값 Microsoft Azure Container Registry 사용자 이름. 두 번째 쌍은 키 accessToken, 값 Microsoft Azure Container Registry 액세스 토큰. 액세스 토큰 생성에 대한 자세한 내용은 Microsoft Azure 문서의 "Create token - portal"을 참고하세요.
- GitLab Container Registry – 첫 번째 쌍은 키 username, 값 GitLab Container Registry 사용자 이름. 두 번째 쌍은 키 accessToken, 값 GitLab Container Registry 액세스 토큰. 액세스 토큰 생성에 대한 자세한 내용은 GitLab 문서의 "Personal access tokens", "Group access tokens", "Project access tokens"을 참고하세요.
- Chainguard Registry – 첫 번째 쌍은 키 username, 값 Chainguard Registry 사용자 이름. 두 번째 쌍은 키 accessToken, 값 Chainguard Registry 액세스 토큰. 풀 토큰 생성에 대한 자세한 내용은 Chainguard 문서의 "Authenticating with a Pull Token"을 참고하세요.
중요: Amazon ECR AWS Management Console은 ecr-pullthroughcache/ 접두사를 사용하는 이름의 Secrets Manager 시크릿만 표시해요.