パッケージグループのオリジンコントロール - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パッケージグループのオリジンコントロール

パッケージオリジンコントロールは、パッケージバージョンがドメインに入る方法を設定するために使用されます。パッケージグループにオリジンコントロールを設定して、パッケージグループに関連付けられたすべてのパッケージのバージョンがドメイン内の指定されたリポジトリに入る方法を設定できます。

パッケージグループのオリジン制御設定は、次のもので構成されます。

  • 制限設定: これらの設定は、パッケージが公開、内部アップストリーム、または外部のパブリックリポジトリ CodeArtifact から のリポジトリに入ることができるかどうかを定義します。

  • 許可されるリポジトリリスト: 各制限設定は、特定のリポジトリを許可するように設定できます。特定のリポジトリを許可するように制限設定が設定されている場合、その制限には対応する許可されたリポジトリリストが含まれます。

注記

パッケージグループのオリジンコントロール設定は、個々のパッケージのオリジンコントロール設定とは若干異なります。パッケージのオリジンコントロール設定の詳細については、「」を参照してくださいパッケージオリジンコントロール設定

制限設定

パッケージグループのオリジンコントロール設定の制限設定は、そのグループに関連付けられたパッケージがドメイン内のリポジトリにどのように入力できるかを決定します。

発行

PUBLISH この設定では、パッケージマネージャーまたは同様のツールを使用して、ドメイン内の任意のリポジトリにパッケージバージョンを直接公開できるかどうかを設定します。

  • 許可: パッケージバージョンはすべてのリポジトリに直接公開できます。

  • BLOCK : パッケージバージョンをリポジトリに直接公開することはできません。

  • ALLOW_SPECIFIC_REPOSITORIES: パッケージバージョンは、公開用に許可されたリポジトリリストで指定されたリポジトリにのみ直接公開できます。

  • INHERIT : PUBLISH設定は、 以外の設定を持つ最初の親パッケージグループから継承されますINHERIT

EXTERNAL_UPSTREAM

EXTERNAL_UPSTREAM この設定は、パッケージマネージャーがリクエストしたときに、パッケージバージョンを外部パブリックリポジトリから取り込むことができるかどうかを設定します。サポートされている外部リポジトリのリストについては、「サポートされている外部接続リポジトリ」を参照してください。

  • 許可: 任意のパッケージバージョンを、外部接続を持つパブリックソースからすべてのリポジトリに取り込むことができます。

  • BLOCK : パッケージバージョンは、外部接続を持つパブリックソースからリポジトリに取り込むことはできません。

  • ALLOW_SPECIFIC_REPOSITORIES: パッケージバージョンは、パブリックソースから、外部アップストリームの許可されたリポジトリリストで指定されたリポジトリにのみ取り込むことができます。

  • INHERIT : EXTERNAL_UPSTREAM設定は、 以外の設定を持つ最初の親パッケージグループから継承されますINHERIT

INTERNAL_UPSTREAM

INTERNAL_UPSTREAM 設定は、パッケージマネージャーがリクエストしたときに、同じ CodeArtifact ドメイン内の内部アップストリームリポジトリからパッケージバージョンを保持するかどうかを設定します。

  • 許可: アップストリーム 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 のオリジン設定を含むパターンでパッケージグループを設定する必要があります。許可: EXTERNAL_UPSTREAM: BLOCK 、および 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

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

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

repoA --> repoB --> npmjs.com

から /npm/space/anycompany~npmjs.comへの特定のパッケージグループからのパッケージの取り込みのみを許可したいrepoArepoBまた、パッケージグループに関連付けられたパッケージのドメイン内の他のリポジトリへの取り込みをブロックし、パッケージマネージャーによるパッケージの直接公開をブロックすることもできます。これを実現するには、パッケージグループを次のように作成して設定します。

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 つの異なる設定がどのように相互作用するかを理解することが重要です。設定間の相互作用については、「」を参照してくださいパッケージオリジンコントロールとパッケージグループオリジンコントロールの相互作用