Depois de criar uma concessão de direitos, os principais selecionados podem pedir uma subvenção contra essa concessão de direitos. Se essa autorização tiver um fluxo de trabalho de aprovação especificado, os responsáveis configurados como aprovadores podem aprovar ou recusar pedidos de concessão para essa autorizaçã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 Trusted 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.
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.
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 é aprovador.
Com o ID de concessã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 é um 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. Trusted 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 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 Privileged Access Manager
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 autorizaçõ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. Trusted 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 search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud 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/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: 3600s 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 Privileged Access Manager
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 autorizaçõ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/v1/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/my-project/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/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "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. Trusted 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. Trusted 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" ] }