패키지 그룹 오리진 컨트롤 - CodeArtifact

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

패키지 그룹 오리진 컨트롤

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

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

  • 제한 설정: 이 설정은 패키지가 CodeArtifact 게시에서 저장소에 들어갈 수 있는지, 내부 업스트림 또는 외부 공용 저장소에서 들어갈 수 있는지를 정의합니다.

  • 허용된 리포지토리 목록: 특정 리포지토리를 허용하도록 각 제한 설정을 설정할 수 있습니다. 특정 리포지토리를 허용하도록 제한 설정을 설정한 경우 해당 제한에 해당하는 허용된 리포지토리 목록이 표시됩니다.

참고

패키지 그룹의 오리진 컨트롤 설정은 개별 패키지의 오리진 컨트롤 설정과 약간 다릅니다. 패키지의 오리진 컨트롤 설정에 대한 자세한 내용은 을 참조하십시오패키지 원본 제어 설정.

제한 설정

패키지 그룹 원본 제어 설정의 제한 설정에 따라 해당 그룹과 관련된 패키지가 도메인의 리포지토리에 들어갈 수 있는 방법이 결정됩니다.

PUBLISH

PUBLISH 설정은 패키지 관리자 또는 유사한 도구를 사용하여 패키지 버전을 도메인의 모든 저장소에 직접 게시할 수 있는지 여부를 구성합니다.

  • ALLOW: 패키지 버전을 모든 리포지토리에 직접 게시할 수 있습니다.

  • BLOCK: 패키지 버전은 저장소에 직접 게시할 수 없습니다.

  • ALLOW_SPECION_REPOSITORIES: 패키지 버전은 게시가 허용된 저장소 목록에 지정된 저장소에만 직접 게시할 수 있습니다.

  • 상속: 설정은 첫 번째 부모 패키지 그룹에서 상속되지만 PUBLISH 설정은 그렇지 않습니다. INHERIT

외부_업스트림

EXTERNAL_UPSTREAM 설정은 패키지 관리자가 요청할 때 외부 공용 리포지토리에서 패키지 버전을 인제스트할 수 있는지 여부를 구성합니다. 지원하는 저장소 목록은 지원하는 외부 연결 저장소를 참조하십시오.

  • 허용: 외부 연결을 통해 모든 패키지 버전을 공개 소스에서 모든 리포지토리로 인제스트할 수 있습니다.

  • BLOCK: 패키지 버전은 외부 연결을 통해 공개 소스에서 어떤 저장소로도 인제스트할 수 없습니다.

  • ALLOW_SPECION_REPOSITORIES: 패키지 버전은 공개 소스에서 외부 업스트림의 허용된 저장소 목록에 지정된 저장소로만 인제스트될 수 있습니다.

  • 상속: 설정은 첫 번째 부모 패키지 그룹에서 상속되지만 EXTERNAL_UPSTREAM 설정은 그렇지 않습니다. INHERIT

내부_업스트림

INTERNAL_UPSTREAM 설정은 패키지 관리자가 요청할 때 동일한 도메인의 내부 업스트림 리포지토리에서 패키지 버전을 유지할 수 있는지 여부를 구성합니다. CodeArtifact

  • 허용: 업스트림 리포지토리로 구성된 다른 리포지토리에서 모든 패키지 버전을 유지할 수 있습니다. CodeArtifact

  • BLOCK: 업스트림 CodeArtifact 리포지토리로 구성된 다른 리포지토리에서 패키지 버전을 유지할 수 없습니다.

  • ALLOW_SPECION_REPOSITORIES: 업스트림 저장소로 구성된 CodeArtifact 다른 저장소에서 내부 업스트림의 허용된 저장소 목록에 지정된 저장소에만 패키지 버전을 유지할 수 있습니다.

  • 상속: 설정은 첫 번째 상위 패키지 그룹에서 상속되지만 설정은 그렇지 않습니다. INTERNAL_UPSTREAM INHERIT

허용된 리포지토리 목록

제한 설정이 로 ALLOW_SPECIFIC_REPOSITORIES 구성된 경우 패키지 그룹에는 해당 제한 설정에 허용된 저장소 목록이 포함된 허용된 저장소 목록이 함께 포함됩니다. 따라서 패키지 그룹에는 0~3개의 허용된 저장소 목록이 포함되며, 이 목록은 로 구성된 각 설정에 하나씩 포함됩니다. ALLOW_SPECIFIC_REPOSITORIES

패키지 그룹의 허용된 저장소 목록에 저장소를 추가할 때는 저장소를 추가할 수 있는 허용된 저장소 목록을 지정해야 합니다.

허용되는 저장소 목록은 다음과 같습니다.

  • EXTERNAL_UPSTREAM: 추가된 저장소의 외부 저장소에서 패키지 버전을 수집하는 것을 허용하거나 차단합니다.

  • INTERNAL_UPSTREAM: 추가된 CodeArtifact 저장소의 다른 저장소에서 패키지 버전을 가져오는 것을 허용하거나 차단합니다.

  • PUBLISH: 패키지 관리자에서 추가된 저장소로 패키지 버전을 직접 게시하는 것을 허용하거나 차단합니다.

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

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

패키지 그룹 오리진 컨트롤 (CLI) 추가 또는 편집하기
  1. 아직 구성하지 않은 경우 의 를 사용하여 설정하기 AWS CodeArtifact 단계에 AWS CLI 따라 구성하십시오.

  2. 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 \ --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: 허용, EXTERNAL_UPSTREAM: 차단 및 INTERNAL_UPSTREAM: 허용의 원본 설정을 포함하는 패턴으로 패키지 그룹을 구성해야 합니다. 이렇게 하면 개인 이름을 가진 패키지를 직접 게시할 수 있지만 외부 저장소에서 수집할 수는 없습니다.

다음 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 있고 이 리포지토리는 공용 리포지토리에 대한 외부 연결을 가집니다. repoB npmjs.com

repoA --> repoB --> npmjs.com

특정 패키지 그룹의 패키지 인제스트를 허용하려고 npmjs.com 합니다repoA. 단, /npm/space/anycompany~ 인제스트를 통해서만 가능합니다. repoB 또한 패키지 그룹과 관련된 패키지가 도메인의 다른 저장소로 수집되는 것을 차단하고 패키지 관리자를 통해 패키지를 직접 게시하는 것을 차단해야 합니다. 이를 위해 다음과 같이 패키지 그룹을 만들고 구성합니다.

PUBLISH: 블록 및 EXTERNAL_UPSTREAM의 오리진 제한 설정: 허용_SPECIFICATION_리포지토리 및 내부_업스트림: 허용_SPECIFICATION_리포지토리.

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

패키지 그룹 오리진 컨트롤 설정이 패키지 오리진 컨트롤 설정과 상호 작용하는 방식

패키지에는 원본 제어 설정이 있고 관련 패키지 그룹에는 원본 제어 설정이 있으므로 이러한 두 설정이 서로 상호 작용하는 방식을 이해하는 것이 중요합니다. 설정 간 상호 작용에 대한 자세한 내용은 을 참조하십시오패키지 오리진 컨트롤이 패키지 그룹 오리진 컨트롤과 상호 작용하는 방식.