기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
패키지 그룹 원본 제어
패키지 원본 제어는 패키지 버전이 도메인에 들어갈 수 있는 방법을 구성하는 데 사용됩니다. 패키지 그룹에 원본 제어를 설정하여 패키지 그룹과 연결된 모든 패키지의 버전이 도메인에 지정된 리포지토리에 들어갈 수 있는 방법을 구성할 수 있습니다.
패키지 그룹 원본 제어 설정은 다음으로 구성됩니다.
제한 설정: 이러한 설정은 게시, 내부 업스트림 또는 외부 퍼블릭 리포지토리에서 패키지가 CodeArtifact의 리포지토리에 들어갈 수 있는지 여부를 정의합니다.
허용된 리포지토리 목록: 각 제한 설정은 특정 리포지토리를 허용하도록 설정할 수 있습니다. 제한 설정이 특정 리포지토리를 허용하도록 설정된 경우 해당 제한에는 해당하는 허용 리포지토리 목록이 있습니다.
참고
패키지 그룹의 원본 제어 설정은 개별 패키지의 원본 제어 설정과 약간 다릅니다. 패키지의 원본 제어 설정에 대한 자세한 내용은 패키지 원본 제어 설정 섹션을 참조하세요.
제한 설정
패키지 그룹의 원본 제어 설정에 대한 제한 설정은 해당 그룹과 연결된 패키지가 도메인의 리포지토리에 들어갈 수 있는 방법을 결정합니다.
PUBLISH
PUBLISH 설정은 패키지 관리자 또는 이와 유사한 도구를 사용하여 패키지 버전을 도메인의 리포지토리에 직접 게시할 수 있는지 구성합니다.
ALLOW: 패키지 버전을 모든 리포지토리에 직접 게시할 수 있습니다.
BLOCK: 패키지 버전을 리포지토리에 직접 게시할 수 없습니다.
ALLOW_SPECIFIC_REPOSITORIES: 게시를 위해 허용된 리포지토리 목록에 지정된 리포지토리에만 패키지 버전을 직접 게시할 수 있습니다.
INHERIT:
PUBLISH설정이INHERIT가 아닌 설정을 가진 첫 번째 상위 패키지 그룹에서 상속됩니다.
EXTERNAL_UPSTREAM
EXTERNAL_UPSTREAM 설정은 패키지 관리자가 요청하는 경우 패키지 버전을 외부 퍼블릭 리포지토리에서 수집할 수 있는지 구성합니다. 지원되는 외부 리포지토리 목록은 지원하는 외부 연결 저장소 섹션을 참조하세요.
ALLOW: 모든 패키지 버전을 외부 연결이 있는 퍼블릭 소스의 모든 리포지토리에 수집할 수 있습니다.
BLOCK: 외부 연결이 있는 퍼블릭 소스의 리포지토리에 패키지 버전을 수집할 수 없습니다.
ALLOW_SPECIFIC_REPOSITORIES: 퍼블릭 소스에서 외부 업스트림에 대해 허용된 리포지토리 목록에 지정된 리포지토리로만 패키지 버전을 수집할 수 있습니다.
INHERIT:
EXTERNAL_UPSTREAM설정이INHERIT가 아닌 설정을 가진 첫 번째 상위 패키지 그룹에서 상속됩니다.
INTERNAL_UPSTREAM
INTERNAL_UPSTREAM 설정은 패키지 관리자가 요청하는 경우 동일한 CodeArtifact 도메인의 내부 업스트림 리포지토리에서 패키지 버전을 유지할 수 있는지 여부를 구성합니다.
ALLOW: 모든 패키지 버전은 업스트림 리포지토리로 구성된 다른 CodeArtifact 리포지토리에서 유지할 수 있습니다.
BLOCK: 패키지 버전은 업스트림 리포지토리로 구성된 다른 CodeArtifact 리포지토리에서 유지할 수 없습니다.
ALLOW_SPECIFIC_REPOSITORIES: 패키지 버전은 업스트림 리포지토리로 구성된 다른 CodeArtifact 리포지토리에서만 내부 업스트림에 대해 허용된 리포지토리 목록에 지정된 리포지토리로 유지할 수 있습니다.
INHERIT:
INTERNAL_UPSTREAM설정이INHERIT가 아닌 설정을 가진 첫 번째 상위 패키지 그룹에서 상속됩니다.
허용된 리포지토리 목록
제한 설정이 ALLOW_SPECIFIC_REPOSITORIES로 구성된 경우 패키지 그룹에는 해당 제한 설정에 허용되는 리포지토리 목록이 포함된 허용되는 리포지토리 목록이 함께 포함됩니다. 따라서 패키지 그룹에는 ALLOW_SPECIFIC_REPOSITORIES로 구성된 각 설정에 대해 하나씩 0~3개의 허용된 리포지토리 목록이 포함됩니다.
패키지 그룹의 허용된 리포지토리 목록에 리포지토리를 추가할 경우 리포지토리를 추가할 허용된 리포지토리 목록을 지정해야 합니다.
허용되는 리포지토리 목록은 다음과 같습니다.
EXTERNAL_UPSTREAM: 추가된 리포지토리의 외부 리포지토리에서 패키지 버전 수집을 허용 또는 차단합니다.INTERNAL_UPSTREAM: 추가된 리포지토리의 다른 CodeArtifact 리포지토리에서 패키지 버전 가져오기를 허용 또는 차단합니다.PUBLISH: 패키지 관리자에서 추가된 리포지토리로의 패키지 버전 직접 게시를 허용 또는 차단합니다.
패키지 그룹 원본 제어 설정 편집
패키지 그룹에 대한 원본 제어를 추가하거나 편집하려면 다음 절차의 단계를 수행하세요. 패키지 그룹 원본 제어 설정에 대한 자세한 내용은 제한 설정 및 허용된 리포지토리 목록 섹션을 참조하세요.
패키지 그룹 원본 제어 추가 또는 편집(CLI)
아직 구성하지 않았다면 with AWS CodeArtifact 설정에 나오는 단계에 따라 AWS CLI를 구성하세요.
update-package-group-origin-configuration명령을 사용하여 패키지 원본 제어를 추가하거나 편집합니다.--domain에 업데이트하려는 패키지 그룹이 포함된 CodeArtifact 도메인을 입력합니다.--domain-owner에 도메인 소유자의 계정 번호를 입력합니다.--package-group에 업데이트하려는 패키지 그룹을 입력합니다.--restrictions에 원본 제어 제한을 나타내는 키-값 페어를 입력합니다.--add-allowed-repositories에 제한 유형과 리포지토리 이름이 포함된 JSON 객체를 입력하여 제한에 대해 허용되는 해당 리포지토리 목록에 추가합니다.--remove-allowed-repositories에 제한 유형과 리포지토리 이름이 포함된 JSON 객체를 입력하여 제한에 대해 허용되는 해당 리포지토리 목록에서 제거합니다.
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/nuget/*'\ --restrictionsINTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo\ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2다음 예시에서는 하나의 명령에 여러 제한 및 여러 리포지토리를 추가합니다.
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/nuget/*'\ --restrictionsPUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repooriginRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2\ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2
패키지 그룹 원본 제어 구성 예제
다음 예제에서는 일반적인 패키지 관리 시나리오에 대한 패키지 원본 제어 구성을 보여줍니다.
프라이빗 이름이 있는 패키지를 게시할 수 있지만 수집할 수는 없음
이 시나리오는 패키지 관리의 일반적인 시나리오일 수 있습니다.
패키지 관리자가 도메인의 리포지토리에 프라이빗 이름을 가진 패키지를 게시하도록 허용하고 외부 퍼블릭 리포지토리에서 도메인의 리포지토리로 수집되지 않도록 차단합니다.
외부 퍼블릭 리포지토리에서 도메인의 리포지토리에 다른 모든 패키지를 수집하도록 허용하고 패키지 관리자에서 도메인의 리포지토리에 게시되는 것을 차단합니다.
이렇게 하려면 PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK 및 INTERNAL_UPSTREAM: ALLOW의 프라이빗 이름 및 원본 설정을 포함하는 패턴으로 패키지 그룹을 구성해야 합니다. 이렇게 하면 프라이빗 이름을 가진 패키지를 직접 게시할 수 있지만 외부 리포지토리에서 수집할 수는 없습니다.
다음 AWS CLI 명령은 원하는 동작과 일치하는 원본 제한 설정을 사용하여 패키지 그룹을 생성하고 구성합니다.
패키지 그룹을 생성하려면
aws codeartifact create-package-group \ --domainmy_domain\ --package-group/npm/space/anycompany~\ --domain-owner111122223333\ --contact-infocontact@email.com | URL\ --description"my package group"
패키지 그룹의 원본 구성을 업데이트하려면
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/npm/space/anycompany~'\ --restrictionsPUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW
하나의 리포지토리를 통해 외부 리포지토리에서 수집 허용
이 시나리오에서 도메인에는 여러 개의 리포지토리가 있습니다. 이러한 리포지토리 중 repoA에는 다음과 같이 퍼블릭 리포지토리 npmjs.com에 대한 외부 연결을 가진 repoB에 대한 업스트림 연결이 있습니다.
repoA --> repoB --> npmjs.com
특정 패키지 그룹 /npm/space/anycompany~의 패키지를 npmjs.com에서 repoA로, repoB를 통해서만 수집할 수 있도록 허용하려고 합니다. 또한 패키지 그룹과 연결된 패키지를 도메인의 다른 리포지토리로 수집하는 것을 차단하고 패키지 관리자를 통해 패키지를 직접 게시하는 것을 차단하려고 합니다. 이를 위해 다음과 같이 패키지 그룹을 생성하고 구성합니다.
PUBLISH: BLOCK, EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES 및 INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES의 원본 제한 설정.
repoA 및 repoB가 허용되는 적절한 리포지토리 목록에 추가되었습니다.
repoA는 내부 업스트림인repoB에서 패키지를 가져오므로INTERNAL_UPSTREAM목록에 추가되어야 합니다.repoB는 외부 리포지토리인npmjs.com에서 패키지를 가져오므로EXTERNAL_UPSTREAM목록에 추가해야 합니다.
다음 AWS CLI 명령은 원하는 동작과 일치하는 원본 제한 설정을 사용하여 패키지 그룹을 생성하고 구성합니다.
패키지 그룹을 생성하려면
aws codeartifact create-package-group \ --domainmy_domain\ --package-group/npm/space/anycompany~\ --domain-owner111122223333\ --contact-infocontact@email.com | URL\ --description"my package group"
패키지 그룹의 원본 구성을 업데이트하려면
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group/npm/space/anycompany~\ --restrictionsPUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoAoriginRestrictionType=EXTERNAL_UPSTREAM,repositoryName=repoB
패키지 그룹 원본 제어 설정이 패키지 원본 제어 설정과 상호 작용하는 방법
패키지에 원본 제어 설정이 있고 연결된 패키지 그룹에도 원본 제어 설정이 있으므로 이러한 서로 다른 두 설정이 서로 어떻게 상호 작용하는지 이해하는 것이 중요합니다. 설정 간의 상호 작용에 대한 자세한 내용은 패키지 원본 제어가 패키지 그룹 원본 제어와 상호 작용하는 방법 섹션을 참조하세요.