Como gravar análises de políticas no Cloud Storage

Nesta página, você aprende como analisar políticas de gerenciamento de identidade e acesso (IAM) de forma assíncrona e gravar resultados no Cloud Storage. A funcionalidade é, em grande parte, equivalente à análise de políticas de IAM, exceto se o resultado da análise é gravado em um bucket do Cloud Storage.

Antes de começar

  • É necessário ativar a API Cloud Asset no seu projeto.

  • Se você estiver usando a API para executar essas consultas, precisará configurar o ambiente e gcurl.

    1. Configure o ambiente.

    2. Para configurar um alias do gcurl, conclua as seguintes etapas

      Se você estiver em uma instância do Compute Engine, execute o seguinte comando.

      alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json" -X POST'
      

      Se você não estiver em uma instância do Compute Engine, execute o seguinte comando.

      alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
      -H "Content-Type: application/json" -X POST'
      

      Em que CREDENTIALS é o caminho do arquivo de credenciais, como ~/credentials.json.

Permissões necessárias

As permissões a seguir são necessárias para executar uma análise de política e gravar os resultados da análise no bucket especificado do Cloud Storage:

  • Permissões para executar uma análise de política

  • Permissões para gravar em um bucket do Cloud Storage:

    • storage.objects.create

    Essa permissão está incluída nos seguintes papéis predefinidos

    • Criador de objetos do Storage (roles/storage.objectCreator)
    • Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter)
    • Proprietário de bucket legado do Storage (roles/storage.legacyBucketOwner)

    Para mais informações, consulte Papéis do IAM para o Cloud Storage.

Chamando AnalyzeIamPolicyLongrunning

O método AnalyzeIamPolicyLongrunning permite emitir uma solicitação de análise e receber resultados no bucket do Cloud Storage especificado.

gcloud

É possível chamar AnalyzeIamPolicyLongrunning no projeto com API ativada usando o comando do gcloud asset analyze-iam-policy-longrunning. É preciso executar o SDK do Cloud versão 314.0.0 ou posterior. Para verificar sua versão, use o comando gcloud version.

gcloud asset analyze-iam-policy-longrunning \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --gcs-output-path="GCS_OUTPUT_PATH"

Por exemplo, para gravar resultados de análise de quem tem permissões compute.instances.get e compute.instances.start na instância do Compute Engine ipa-gce-instance-2 na organização 123456789 para o bucket do Cloud Storage gcs-bucket-01 com um nome de arquivo como analysis.json, faça o seguinte:

gcloud asset analyze-iam-policy-longrunning --organization="123456789" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start" \
    --gcs-output-path="gs://gcs-bucket-01/analysis.json"

Saiba mais na ajuda:

gcloud asset analyze-iam-policy-longrunning --help

REST

Analise as políticas do IAM e grave os resultados usando o alias gcurl.

gcurl -d "$JSON_REQUEST" \
"https://cloudasset.googleapis.com/v1/organizations/${YOUR_ORG_ID}:analyzeIamPolicyLongrunning"

Em que:

  • YOUR_ORG_ID é o ID da organização, como: 123456789

  • JSON_REQUEST é a solicitação de análise no formato JSON. Por exemplo, para analisar quem tem as permissões compute.instances.get e compute.instances.start na instância do Compute Engine ipa-gce-instance-2, na organização 123456789 para o bucket do Cloud Storage gcs-bucket-01. com um nome de arquivo como analysis.json, faça o seguinte:

    JSON_REQUEST='{
      "analysisQuery":{
        "scope":"organization/123456789",
        "resourceSelector":{
           "fullResourceName":"//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
        },
        "accessSelector":{
           "permissions":[
              "compute.instances.get",
              "compute.instances.start"
           ]
        }
      },
      "outputConfig":{
        "gcsDestination":{
           "uri":"gs://gcs-bucket-01/analysis.json"
        }
      }
    }'
    

Como ver os resultados da análise de política do IAM

Para visualizar sua análise de política do IAM, faça o seguinte:

  1. Acesse a página do Navegador do Cloud Storage.
    Abrir a página do Navegador do Cloud Storage

  2. Abra o novo arquivo para o qual você gravou a análise.

Os resultados listam as tuplas de {identity, role(s)/permission(s), resource} com as políticas do IAM que as geram.

Como criar uma consulta

Para saber mais sobre outros casos de uso e opções para consultas, veja como analisar exemplos de consultas de políticas do IAM.