Quando uma autorização tem um fluxo de trabalho de aprovação, os principais especificados como aprovadores podem aprovar ou recusar pedidos de concessão para essa autorização.
Se o nível Premium ou Enterprise do Security Command Center estiver ativado ao nível da organização, o fluxo de trabalho de aprovação pode ter dois níveis de aprovações. Um aprovador pode estar num ou em ambos os níveis de aprovação, mas só pode aprovar uma vez. Depois de receber o número necessário de aprovações de primeiro nível, são enviadas notificações por email aos aprovadores de segundo nível. Depois de receber o número necessário de aprovações de segundo nível, a concessão passa para o estado active
. Se um aprovador recusar a concessão, esta passa para o estado denied
e não é enviada a aprovadores adicionais. Esta funcionalidade está disponível
em pré-visualização.
Tenha em atenção o seguinte quando aprovar ou recusar um pedido de concessão relativamente a um direito:
Não pode aprovar o seu próprio pedido.
Se um pedido não for aprovado nem recusado no prazo de 24 horas, o estado da concessão é alterado para
expired
. Após isto, um principal tem de fazer um novo pedido de concessão se a elevação de privilégios ainda for necessária.
Aprove ou recuse concessões através da Google Cloud consola
Para aprovar ou recusar uma solicitação de concessão feita contra uma autorização, siga estas instruções:
Aceda à página Gestor de acesso privilegiado.
Clique no separador Aprovar concessões e, de seguida, no separador Aprovação pendente.
Na linha relacionada com o pedido que quer aprovar ou recusar, clique em Aprovar/recusar.
Se for necessária uma justificação, introduza-a no campo Comentário. Pode ver o histórico da subvenção no separador Histórico.
Clique em Aprovar ou Recusar.
Pode ver o seu histórico de aprovações no separador O meu histórico de aprovações. O histórico de aprovações está disponível durante 30 dias após a realização de uma ação de aprovação. As concessões criadas em autorizações herdadas de um recurso principal aparecem no histórico de aprovação do recurso principal.
Aprove ou recuse concessões por programação
Para aprovar ou recusar concessões, tem de concluir as seguintes ações:
Pesquise autorizações para as quais é um aprovador.
Com o ID de autorização relevante, pesquise pedidos de concessão que pode aprovar ou recusar.
Aprovar ou recusar os pedidos de concessão.
Pesquise autorizações para as quais é aprovador
gcloud
O comando
gcloud pam entitlements search
com o tipo de acesso do autor da chamada grant-approver
pesquisa autorizações para as quais é um aprovador.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
RESOURCE_TYPE
: opcional. O tipo de recurso ao qual a concessão pertence. Use o valororganization
,folder
ouproject
.RESOURCE_ID
: usado comRESOURCE_TYPE
. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Google CloudOs IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud pam entitlements search \ --caller-access-type=grant-approver \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam entitlements search ` --caller-access-type=grant-approver ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam entitlements search ^ --caller-access-type=grant-approver ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deve receber uma resposta semelhante à seguinte:
additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '22024-03-26T11:07:37.009498890Z' etag: 00000000000000000000000000000000000000000000000000000000000= maxRequestDuration: 3600s name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requesterJustificationConfig: notMandatory: {} state: AVAILABLE updateTime: '2024-03-26T11:07:40.056780645Z'
REST
O método searchEntitlements
da API Privileged Access Manager com o tipo de acesso do autor da chamada GRANT_APPROVER
pesquisa autorizações para as quais é um aprovador.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
SCOPE
: a organização, a pasta ou o projeto em que a concessão se encontra, no formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.FILTER
: opcional. Devolve autorizações cujos valores de campo correspondem a uma expressão AIP-160.PAGE_SIZE
: opcional. O número de itens a devolver numa resposta.PAGE_TOKEN
: opcional. A partir de que página deve começar a resposta, usando um token de página devolvido numa resposta anterior.
Método HTTP e URL:
GET https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements:search?callerAccessType=GRANT_APPROVER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
[ { "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID", "createTime": "2023-11-21T17:28:39.962144708Z", "updateTime": "2023-11-21T17:28:43.160309410Z", "eligibleUsers": [ { "principals": [ "user:alex@example.com" ] } ], "approvalWorkflow": { "manualApprovals": { "steps": [ { "approvers": [ { "principals": [ "user:bola@example.com" ] } ], "approvalsNeeded": 1 } ] } }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "maxRequestDuration": "14400s", "state": "AVAILABLE", "requesterJustificationConfig": { "unstructured": {} }, "additionalNotificationTargets": { "adminEmailRecipients": [ "alex@example.com" ] }, "etag": "00000000000000000000000000000000000000000000000000000000000=" } ]
Pesquise pedidos de concessão que pode aprovar ou recusar
gcloud
O comando
gcloud alpha pam grants search
pesquisa uma concessão que pode aprovar ou recusar, ou que já aprovou ou recusou. Este método não requer autorizações específicas do Gestor de acesso privilegiado
para utilização.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
ENTITLEMENT_ID
: o ID da concessão de direitos a que a concessão pertence. Pode obter o ID pesquisando as concessões para as quais tem aprovação.-
CALLER_RELATIONSHIP_TYPE
: use um dos seguintes valores:had-approved
: devolve as concessões que o autor da chamada aprovou ou recusou.can-approve
: devolve concessões que o autor da chamada pode aprovar ou recusar.
RESOURCE_TYPE
: opcional. O tipo de recurso ao qual a concessão pertence. Use o valororganization
,folder
ouproject
.RESOURCE_ID
: usado comRESOURCE_TYPE
. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Google CloudOs IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud alpha pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=CALLER_RELATIONSHIP_TYPE ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deve receber uma resposta semelhante à seguinte:
additionalEmailRecipients: - bola@example.com createTime: '2024-03-07T00:34:32.557017289Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin id: hwqrt_1 requestedDuration: 3600s requestedPrivilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin entitlementRoleBindingId: hwqrt_1 requester: cruz@example.com state: DENIED timeline: events: - eventTime: '2024-03-07T00:34:32.793769042Z' requested: expireTime: '2024-03-08T00:34:32.793769042Z' - denied: actor: alex@example.com reason: Issue has already been resolved eventTime: '2024-03-07T00:36:08.309116203Z' updateTime: '2024-03-07T00:34:32.926967128Z'
REST
O método searchGrants
da API Privileged Access Manager pesquisa uma concessão que pode aprovar ou recusar, ou que já aprovou ou recusou. Este método não requer autorizações específicas do Gestor de acesso privilegiado
para utilização.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
SCOPE
: a organização, a pasta ou o projeto em que a concessão se encontra, no formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.ENTITLEMENT_ID
: o ID da concessão de direitos a que a concessão pertence. Pode obter o ID pesquisando as concessões para as quais tem aprovação.RELATIONSHIP_TYPE
: os valores válidos são:HAD_APPROVED
: devolve as concessões que o autor da chamada aprovou ou recusou anteriormente.CAN_APPROVE
: devolve concessões que o autor da chamada pode aprovar ou recusar.
FILTER
: opcional. Devolve concessões cujos valores de campo correspondem a uma expressão AIP-160.PAGE_SIZE
: opcional. O número de itens a devolver numa resposta.PAGE_TOKEN
: opcional. A partir de que página deve começar a resposta, usando um token de página devolvido numa resposta anterior.
Método HTTP e URL:
GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=RELATIONSHIP_TYPE&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "grants": [ { "name": "projects/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T03:08:49.625874598Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "APPROVAL_AWAITED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "roleBindings": [ { "role": "roles/storage.admin" "id": "hwqrt_1" } ] } }, "requestedPrivilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "roleBindings": [ { "role": "roles/storage.admin", "entitlementRoleBindingId": "hwqrt_1" } ] } }, "additionalEmailRecipients": [ "bola@google.com" ] } ] }
Aprove subvenções de forma programática
gcloud
O comando
gcloud pam grants describe
aprova um pedido de concessão específico.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
GRANT_ID
: o ID da concessão que está a aprovar. Pode obter o ID pesquisando pedidos de concessão que pode aprovar ou recusar.ENTITLEMENT_ID
: o ID da concessão a que a autorização pertence.APPROVAL_REASON
: por que motivo a subvenção foi aprovada.RESOURCE_TYPE
: opcional. O tipo de recurso ao qual a concessão pertence. Use o valororganization
,folder
ouproject
.RESOURCE_ID
: usado comRESOURCE_TYPE
. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Google CloudOs IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud pam grants approve \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="APPROVAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants approve ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="APPROVAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam grants approve ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="APPROVAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deve receber uma resposta semelhante à seguinte:
createTime: '2024-04-05T01:17:04.596455403Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 2700s requester: cruz@example.com state: SCHEDULED timeline: events: - eventTime: '2024-04-05T01:17:04.732226659Z' requested: expireTime: '2024-04-06T01:17:04.732226659Z' - approved: actor: alex@example.com reason: Access allowed under existing policy eventTime: '2024-04-05T01:21:49.139539732Z' - eventTime: '2024-04-05T01:21:49.139463954Z' scheduled: scheduledActivationTime: '2024-04-05T01:21:49.139463954Z' updateTime: '2024-04-05T01:21:49.139463954Z'
REST
O método approveGrant
da API Privileged Access Manager aprova um pedido de concessão específico.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
SCOPE
: a organização, a pasta ou o projeto em que a concessão se encontra, no formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.ENTITLEMENT_ID
: o ID da concessão a que a autorização pertence.GRANT_ID
: o ID da concessão que está a aprovar. Pode obter o ID pesquisando pedidos de concessão que pode aprovar ou recusar.REASON
: O motivo pelo qual o pedido de concessão foi aprovado.
Método HTTP e URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve
Corpo JSON do pedido:
{ "reason": "REASON" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T23:01:13.964619844Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "SCHEDULED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } }, { "eventTime": "2024-03-06T23:01:13.964685709Z", "approved": { "reason": "Approved escalation", "actor": "cruz@example.com" } }, { "eventTime": "2024-03-06T23:01:13.964619844Z", "scheduled": { "scheduledActivationTime": "2024-03-06T23:01:13.964619844Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com.com" ] }
Negue concessões de forma programática
gcloud
O comando
gcloud pam grants describe
recusa um pedido de concessão específico.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
GRANT_ID
: o ID da concessão que está a recusar. Pode encontrar o ID pesquisando concessões que pode aprovar ou recusar.ENTITLEMENT_ID
: o ID da concessão a que a autorização pertence.DENIAL_REASON
: Por que motivo a subvenção foi recusada.RESOURCE_TYPE
: opcional. O tipo de recurso ao qual a concessão pertence. Use o valororganization
,folder
ouproject
.RESOURCE_ID
: usado comRESOURCE_TYPE
. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Google CloudOs IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud pam grants deny \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="DENIAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants deny ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="DENIAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam grants deny ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="DENIAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deve receber uma resposta semelhante à seguinte:
createTime: '2024-04-05T01:29:13.129192816Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 2700s requester: cruz@example.com state: DENIED timeline: events: - eventTime: '2024-04-05T01:29:13.267878626Z' requested: expireTime: '2024-04-06T01:29:13.267878626Z' - denied: actor: alex@example.com reason: Access denied under existing policy eventTime: '2024-04-05T01:29:49.492161363Z' updateTime: '2024-04-05T01:29:49.492097724Z'
REST
O método
denyGrant
da API Privileged Access Manager nega um pedido de concessão específico.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
SCOPE
: a organização, a pasta ou o projeto em que a concessão se encontra, no formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das pastas e das organizações são numéricos, como123456789012
.ENTITLEMENT_ID
: o ID da concessão a que a autorização pertence.GRANT_ID
: o ID da concessão que está a recusar. Pode obter o ID pesquisando concessões que pode aprovar ou recusar.REASON
: o motivo pelo qual o pedido de concessão foi recusado.
Método HTTP e URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:deny
Corpo JSON do pedido:
{ "reason": "REASON" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-07T00:34:32.557017289Z", "updateTime": "2024-03-07T00:36:08.309046580Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "DENIED", "timeline": { "events": [ { "eventTime": "2024-03-07T00:34:32.793769042Z", "requested": { "expireTime": "2024-03-08T00:34:32.793769042Z" } }, { "eventTime": "2024-03-07T00:36:08.309116203Z", "denied": { "reason": "Outage already resolved", "actor": "cruz@example.com" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com" ] }