PUT | Atualizar política de acesso por [id]

Prev Next

Descrição

Atualize todas as configurações de uma política de acesso no PAM Core. O corpo da requisição tem a mesma estrutura de POST | Criar política de acesso.

Atenção

Toda configuração não enviada no corpo da requisição é redefinida, incluindo as configurações dos namespaces que você omitir por completo. Para alterar apenas alguns campos e manter os demais inalterados, utilize PATCH | Atualizar parcialmente a política de acesso por [id].

Para alterar apenas se a política está ativa, utilize POST | Ativar política de acesso ou POST | Desativar política de acesso. O estado active não é afetado por este endpoint.


Pré-requisitos

  • Uma aplicação com a autorização Access Policy (V2) concedida pelo administrador no A2A, com a Permissão do recurso PAM definida como Leitura e escrita. Para mais informações, acesse Como gerenciar autorizações no A2A.
  • Um token de acesso OAuth 2.0 válido. Para mais informações, acesse Como autenticar uma aplicação A2A.
  • O valor atual do ETag da política de acesso, retornado por GET | Listar uma política de acesso por [id] e por todas as operações de escrita na política.
  • Os sites, tipos de dispositivo e tipos de credencial referenciados em criteria devem existir previamente.
Info

Um token de acesso carrega apenas as autorizações que existiam no momento em que foi gerado. Depois que o administrador habilitar a autorização Access Policy (V2), gere um novo token para a aplicação, um token existente não passa a ter a nova autorização.


Requisição

PUT /api/v2/pam/access-policies/{id}

Parâmetros de caminho

Campo Tipo Obrigatório Descrição
id integer Sim Código de identificação único da política de acesso. Nota: este valor é atribuído pelo Segura® em POST | Criar política de acesso.

Cabeçalhos

Cabeçalho Obrigatório Descrição
Content-Type Sim Deve ser application/json.
If-Match Sim Valor do ETag da versão da política que está sendo atualizada. A requisição é rejeitada com 412 quando o valor não corresponde à versão atual da política.

Corpo da requisição

O corpo da requisição tem a mesma estrutura de POST | Criar política de acesso. Acesse esse artigo para consultar as tabelas completas de campos dos namespaces password, session, approvers_config, criteria e access_limitation.

Campo Tipo Obrigatório Descrição
name string Sim Nome da política de acesso. Espaços no início e no fim são removidos e o resultado não pode ser vazio.
description string Não Descrição da política de acesso. Redefinida como null quando não enviada.
password object — Regras de acesso a senhas. Redefinidas quando não enviadas.
session object — Regras de acesso a sessões. Redefinidas quando não enviadas.
approvers_config object — Comportamento dos aprovadores. Redefinido quando não enviado.
criteria object — Regras que determinam quais recursos a política abrange. Redefinidas quando não enviadas.
access_limitation object — Restrições de horário aplicadas à política. Redefinidas quando não enviadas.

Exemplo de requisição

PUT {{url}}/api/v2/pam/access-policies/3001

Cabeçalhos

Content-Type: application/json
If-Match: "v1"

Corpo

{
    "name": "PAM Administrators - Updated",
    "description": "Updated description.",
    "password": {
        "allow_view": true,
        "view_mode": "complete",
        "require_reason": true,
        "require_approval": true,
        "approvals_required": 2,
        "disapprovals_to_cancel": 1,
        "approval_in_levels": true,
        "allow_emergency_access": false,
        "allow_change_expiration": true,
        "change_expiration_minutes": 60,
        "require_approval_days": false
    },
    "session": {
        "allow_start": true,
        "block_during_freezing": true,
        "require_reason": true,
        "require_approval": true,
        "approvals_required": 2,
        "disapprovals_to_cancel": 1,
        "approval_in_levels": true,
        "allow_emergency_access": false,
        "require_change_id": true,
        "require_approval_days": false
    },
    "approvers_config": {
        "governance_id_required": true,
        "always_add_user_manager": false
    },
    "criteria": {
        "site_ids": [1, 2],
        "device_type_ids": [3],
        "credential_type_ids": [5],
        "device_tags": ["prod", "staging"]
    },
    "access_limitation": {
        "days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
        "times": ["08:00-18:00"],
        "period_start": null,
        "period_end": null
    }
}

Resposta

HTTP/1.1 200 OK
ETag: "v2"

O cabeçalho ETag contém a nova versão da política. Utilize esse valor no cabeçalho If-Match da próxima operação de escrita.

Exemplo de corpo da resposta

{
    "data": {
        "id": 3001,
        "access_policy": {
            "name": "PAM Administrators - Updated",
            "active": true,
            "description": "Updated description."
        },
        "password": {
            "allow_view": true,
            "view_mode": "complete",
            "require_reason": true,
            "require_approval": true,
            "approvals_required": 2,
            "disapprovals_to_cancel": 1,
            "approval_in_levels": true,
            "allow_emergency_access": false,
            "allow_change_expiration": true,
            "change_expiration_minutes": 60,
            "require_approval_days": false,
            "approval_days": [],
            "approval_times": [],
            "approval_custom_times": []
        },
        "session": {
            "allow_start": true,
            "block_during_freezing": true,
            "require_reason": true,
            "require_approval": true,
            "approvals_required": 2,
            "disapprovals_to_cancel": 1,
            "approval_in_levels": true,
            "allow_emergency_access": false,
            "require_change_id": true,
            "require_approval_days": false,
            "approval_days": [],
            "approval_times": [],
            "approval_custom_times": []
        },
        "approvers_config": {
            "governance_id_required": true,
            "always_add_user_manager": false
        },
        "criteria": {
            "site_ids": [1, 2],
            "device_type_ids": [3],
            "credential_type_ids": [5],
            "devices": [],
            "products": [],
            "usernames": [],
            "additional_information": [],
            "device_tags": ["prod", "staging"],
            "credential_tags": []
        },
        "access_limitation": {
            "days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
            "times": ["08:00-18:00"],
            "custom_times": [],
            "period_start": null,
            "period_end": null
        }
    },
    "meta": {
        "links": { "self": "/api/v2/pam/access-policies/3001" },
        "actions": {
            "deactivate": "/api/v2/pam/access-policies/3001/deactivate"
        }
    }
}

Neste exemplo, credential_tags foi omitido da requisição e retorna como um array vazio, o comportamento de redefinição descrito acima.


Campos do corpo da resposta

A resposta retorna a política de acesso completa, com os mesmos campos de GET | Listar uma política de acesso por [id]. Acesse esse artigo para consultar as tabelas completas de campos.

Campo Tipo Descrição
data object A política de acesso atualizada.
data.id integer Código de identificação único da política de acesso.
data.access_policy object Atributos principais da política de acesso.
data.password object Regras de acesso a senhas após a atualização.
data.session object Regras de acesso a sessões após a atualização.
data.approvers_config object Comportamento dos aprovadores após a atualização.
data.criteria object Regras abrangidas pela política após a atualização.
data.access_limitation object Restrições de horário aplicadas à política após a atualização.
meta object Metadados do recurso.
meta.links.self string Caminho da política de acesso.
meta.actions object Ações disponíveis para a política em seu estado atual.

Erros

Código HTTP Mensagem Causa possível Solução
400 api.request.malformed O corpo da requisição não é um JSON válido. Verifique a sintaxe do corpo e reenvie a requisição.
401 api.auth.token.invalid O token de acesso está ausente ou expirou. Solicite um novo token de acesso.
403 api.permission.denied A autorização não tem permissão para atualizar políticas de acesso. Peça ao administrador para verificar a autorização Access Policy (V2) e a Permissão do recurso PAM no A2A e gere um novo token.
404 api.resource.not_found A política de acesso não existe ou está fora do escopo da autorização. Verifique o código de identificação enviado no caminho.
409 api.resource.inactive A requisição tentou escrever em uma política de acesso inativa. Ative a política com POST | Ativar política de acesso antes de atualizá-la.
412 api.precondition.failed O valor de If-Match não corresponde à versão atual da política, o que significa que a política foi alterada depois de ser lida. Obtenha a política novamente com GET | Listar uma política de acesso por [id], revise as alterações e reenvie a requisição com o novo ETag.
422 api.validation.required_field Um campo obrigatório está ausente no corpo da requisição. Adicione o campo ausente e reenvie a requisição.
422 api.validation.invalid_reference Um site, tipo de dispositivo ou tipo de credencial referenciado não existe. Verifique os códigos de identificação enviados em criteria.
422 api.enum.invalid_value Um campo recebeu um valor fora da lista de valores permitidos. Verifique os valores permitidos para o campo e reenvie a requisição.
429 rate_limit_exceeded O limite de requisições foi excedido. Reduza a frequência de requisições e tente novamente.
500 api.internal.error Erro interno do servidor. Entre em contato com a equipe de suporte da Segura®.

Para mensagens de erros de autenticação e a política de 403 versus 404, acesse API v2 - Convenções e comportamentos compartilhados.