[AWS] AWS CodeArtifact

Code Artifact is used to store, publish, and share software packages.

Artifact Management

  • In general, a software requires other software packages to be built – called dependencies -.
  • Storing and retrieving theses dependencies is called Artifact Management.

AWS CodeArtifact

  • AWS CodeArtifact is a secure and scalable artifact management system.
  • It works with common dependency management tools such as npm, yarn, pip, and NuGet via Proxy.
  • Developers and CodeBuild can retrieve dependent packages from CodeArtifact.

Integration with EventBridge

  • An event is created when a package version is created, modified, or deleted.
  • You can rebuild or redeploy an application with the latest packages.
    • You can start the CodePipeline pipeline.

Security

  • Resource Policy
    • You can authorize who can access CodeArtifact via IAM policies.
      • Cross-Account access

External Connection

  • You can create an connection between a CodeArtifact repository and an external (public) repository (npm, NuGet …)
  • It allows fetch packages that are not in your CodeArtifact repository.

Upstream Repositories

  • A CodeArtifact repository can have other repositories as “Upstream Repositories”
    • up to 10 Upstream Repositories
  • A package manager client can access the packages that are contained in more than one repository using a single repository endpoint.
  • You can only use a single external connection for many repositories in the CodeArtifact.
  • Package Retention
    • When a package is fetched from the external (public) repository, the package is retained in the top Upstream repository and the most-down stream repository.
    • Intermediate repositories do not keep the package.

Domains

By grouping repositories in a domain:

  • Packages are stored once in a domain: deduplicated storage
  • Easy sharing across repositories and multiple accounts
    • All assets and metadata in a domain are encrypted with a single KMS key

Leave a Comment