[ 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 (строка)
--repository-name (строка)
--policy-text (строка)
--force | --no-force (логическое значение)
--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 -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.
|
|