Skip to main content

Module: ecr

Terraform module to provision an AWS ECR Docker Container registry.

Usage

The module creates one or more Elastic Container Registry (ECR) repositories. All repositories created will share the same configuration. Use this module multiple times to create repositories with different configurations.

If you provide 1 or more names in image_names then one repository will be created for each of the names you provide. Those names can include "namespaces", which are just prefixes ending with a slash (/).

If you do not provide any names in image_names, the module will create a single ECR repo named namespace-stage-name or just name depending on the value of use_fullname.

Access to the repositories is granted to via the principals_full_access and principals_readonly_access lists, which are lists of strings that can designate any valid AWS Principal. This module only creates the Repository Policy allowing those Principals access. The Principals will still separately need IAM policies allowing them permission to execute ECR actions against the repository. For more details, see How Amazon Elastic Container Registry Works with IAM.

Include this repository as a module in your existing terraform code:

# IAM Role to be granted ECR permissions
data "aws_iam_role" "ecr" {
name = "ecr"
}

module "ecr" {
source = "cloudposse/ecr/aws"
# Cloud Posse recommends pinning every module to a specific version
# version = "x.x.x"
namespace = "eg"
stage = "test"
name = "ecr"
principals_full_access = [data.aws_iam_role.ecr.arn]
}