Organization access policy management
Access policies are a Yandex Identity and Access Management mechanism that allows you to manage permissions for specific operations with Yandex Cloud resources. Access policies are based on templates and complement the role system for more flexible access management.
An organization's access policies can be managed by a user with the organization-manager.admin or admin role.
Creating an access policy for an organization
To create an access policy for an organization based on a template without parameters:
If you do not have the Yandex Cloud CLI yet, install and initialize it.
-
Get a list of supported access policy templates with their IDs.
-
Run this command:
yc organization-manager organization bind-access-policy \ --name <organization_name> \ --access-policy-template-id=<policy_template_ID>Where:
--name: Name of the organization you want to create a policy for. Instead of the organization name, you can provide its ID in the--idparameter.--access-policy-template-id: ID of the template you want to use as the basis for the new access policy for the organization.
-
Make sure the policy was created.
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the guides on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.
-
Get the ID of the access policy template without parameters.
-
Add the
yandex_organization_manager_organization_iam_policy_bindingresource to the configuration:resource "yandex_organization_manager_organization_iam_policy_binding" "policy" { organization_id = "<organization_ID>" access_policy_template_id = "<policy_template_ID>" }Where
organization_idis the organization ID, andaccess_policy_template_id, the access policy template ID. This resource creates a policy template binding rather than assigning a role to a subject.For more information, see this provider guide.
-
Apply the configuration:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
-
Use the bindAccessPolicy REST API method for the Organization resource or the OrganizationService/BindAccessPolicy gRPC API call.
The new access policy will apply to resources within all clouds in the specified organization.
Viewing the list of your organization's access policies
To view a list of access policies created for an organization:
If you do not have the Yandex Cloud CLI yet, install and initialize it.
Run the following command, specifying the name or ID of the organization for which you want to view the created policies:
yc organization-manager organization list-access-policy-bindings <organization_name_or_ID>
Result:
+------------------------------+
| ACCESS POLICY TEMPLATE ID |
+------------------------------+
| organization.denyUserListing |
+------------------------------+
Use the listAccessPolicyBindings REST API method for the Organization resource or the OrganizationService/ListAccessPolicyBindings gRPC API call.
Deleting an access policy created for an organization
To delete an access policy created for an organization, follow these steps:
If you do not have the Yandex Cloud CLI yet, install and initialize it.
-
Get a list of IDs of access policy templates assigned for the organization.
-
Run this command:
yc organization-manager organization unbind-access-policy \ --name <organization_name> \ --access-policy-template-id=<policy_template_ID>Where:
--name: Name of the organization to delete the policy for. Instead of the organization name, you can provide its ID in the--idparameter.--access-policy-template-id: ID of the access policy template you want to delete for the specified organization.
-
Make sure the policy was deleted.
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the guides on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.
-
In the configuration, locate the
yandex_organization_manager_organization_iam_policy_bindingresource with the IDs of the policy template inaccess_policy_template_idand organization inorganization_id. -
Remove the section of that resource. The organization resource itself should not be deleted.
-
Apply the configuration:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
Make sure the plan removes only the correct policy binding. These steps apply to the binding managed by the current Terraform configuration.
-
Use the unbindAccessPolicy REST API method for the Organization resource or the OrganizationService/UnbindAccessPolicy gRPC API call.
The access policy will no longer apply to resources within all clouds in the specified organization.