Descrição
Atualize configurações específicas de uma política de acesso no PAM Core. Apenas os campos enviados no corpo da requisição são alterados — todos os demais mantêm seus valores atuais, inclusive os campos do mesmo namespace. Os próprios namespaces podem ser enviados parcialmente.
Este é o endpoint indicado para alterações pontuais. Para atualizar todas as configurações em uma única requisição, acesse PUT | Atualizar política de acesso por [id], que redefine todo campo não enviado.
Para alterar apenas se a política está ativa, utilize POST | Ativar política de acesso ou POST | Desativar política de acesso. O campo active não pode ser modificado 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
ETagda 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.
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
PATCH /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/merge-patch+json. Difere dos demais endpoints, que utilizam 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
Envie apenas os namespaces e campos que deseja alterar. O corpo utiliza os mesmos nomes e tipos de campo 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.
Campos que não podem ser modificados
| Campo | Motivo |
|---|---|
id |
Atribuído pelo Segura® na criação da política e permanente. |
active |
Controlado por POST | Ativar política de acesso e POST | Desativar política de acesso. |
O envio de qualquer um desses campos retorna 422 com o código patch.field.not.allowed.
Exemplo de requisição
PATCH {{url}}/api/v2/pam/access-policies/3001
Cabeçalhos
Content-Type: application/merge-patch+json
If-Match: "v2"
Corpo
{
"password": {
"require_approval": false,
"approvals_required": 0
}
}
Esta requisição altera dois campos do namespace password. Todos os demais campos de password — e todos os demais namespaces — mantêm seus valores atuais.
Resposta
HTTP/1.1 200 OK
ETag: "v3"
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
A resposta retorna a política de acesso completa, e não apenas os campos alterados.
{
"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": false,
"approvals_required": 0,
"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"
}
}
}
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 |
patch.field.not.allowed |
O corpo da requisição contém um campo que não pode ser modificado por este endpoint. | Remova o campo do corpo. Para alterar o estado de ativação, utilize as ações de ativar e desativar. |
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®. |
Exemplos de respostas de erro
412 — o ETag não corresponde à versão atual da política:
{
"error": {
"code": "api.precondition.failed",
"message": "ETag does not match."
}
}
422 — o corpo da requisição contém um campo que não pode ser modificado:
{
"error": {
"code": "patch.field.not.allowed",
"message": "Field 'type' cannot be modified via PATCH."
}
}
Para mensagens de erros de autenticação e a política de 403 versus 404, acesse API v2 - Convenções e comportamentos compartilhados.