패키지 그룹 오리진 제어 - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

패키지 그룹 오리진 제어

패키지 오리진 컨트롤은 패키지 버전이 도메인에 들어갈 수 있는 방법을 구성하는 데 사용됩니다. 패키지 그룹에 오리진 제어를 설정하여 패키지 그룹과 연결된 모든 패키지의 버전이 도메인에 지정된 리포지토리를 입력하는 방법을 구성할 수 있습니다.

패키지 그룹 오리진 제어 설정은 다음과 같이 구성됩니다.

  • 제한 설정: 이러한 설정은 패키지가 게시, 내부 업스트림 또는 외부 퍼블릭 리포지토리 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패키지 그룹에는 해당 제한 설정에 허용되는 리포지토리 목록이 포함된 허용되는 리포지토리 목록이 함께 포함됩니다. 따라서 패키지 그룹에는 로 구성된 각 설정에 대해 하나씩 0~3개의 허용된 리포지토리 목록이 포함됩니다ALLOW_SPECIFIC_REPOSITORIES.

패키지 그룹의 허용된 리포지토리 목록에 리포지토리를 추가할 때는 리포지토리를 추가할 허용된 리포지토리 목록을 지정해야 합니다.

허용되는 리포지토리 목록은 다음과 같습니다.

  • EXTERNAL_UPSTREAM: 추가된 리포지토리의 외부 리포지토리에서 패키지 버전의 수집을 허용하거나 차단합니다.

  • INTERNAL_UPSTREAM: 추가된 CodeArtifact 리포지토리의 다른 리포지토리에서 패키지 버전을 가져오도록 허용하거나 차단합니다.

  • PUBLISH: 패키지 관리자에서 추가된 리포지토리로 패키지 버전을 직접 게시하도록 허용하거나 차단합니다.

패키지 그룹 오리진 제어 설정 편집

패키지 그룹에 대한 오리진 제어를 추가하거나 편집하려면 다음 절차의 단계를 수행합니다. 패키지 그룹 오리진 제어 설정에 대한 자세한 내용은 제한 설정 및 섹션을 참조하세요허용된 리포지토리 목록.

패키지 그룹 오리진 제어를 추가하거나 편집하려면(CLI)
  1. 그렇지 않은 경우 의 단계에 AWS CLI 따라 를 구성합니다로 설정 AWS CodeArtifact.

  2. update-package-group-origin-configuration 명령을 사용하여 패키지 원본 제어를 추가하거나 편집합니다.

    • 에 업데이트하려는 패키지 그룹이 포함된 CodeArtifact 도메인을 --domain입력합니다.

    • 에 도메인 소유자의 계정 번호를 --domain-owner입력합니다.

    • 에 업데이트하려는 패키지 그룹을 --package-group입력합니다.

    • 에 오리진 제어 제한을 나타내는 키-값 페어를 --restrictions입력합니다.

    • 의 경우 제한 유형과 리포지토리 이름이 포함된 JSON 객체를 --add-allowed-repositories입력하여 제한에 대해 허용되는 해당 리포지토리 목록에 추가합니다.

    • 의 경우 제한 유형과 리포지토리 이름이 포함된 JSON 객체를 --remove-allowed-repositories입력하여 제한에 대해 허용되는 해당 리포지토리 목록에서 제거합니다.

    aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions INTERNAL_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 \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2 \ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2

패키지 그룹 오리진 제어 구성 예제

다음 예제에서는 일반적인 패키지 관리 시나리오에 대한 패키지 오리진 제어 구성을 보여줍니다.

프라이빗 이름이 있지만 수집되지 않은 패키지 게시 허용

이 시나리오는 패키지 관리의 일반적인 시나리오일 가능성이 높습니다.

  • 패키지 관리자에서 도메인의 리포지토리에 프라이빗 이름을 가진 패키지를 게시하도록 허용하고 외부 퍼블릭 리포지토리에서 도메인의 리포지토리로 수집되는 것을 차단합니다.

  • 외부 퍼블릭 리포지토리에서 도메인의 리포지토리로 다른 모든 패키지를 수집하도록 허용하고 패키지 관리자에서 도메인의 리포지토리로 게시되는 것을 차단합니다.

이렇게 하려면 프라이빗 이름(들)과 : , _PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK의 오리진 설정을 포함하는 패턴으로 패키지 그룹을 구성해야 합니다INTERNALUPSTREAMALLOW. 이렇게 하면 프라이빗 이름이 있는 패키지를 직접 게시할 수 있지만 외부 리포지토리에서는 수집할 수 없습니다.

다음 AWS CLI 명령은 원하는 동작과 일치하는 오리진 제한 설정을 사용하여 패키지 그룹을 생성하고 구성합니다.

패키지 그룹을 생성하려면:

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

패키지 그룹의 오리진 구성을 업데이트하려면:

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/npm/space/anycompany~' \ --restrictions PUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW

하나의 리포지토리를 통해 외부 리포지토리에서 수집 허용

이 시나리오에서는 도메인에 여러 개의 리포지토리가 있습니다. 이러한 리포지토리 중 repoA에는 다음과 npmjs.com같이 퍼블릭 리포지토리 repoB에 대한 외부 연결이 있는 에 대한 업스트림 연결이 있습니다.

repoA --> repoB --> npmjs.com

특정 패키지 그룹에서 로 패키지를 수집할 /npm/space/anycompany~ npmjs.comrepoA있도록 허용하되 에서 로만 허용하려고 합니다repoB. 또한 패키지 그룹과 연결된 패키지가 도메인의 다른 리포지토리로 수집되는 것을 차단하고 패키지 관리자를 통해 패키지를 직접 게시하는 것을 차단해야 합니다. 이를 위해 다음과 같이 패키지 그룹을 생성하고 구성합니다.

PUBLISH의 오리진 제한 설정: BLOCK, EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES, INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.

repoA 및 가 허용되는 적절한 리포지토리 목록에 repoB 추가되었습니다.

  • repoA 는 내부 업스트림인 에서 패키지를 가져오므로 INTERNAL_UPSTREAM 목록에 추가해야 합니다repoB.

  • repoB 는 외부 리포지토리 에서 패키지를 가져오므로 EXTERNAL_UPSTREAM 목록에 추가해야 합니다npmjs.com.

다음 AWS CLI 명령은 원하는 동작과 일치하는 오리진 제한 설정을 사용하여 패키지 그룹을 생성하고 구성합니다.

패키지 그룹을 생성하려면:

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

패키지 그룹의 오리진 구성을 업데이트하려면:

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group /npm/space/anycompany~ \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoA originRestrictionType=EXTERNAL_UPSTREAM,repositoryName=repoB

패키지 그룹 오리진 제어 설정이 패키지 오리진 제어 설정과 상호 작용하는 방법

패키지에는 오리진 제어 설정이 있고 연결된 패키지 그룹에는 오리진 제어 설정이 있기 때문에 이러한 두 가지 설정이 서로 어떻게 상호 작용하는지 이해하는 것이 중요합니다. 설정 간의 상호 작용에 대한 자세한 내용은 섹션을 참조하세요패키지 오리진 컨트롤이 패키지 그룹 오리진 컨트롤과 상호 작용하는 방법.