---
title: How to Update a Policy
url: https://docs.vultr.com/platform/iam/policies/how-to-update-a-policy
description: Update an existing IAM policy on Vultr. Modify the policy document, name, or description to adjust permission rules for associated users, groups, and roles.
publish_date: 2026-03-24T19:52:13.623437Z
last_updated: 2026-06-01T21:19:46.579395Z
---

Updating a policy allows you to change its name, description, or permission rules defined in the policy document. This is useful when you need to expand or restrict the actions and resources covered by the policy.

Follow this guide to update a policy using the Vultr Console, the Vultr API, or Terraform.

=== "Vultr Console"

    1. Log in to the [Vultr Console](https://console.vultr.com).
    1. Click the organization name in the top navigation bar.
    1. Click **Manage Organization**.
    1. Click the **Permission Policies** tab.
    1. Click the name of the policy you want to update.
    1. Click the **Edit** icon in the **Details** section to update the name or description, then click **Save Changes**.
    1. Click the **Edit** icon in the **Policy Details** section to modify the permission rules. Update the **Allow** or **Deny** settings for each action as needed, then click **Save Changes**.

=== "Vultr API"

    1. Send a `GET` request to the [**List Policies** endpoint](https://www.vultr.com/api/#tag/iam/operation/list-iam-policies) to retrieve all policies in your organization.

        ```console
        $ curl "https://api.vultr.com/v2/policies" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

        Note the `id` of the policy you want to update.

    1. Send a `GET` request to the [**Read Policy** endpoint](https://www.vultr.com/api/#tag/iam/operation/get-iam-policy) to retrieve the current policy details. Replace `{policy-id}` with the id you retrieved in the previous step.

        ```console
        $ curl "https://api.vultr.com/v2/policies/{policy-id}" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `PUT` request to the [**Update Policy** endpoint](https://www.vultr.com/api/#tag/iam/operation/update-iam-policy) to update the policy. Replace the values with your updated policy details.

        ```console
        $ curl "https://api.vultr.com/v2/policies/{policy-id}" \
            -X PUT \
            -H "Authorization: Bearer ${VULTR_API_KEY}" \
            -H "Content-Type: application/json" \
            -d '{
                "name": "NEW-POLICY-NAME",
                "description": "NEW-POLICY-DESCRIPTION",
                "policy_document": {
                    "Version": "2026-03-20",
                    "Statement": [
                        {
                            "Action": [
                                "compute.instance.List",
                                "compute.instance.Read",
                                "compute.instance.Update"
                            ],
                            "Effect": "Allow",
                            "Resource": "*"
                        }
                    ]
                }
            }'
        ```

        A successful update returns an HTTP `202 Accepted` response with no response body.

    1. Send a `GET` request to the [**Read Policy** endpoint](https://www.vultr.com/api/#tag/iam/operation/get-iam-policy) to retrieve the updated details.

        ```console
        $ curl "https://api.vultr.com/v2/policies/{policy-id}" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

        Verify that the policy details reflect the new values.

=== "Terraform"

    1. Ensure the [Vultr Terraform provider](https://registry.terraform.io/providers/vultr/vultr/latest/docs) is configured in your Terraform project.

    1. Open the policy resource configuration and modify the `name`, `description`, or `statement` blocks.

        ```console
        $ nano policies.tf
        ```

    1. Apply the changes.

        ```console
        $ terraform apply
        ```

        Verify that the output shows `vultr_organization_policy.my_policy: Modifications complete`.