Создание политики авторизации для ресурса
Примечание
Функциональность находится на стадии Preview. Чтобы получить доступ, обратитесь в техническую поддержку
Политики авторизации — это механизм контроля доступа Yandex Identity and Access Management, который позволяет управлять разрешениями на выполнение определенных операций с ресурсами Yandex Cloud. Политики авторизации создаются на основе шаблонов и дополняют систему ролей, делая управление доступом более гибким.
Вы можете создать политику авторизации для каталога, облака или организации.
Примечание
Управлять политиками авторизации может пользователь, которому назначена одна из следующих ролей:
resource-manager.adminилиadminна каталог или облако, чтобы управлять политиками авторизации соответственно на уровне каталога или облака;organization-manager.adminилиadminна организацию, чтобы управлять политиками авторизации на уровне организации.
Создать политику авторизации для каталога
Чтобы создать для каталога политику авторизации на основе шаблона без дополнительных параметров:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
Получите список поддерживаемых шаблонов политик авторизации с идентификаторами.
-
Выполните команду:
yc resource-manager folder bind-access-policy \ --name <имя_каталога> \ --access-policy-template-id=<идентификатор_шаблона_политики>Где:
--name— имя каталога, для которого вы хотите создать политику. Вместо имени каталога вы можете указать его идентификатор в параметре--id.--access-policy-template-id— идентификатор шаблона, на основе которого вы хотите создать политику авторизации для указанного каталога.
-
Убедитесь, что политика была создана.
Воспользуйтесь методом REST API bindAccessPolicy для ресурса Folder или вызовом gRPC API FolderService/BindAccessPolicy.
Созданная политика авторизации будет применяться ко всем ресурсам в заданном каталоге.
Создать политику авторизации для облака
Чтобы создать для облака политику авторизации на основе шаблона без дополнительных параметров:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
Получите список поддерживаемых шаблонов политик авторизации с идентификаторами.
-
Выполните команду:
yc resource-manager cloud bind-access-policy \ --name <имя_облака> \ --access-policy-template-id=<идентификатор_шаблона_политики>Где:
--name— имя облака, для которого вы хотите создать политику. Вместо имени облака вы можете указать его идентификатор в параметре--id.--access-policy-template-id— идентификатор шаблона, на основе которого вы хотите создать политику авторизации для указанного облака.
-
Убедитесь, что политика была создана.
Воспользуйтесь методом REST API bindAccessPolicy для ресурса Cloud или вызовом gRPC API CloudService/BindAccessPolicy.
Созданная политика авторизации будет применяться к ресурсам внутри всех каталогов в пределах заданного облака.
Создать политику авторизации для организации
Чтобы создать для организации политику авторизации на основе шаблона без дополнительных параметров:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
Получите список поддерживаемых шаблонов политик авторизации с идентификаторами.
-
Выполните команду:
yc organization-manager organization bind-access-policy \ --name <имя_организации> \ --access-policy-template-id=<идентификатор_шаблона_политики>Где:
--name— имя организации, для которой вы хотите создать политику. Вместо имени организации вы можете указать ее идентификатор в параметре--id.--access-policy-template-id— идентификатор шаблона, на основе которого вы хотите создать политику авторизации для указанной организации.
-
Убедитесь, что политика была создана.
Воспользуйтесь методом REST API bindAccessPolicy для ресурса Organization или вызовом gRPC API OrganizationService/BindAccessPolicy.
Созданная политика авторизации будет применяться к ресурсам внутри всех облаков в пределах заданной организации.
Все шаблоны политик авторизации без дополнительных параметров назначаются на ресурсы одинаково. О том, как назначить на ресурс шаблон политики с дополнительными параметрами, читайте в разделе Примеры.
Примеры
Создать политику serverless.restrictPrivateNetworkInvocation для каталога
Политика serverless.restrictPrivateNetworkInvocation ограничивает возможность вызова функций и контейнеров с внутренних IP-адресов Yandex Virtual Private Cloud заданными явно облачными сетями или определенными IP-адресами в них.
Примечание
Политика serverless.restrictPrivateNetworkInvocation работает только при настроенном сервисном подключении из Yandex Cloud Functions и Yandex Serverless Containers в Yandex Virtual Private Cloud.
Чтобы назначить шаблон политики serverless.restrictPrivateNetworkInvocation на каталог:
Без ограничения по IP-адресам
yc resource-manager folder bind-access-policy \
--name "my-folder" \
--access-policy-template-id=serverless.restrictPrivateNetworkInvocation \
--parameters '"allowed_vpc_network_ids=[<идентификатор_сети_1>,<идентификатор_сети_2>,<идентификатор_сети_3>]","src_ip_restricted_network_ids=[]","allowed_src_ips=[]"'
Где allowed_vpc_network_ids — список идентификаторов облачных сетей, из которых разрешен вызов функций и контейнеров. Вызов функций и контейнеров будет разрешен с любых IP-адресов в подсетях, входящих в указанные облачные сети. При этом к функции/контейнеру должна быть привязана облачная сеть, входящая в указанный список.
Для параметра можно передать нулевое значение — в этом случае необходимо задать ограничение по IP-адресам в параметрах src_ip_restricted_network_ids и allowed_src_ips.
В результате применения политики в каталоге my-folder с внутренних IP-адресов можно будет вызывать только те функции/контейнеры, к которым привязаны облачные сети с идентификаторами <идентификатор_сети_1>, <идентификатор_сети_2> и <идентификатор_сети_3>, и только с IP-адресов подсетей, относящихся к этим облачным сетям.
С ограничением по IP-адресам
yc resource-manager folder bind-access-policy \
--name "my-folder" \
--access-policy-template-id=serverless.restrictPrivateNetworkInvocation \
--parameters '"allowed_vpc_network_ids=[]","src_ip_restricted_network_ids=[<идентификатор_сети_1>,<идентификатор_сети_2>,<идентификатор_сети_3>]","allowed_src_ips=[10.1.2.0/24,172.16.17.0/28,192.168.1.2/32]"'
Где:
-
src_ip_restricted_network_ids— список идентификаторов облачных сетей, из которых возможен вызов функций и контейнеров, с дополнительным ограничением разрешенных IP-адресов. Вызов функций и контейнеров будет разрешен с конкретных IP-адресов, входящих в указанные облачные сети и явно заданных в параметреallowed_src_ips. При этом к функции/контейнеру должна быть привязана облачная сеть, входящая в указанный список. -
allowed_src_ips— список внутренних IP-адресов или диапазонов IP-адресов в нотации CIDR , с которых разрешен вызов функций и контейнеров.Указанные IP-адреса должны принадлежать облачным сетям, заданным в параметре
src_ip_restricted_network_ids.
В результате применения политики в каталоге my-folder с внутренних IP-адресов можно будет вызывать только те функции/контейнеры, к которым привязаны облачные сети с идентификаторами <идентификатор_сети_1>, <идентификатор_сети_2> и <идентификатор_сети_3>, и только с IP-адресов, относящихся одновременно к этим облачным сетям и к диапазонам 10.1.2.0/24, 172.16.17.0/28 и 192.168.1.2/32.
Примечание
Если параметр allowed_vpc_network_ids имеет ненулевое значение, то список IP-адресов, заданный параметрами src_ip_restricted_network_ids и allowed_src_ips, будет проигнорирован.
Создать политику serverless.restrictPublicInvocation для каталога
Политика serverless.restrictPublicInvocation ограничивает возможность вызова функций и контейнеров с публичных IP-адресов.
Чтобы назначить шаблон политики serverless.restrictPublicInvocation на каталог:
yc resource-manager folder bind-access-policy \
--name "my-folder" \
--access-policy-template-id=serverless.restrictPublicInvocation \
--parameters '"allowed_src_ips=[198.51.100.104/29,192.0.2.4/30]"'
Где allowed_src_ip — список публичных IP-адресов или диапазонов IP-адресов в нотации CIDR
В результате применения политики в каталоге my-folder с использованием публичных IP-адресов функции/контейнеры можно будет вызывать только с IP-адресов, относящихся к диапазонам 198.51.100.104/29 и 192.0.2.4/30.