パッケージグループのオリジンコントロール - 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、パッケージグループには、その制限設定で許可されるリポジトリのリストを含む、添付の許可されたリポジトリリストが含まれます。したがって、パッケージグループには、 として設定された設定ごとに 1 つずつ、0~3 個の許可されたリポジトリリストが含まれますALLOW_SPECIFIC_REPOSITORIES

パッケージグループの許可されたリポジトリリストにリポジトリを追加するときは、追加する許可されたリポジトリリストを指定する必要があります。

使用可能なリポジトリリストは次のとおりです。

  • EXTERNAL_UPSTREAM: 追加したリポジトリ内の外部リポジトリからのパッケージバージョンの取り込みを許可またはブロックします。

  • INTERNAL_UPSTREAM: 追加した CodeArtifact リポジトリ内の別のリポジトリからパッケージバージョンをプルすることを許可またはブロックします。

  • PUBLISH: パッケージマネージャーから追加されたリポジトリへのパッケージバージョンの直接発行を許可またはブロックします。

パッケージグループのオリジンコントロール設定の編集

パッケージグループのオリジンコントロールを追加または編集するには、以下の手順を実行します。パッケージグループのオリジンコントロール設定の詳細については、制限設定「」および「」を参照してください許可されたリポジトリリスト

パッケージグループのオリジンコントロールを追加または編集するには (CLI)
  1. まだ設定していない場合は、 AWS CLI 「」の手順に従って を設定しますで を設定する AWS CodeArtifact

  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

    次の例では、複数の制限と複数のリポジトリを 1 つのコマンドに追加します。

    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: ALLOWEXTERNAL_UPSTREAM: BLOCK、および INTERNAL_UPSTREAM: ALLOWを含むパターンでパッケージグループを設定する必要があります。これにより、プライベート名のパッケージを直接公開できますが、外部リポジトリから取り込むことはできません。

次の 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

1 つのリポジトリを介した外部リポジトリからの取り込みの許可

このシナリオでは、ドメインに複数のリポジトリがあります。これらのリポジトリのうち、 repoA には へのアップストリーム接続がありrepoB、次npmjs.comに示すように、パブリックリポジトリ への外部接続があります。

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 は、内部アップストリーム からパッケージを取得するため、 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

パッケージグループのオリジンコントロール設定とパッケージオリジンコントロール設定の相互作用

パッケージにはオリジンコントロール設定があり、関連するパッケージグループにはオリジンコントロール設定があるため、これらの 2 つの異なる設定が相互にどのように相互作用するかを理解することが重要です。設定間の相互作用の詳細については、「」を参照してくださいパッケージオリジンコントロールとパッケージグループオリジンコントロールの相互作用