POST | Criar política de acesso

Prev Next

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 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

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.
Info

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.
Info

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.