Descrição
Crie uma política de acesso no PAM Core. Uma única requisição define o nome da política, suas regras de senha e de sessão, o comportamento dos aprovadores, os critérios que determinam quais credenciais e dispositivos a política abrange e suas limitações de horário de acesso.
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.
- Os sites, tipos de dispositivo e tipos de credencial referenciados em
criteriadevem existir previamente.
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
POST /api/v2/pam/access-policies
Cabeçalhos
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
Content-Type |
Sim | Deve ser application/json. |
Idempotency-Key |
Não | UUID gerado pelo cliente que permite reenviar a requisição com segurança, sem criar políticas duplicadas. |
Corpo da requisição
| 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. Retorna null quando não informada. |
password |
object | — | Regras de acesso a senhas. Consulte Password. |
session |
object | — | Regras de acesso a sessões. Consulte Session. |
approvers_config |
object | — | Comportamento dos aprovadores. Consulte Approvers config. |
criteria |
object | — | Regras que determinam quais recursos a política abrange. Consulte Criteria. |
access_limitation |
object | — | Restrições de horário aplicadas à política. Consulte Access limitation. |
O estado active não pode ser definido aqui. Uma política é ativada e desativada por meio de POST | Ativar política de acesso e POST | Desativar política de acesso.
Password
| Campo | Tipo | Descrição |
|---|---|---|
password.allow_view |
boolean | Habilita a visualização da senha. |
password.view_mode |
string | Quanto da senha é exibido. Valores permitidos: complete, first_part, second_part. |
password.require_reason |
boolean | Exige que o usuário informe uma justificativa. |
password.require_approval |
boolean | Exige aprovação antes de o acesso ser concedido. |
password.approvals_required |
number | Número de aprovações necessárias para conceder o acesso. |
password.disapprovals_to_cancel |
number | Número de reprovações que cancelam a solicitação. |
password.approval_in_levels |
boolean | Habilita a aprovação por níveis. |
password.allow_emergency_access |
boolean | Habilita o acesso emergencial. |
password.allow_change_expiration |
boolean | Permite alterar a expiração do acesso. |
password.change_expiration_minutes |
number | Tempo máximo de expiração, em minutos. |
password.require_approval_days |
boolean | Restringe a aprovação a dias específicos. |
password.approval_days |
array[string] | Dias em que a aprovação é aceita. |
password.approval_times |
array[string] | Janelas de horário em que a aprovação é aceita. |
password.approval_custom_times |
array[object] | Janelas de horário de aprovação personalizadas. |
Session
| Campo | Tipo | Descrição |
|---|---|---|
session.allow_start |
boolean | Habilita o início de sessões. |
session.block_during_freezing |
boolean | Bloqueia sessões durante o freezing. |
session.require_reason |
boolean | Exige que o usuário informe uma justificativa. |
session.require_approval |
boolean | Exige aprovação antes de a sessão ser iniciada. |
session.approvals_required |
number | Número de aprovações necessárias para iniciar a sessão. |
session.disapprovals_to_cancel |
number | Número de reprovações que cancelam a solicitação. |
session.approval_in_levels |
boolean | Habilita a aprovação por níveis. |
session.allow_emergency_access |
boolean | Habilita o acesso emergencial. |
session.require_change_id |
boolean | Exige um Change Audit ID para iniciar a sessão. |
session.require_approval_days |
boolean | Restringe a aprovação a dias específicos. |
session.approval_days |
array[string] | Dias em que a aprovação é aceita. |
session.approval_times |
array[string] | Janelas de horário em que a aprovação é aceita. |
session.approval_custom_times |
array[object] | Janelas de horário de aprovação personalizadas. |
Approvers config
| Campo | Tipo | Descrição |
|---|---|---|
approvers_config.governance_id_required |
boolean | Exige um Governance ID na solicitação de acesso. |
approvers_config.always_add_user_manager |
boolean | Adiciona automaticamente o gestor do usuário como aprovador. |
Criteria
O objeto criteria contém as regras que determinam quais recursos a política abrange. Os critérios são combinados com lógica AND; os valores dentro de cada array são combinados com lógica OR. Um array vazio desabilita o critério.
| Campo | Tipo | Descrição |
|---|---|---|
criteria.site_ids |
array[number] | Códigos de identificação dos sites abrangidos pela política. |
criteria.device_type_ids |
array[number] | Códigos de identificação dos tipos de dispositivo abrangidos pela política. |
criteria.credential_type_ids |
array[number] | Códigos de identificação dos tipos de credencial abrangidos pela política. |
criteria.devices |
array[string] | Hostnames dos dispositivos abrangidos pela política. |
criteria.products |
array[string] | Produtos ou modelos abrangidos pela política. |
criteria.usernames |
array[string] | Nomes de usuário abrangidos pela política. |
criteria.additional_information |
array[string] | Valores de informações adicionais abrangidos pela política. |
criteria.device_tags |
array[string] | Tags de dispositivo abrangidas pela política. |
criteria.credential_tags |
array[string] | Tags de credencial abrangidas pela política. |
O filtro por fabricante do dispositivo não está disponível nesta versão da API. A interface web oferece esse critério, portanto políticas que dependem dele não podem ser criadas nem editadas pela API.
Access limitation
| Campo | Tipo | Descrição |
|---|---|---|
access_limitation.days |
array[string] | Dias em que o acesso é permitido. Valores permitidos: all, monday, tuesday, wednesday, thursday, friday. |
access_limitation.times |
array[string] | Janelas de horário em que o acesso é permitido. Valores permitidos: all, 00:00-04:00, 04:00-08:00, 08:00-12:00, 12:00-16:00, 16:00-20:00, 20:00-00:00. |
access_limitation.custom_times |
array[object] | Janelas de horário personalizadas em que o acesso é permitido. |
access_limitation.period_start |
datetime | Início do período em que a política se aplica. null significa sem restrição. |
access_limitation.period_end |
datetime | Fim do período em que a política se aplica. null significa sem restrição. |
Exemplo de requisição
POST {{url}}/api/v2/pam/access-policies
Corpo
{
"name": "PAM Administrators",
"description": "Full access for PAM admins.",
"password": {
"allow_view": true,
"view_mode": "complete",
"require_reason": false,
"require_approval": true,
"approvals_required": 1,
"disapprovals_to_cancel": 1,
"approval_in_levels": true,
"allow_emergency_access": true,
"allow_change_expiration": true,
"change_expiration_minutes": 30,
"require_approval_days": false
},
"session": {
"allow_start": true,
"block_during_freezing": false,
"require_reason": true,
"require_approval": true,
"approvals_required": 1,
"disapprovals_to_cancel": 1,
"approval_in_levels": true,
"allow_emergency_access": true,
"require_change_id": true,
"require_approval_days": true,
"approval_days": ["all"],
"approval_times": ["all"]
},
"approvers_config": {
"governance_id_required": true,
"always_add_user_manager": true
},
"criteria": {
"site_ids": [1],
"device_type_ids": [3],
"credential_type_ids": [5],
"device_tags": ["prod"],
"credential_tags": ["finance"]
},
"access_limitation": {
"days": ["all"],
"times": ["all"],
"period_start": null,
"period_end": null
}
}
Resposta
HTTP/1.1 201 Created
Location: /api/v2/pam/access-policies/3001
ETag: "v1"
O cabeçalho Location contém o caminho da política criada e o cabeçalho ETag contém sua versão atual. Guarde o valor do ETag — PUT | Atualizar política de acesso por [id], PATCH | Atualizar parcialmente a política de acesso por [id] e DELETE | Excluir política de acesso por [id] o utilizam no cabeçalho If-Match para detectar alterações concorrentes.
Exemplo de corpo da resposta
{
"data": {
"id": 3001,
"access_policy": {
"name": "PAM Administrators",
"active": true,
"description": "Full access for PAM admins."
},
"password": {
"allow_view": true,
"view_mode": "complete",
"require_reason": false,
"require_approval": true,
"approvals_required": 1,
"disapprovals_to_cancel": 1,
"approval_in_levels": true,
"allow_emergency_access": true,
"allow_change_expiration": true,
"change_expiration_minutes": 30,
"require_approval_days": false,
"approval_days": [],
"approval_times": [],
"approval_custom_times": []
},
"session": {
"allow_start": true,
"block_during_freezing": false,
"require_reason": true,
"require_approval": true,
"approvals_required": 1,
"disapprovals_to_cancel": 1,
"approval_in_levels": true,
"allow_emergency_access": true,
"require_change_id": true,
"require_approval_days": true,
"approval_days": ["all"],
"approval_times": ["all"],
"approval_custom_times": []
},
"approvers_config": {
"governance_id_required": true,
"always_add_user_manager": true
},
"criteria": {
"site_ids": [1],
"device_type_ids": [3],
"credential_type_ids": [5],
"devices": [],
"products": [],
"usernames": [],
"additional_information": [],
"device_tags": ["prod"],
"credential_tags": ["finance"]
},
"access_limitation": {
"days": ["all"],
"times": ["all"],
"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
| Campo | Tipo | Descrição |
|---|---|---|
data |
object | A política de acesso criada. |
data.id |
integer | Código de identificação único da política de acesso, atribuído pelo Segura®. |
data.access_policy |
object | Atributos principais da política de acesso. |
data.access_policy.name |
string | Nome da política de acesso. |
data.access_policy.active |
boolean | Indica se a política está ativa. |
data.access_policy.description |
string | Descrição da política de acesso. Retorna null quando não informada. |
data.password |
object | Regras de acesso a senhas. Os campos correspondem aos do corpo da requisição, com os arrays não definidos retornados vazios. |
data.session |
object | Regras de acesso a sessões. Os campos correspondem aos do corpo da requisição, com os arrays não definidos retornados vazios. |
data.approvers_config |
object | Comportamento dos aprovadores. Os campos correspondem aos do corpo da requisição. |
data.criteria |
object | Regras abrangidas pela política. Os nove critérios são retornados, com os não definidos como arrays vazios. |
data.access_limitation |
object | Restrições de horário aplicadas à política. |
meta |
object | Metadados do recurso. |
meta.links |
object | Links de navegação para o recurso criado. |
meta.links.self |
string | Caminho da política de acesso criada. |
meta.actions |
object | Ações disponíveis para a política em seu estado atual. Uma política criada como ativa oferece deactivate. |
meta.actions.deactivate |
string | Caminho utilizado para desativar a política. |
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 criar 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. |
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.