Spec-Zone.ru › AWS CLI v2

[ aws . ecr-public ]

set-repository-policy

Описание

Применяет политику репозитория к указанному публичному репозиторию для управления правами доступа. Дополнительную информацию см. в разделе Политики репозиториев Amazon ECR в Руководстве пользователя Amazon Elastic Container Registry.

См. также: Документацию API AWS

Синтаксис

  set-repository-policy
[--registry-id <value>]
--repository-name <value>
--policy-text <value>
[--force | --no-force]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--registry-id (строка)

Идентификатор учётной записи Amazon Web Services, связанный с реестром, содержащим репозиторий. Если вы не укажете реестр, используется по умолчанию публичный реестр.

--repository-name (строка)

Имя репозитория, которому будет применена политика.

--policy-text (строка)

Текст политики репозитория в формате JSON для применения к репозиторию. Дополнительную информацию см. в разделе Политики репозиториев Amazon ECR в Руководстве пользователя Amazon Elastic Container Registry.

--force | --no-force (логическое значение)

Если политика, которую вы хотите установить для политики репозитория, предотвратит установку другой политики в будущем, необходимо принудительно выполнить операцию SetRepositoryPolicy. Это предотвращает случайные блокировки репозитория.

--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной строки JSON. Строка JSON следует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения, полученные из JSON. Невозможно передавать произвольные двоичные значения с помощью значения, предоставленного в JSON, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или со значением input, выводится пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, будет выведен пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример выходного JSON для данной команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Глобальные параметры

--debug (логическое значение)

Включить отладку.

--endpoint-url (строка)

Переопределить адрес по умолчанию команды заданным адресом.

--no-verify-ssl (логическое значение)

По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого подключения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки сертификатов SSL.

--no-paginate (логическое значение)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования вывода команды.

  • json
  • text
  • таблица
  • yaml
  • yaml-поток

--query (строка)

Запрос JMESPath для фильтрации данных ответа.

--profile (строка)

Использовать конкретный профиль из файла учетных данных.

--region (строка)

Используемый регион. Переопределяет настройки конфигурации/окружения.

--version (строка)

Отобразить версию этого инструмента.

--color (строка)

Включить/отключить цветной вывод.

  • вкл
  • выкл
  • авто

--no-sign-request (логическое значение)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.

--ca-bundle (строка)

Файл сертификатов CA для проверки сертификатов SSL. Переопределяет настройки конфигурации/окружения.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. По умолчанию используется формат base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла напрямую независимо от параметра cli-binary-format. При использовании file:// содержимое файла необходимо правильно отформатировать для настроенного параметра cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (логическое значение)

Отключить просмотрщик cli для вывода.

--cli-auto-prompt (логическое значение)

Автоматически запрашивать параметры входных данных CLI.

--no-cli-auto-prompt (логическое значение)

Отключить автоматическое запросы параметров входных данных CLI.

Примеры

Примечание

Чтобы использовать следующие примеры, необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, во всех примерах используются правила цитирования в стиле Unix. Эти примеры необходимо адаптировать к правилам цитирования вашего терминала. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.

Пример 1: Установка политики репозитория для разрешения pull в репозитории

Следующий set-repository-policy пример применяет политику репозитория ECR public к указанному репозиторию для управления правами доступа.

aws ecr-public set-repository-policy \
    --repository-name project-a/nginx-web-app \
    --policy-text file://my-repository-policy.json

Содержимое my-repository-policy.json:

{
    "Version" : "2008-10-17",
    "Statement" : [
        {
            "Sid" : "allow public pull",
            "Effect" : "Allow",
            "Principal" : "*",
            "Action" : [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ]
        }
    ]
}

Вывод:

{
    "registryId": "12345678901",
    "repositoryName": "project-a/nginx-web-app",
    "policyText": "{\n\"Version\" : \"2008-10-17\",\n\"Statement\" : [ {\n\"Sid\" : \"allow public pull\",\n\"Effect\" : \"Allow\",\n\"Principal\" : \"*\",\n\"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n  } ]\n}"
}

Дополнительную информацию см. в разделе Установка оператора политики репозитория в Руководстве пользователя Amazon ECR Public.

Пример 2: Установка политики репозитория для разрешения IAM-пользователю в вашей учётной записи отправлять изображения

Следующий set-repository-policy пример разрешает IAM-пользователю в вашей учётной записи отправлять изображения в репозиторий ECR в вашей AWS-учётной записи, используя файл с именем file://my-repository-policy.json в качестве текста политики.

aws ecr-public set-repository-policy \
    --repository-name project-a/nginx-web-app \
    --policy-text file://my-repository-policy.json

Содержимое my-repository-policy.json:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPush",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::account-id:user/push-pull-user-1",
                    "arn:aws:iam::account-id:user/push-pull-user-2"
                ]
            },
            "Action": [
                "ecr-public:BatchCheckLayerAvailability",
                "ecr-public:PutImage",
                "ecr-public:InitiateLayerUpload",
                "ecr-public:UploadLayerPart",
                "ecr-public:CompleteLayerUpload"
            ]
        }
    ]
}

Вывод:

{
    "registryId": "12345678901",
    "repositoryName": "project-a/nginx-web-app",
    "policyText": "{\n\"Version\" : \"2008-10-17\",\n\"Statement\" : [ {\n\"Sid\" : \"AllowPush\",\n\"Effect\" : \"Allow\",\n\"Principal\" : {\n\"AWS\" : [ \"arn:aws:iam::12345678901:user/admin\", \"arn:aws:iam::12345678901:user/eksuser1\" ]\n    },\n\"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n  } ]\n}"
}

Дополнительную информацию см. в разделе Установка оператора политики репозитория в Руководстве пользователя Amazon ECR Public.

Пример 3: Установка политики репозитория для разрешения IAM-пользователю из другой учётной записи отправлять изображения

Следующий set-repository-policy пример разрешает определённой учётной записи отправлять изображения, используя входные данные cli file://my-repository-policy.json в вашей AWS-учётной записи.

aws ecr-public set-repository-policy \
    --repository-name project-a/nginx-web-app \
    --policy-text file://my-repository-policy.json

Содержимое my-repository-policy.json:

 {
     "Version": "2008-10-17",
     "Statement": [
         {
             "Sid": "AllowCrossAccountPush",
             "Effect": "Allow",
             "Principal": {
                 "AWS": "arn:aws:iam::other-or-same-account-id:role/RoleName"
             },
             "Action": [
                 "ecr-public:BatchCheckLayerAvailability",
                 "ecr-public:PutImage",
                 "ecr-public:InitiateLayerUpload",
                 "ecr-public:UploadLayerPart",
                 "ecr-public:CompleteLayerUpload"
             ]
         }
     ]
}

Вывод:

{
    "registryId": "12345678901",
    "repositoryName": "project-a/nginx-web-app",
    "policyText": "{\n\"Version\" : \"2008-10-17\",\n\"Statement\" : [ {\n\"Sid\" : \"AllowCrossAccountPush\",\n\"Effect\" : \"Allow\",\n\"Principal\" : {\n\"AWS\" : \"arn:aws:iam::12345678901:role/RoleName\"\n    },\n\"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n  } ]\n}"
}

Дополнительную информацию см. в разделе Примеры политики публичных репозиториев в Руководстве пользователя Amazon ECR Public.

Вывод

registryId -> (строка)

Идентификатор реестра, связанный с запросом.

repositoryName -> (строка)

Имя репозитория, связанное с запросом.

policyText -> (строка)

Текст политики репозитория в формате JSON, применённый к репозиторию.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API