Integre o Cloud Asset Inventory com o Google SecOps
Este documento explica como integrar o Cloud Asset Inventory com o Google Security Operations (Google SecOps).
Versão da integração: 12.0
Na plataforma Google SecOps, a integração do Cloud Asset Inventory chama-se Google Cloud Asset Inventory.
Antes de começar
Para usar a integração, precisa de uma função de gestão de identidade e de acesso (IAM) e de uma Google Cloud conta de serviço.
Crie e configure uma função de IAM personalizada
Para criar uma função do IAM personalizada e configurar uma autorização específica para esta, conclua os seguintes passos:
Na Google Cloud consola, aceda à página Funções do IAM.
Clique em Criar função para criar uma função personalizada com as autorizações necessárias para a integração.
Para uma nova função personalizada, indique o Título, a Descrição e um ID exclusivo.
Defina o Role Launch Stage como General Availability.
Adicione a seguinte autorização à função criada:
cloudasset.assets.searchAllResources
Crie e configure uma conta de serviço
Para integrar o Cloud Asset Inventory com o Google SecOps, pode usar uma conta de serviço existente ou criar uma nova. Para ver orientações sobre como criar uma conta de serviço, consulte o artigo Criar contas de serviço.
A integração do Cloud Asset Inventory requer que conceda à sua conta de serviço a função personalizada que criou na secção anterior e a função Cloud Asset Viewer.
Se não usar um email de identidade da carga de trabalho para configurar a integração, crie uma chave de conta de serviço em JSON depois de criar uma conta de serviço. Tem de fornecer o conteúdo completo do ficheiro de chave JSON transferido quando configurar os parâmetros de integração.
Por motivos de segurança, recomendamos que use endereços de email da identidade da carga de trabalho em vez de chaves JSON de contas de serviço. Para mais informações sobre as identidades de cargas de trabalho, consulte o artigo Identidades para cargas de trabalho.
Conceda uma função personalizada a um principal existente
Depois de conceder a nova função personalizada a um principal selecionado, este pode alterar as autorizações de qualquer utilizador na sua organização.
Para conceder a função personalizada a um principal existente, conclua os seguintes passos:
Na Google Cloud consola, aceda à página IAM.
No campo Filtro, cole o valor do Email da identidade da carga de trabalho que usa para a integração do inventário de recursos da nuvem e pesquise o principal existente.
Clique em Editar principal. A caixa de diálogo Editar acesso a "PROJECT" é aberta.
Em Atribuir funções, clique em Adicionar outra função.
Selecione as funções predefinidas para o Cloud Asset Inventory.
Clique em Guardar.
Parâmetros de integração
A integração do Cloud Asset Inventory requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
API Root |
Obrigatório
A raiz da API da instância do Cloud Asset Inventory. O valor predefinido é |
Organization ID |
Opcional
O ID da organização a usar na integração do Cloud Asset Inventory. |
Project ID |
Opcional O ID do projeto a usar para a integração do Cloud Asset Inventory. Se não definir um valor para este parâmetro, a integração
obtém o ID do projeto a partir do conteúdo do ficheiro JSON fornecido no parâmetro
|
User's Service Account |
Obrigatório
O conteúdo do ficheiro JSON da chave da conta de serviço. Pode configurar este parâmetro ou o parâmetro Para configurar este parâmetro, forneça o conteúdo completo do ficheiro JSON da chave da conta de serviço que transferiu quando criou uma conta de serviço. |
Quota Project ID |
Opcional O Google Cloud ID do projeto que usa para
Google Cloud APIs e faturação. Este parâmetro requer que conceda a função Se não definir nenhum valor para este parâmetro, a integração obtém o ID do projeto da sua Google Cloud conta de serviço. |
Workload Identity Email |
Opcional O endereço de email do cliente da sua conta de serviço. Pode configurar este parâmetro ou o parâmetro Para usar a identidade de contas de serviço com a federação de identidades da carga de trabalho,
conceda a função |
Verify SSL |
Obrigatório
Se esta opção estiver selecionada, a integração verifica se o certificado SSL para a ligação ao servidor do Cloud Asset Inventory é válido. Selecionado por predefinição. |
Para obter instruções detalhadas sobre a configuração de uma integração no Google SecOps, consulte o artigo Configure integrações.
Se necessário, pode fazer alterações numa fase posterior. Depois de configurar uma instância de integração, pode usá-la em manuais de soluções. Para mais informações sobre a configuração e o suporte de várias instâncias, consulte o artigo Suporte de várias instâncias.
Ações
Para mais informações sobre ações, consulte os artigos Responda a ações pendentes a partir de O seu espaço de trabalho e Realize uma ação manual.
Enrich Resource
Use a ação Enrich Resource para enriquecer as informações sobre um recurso através do Cloud Asset Inventory. Google Cloud
A ação não é executada em entidades do Google SecOps.
Dados de ações
Para configurar a ação Enrich Resource, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Resource Names |
Obrigatório
Uma lista separada por vírgulas que contém os nomes dos recursos para os quais quer obter detalhes. Para configurar este parâmetro, introduza o nome completo do recurso de metadados no seguinte formato:
|
Fields To Return |
Opcional
Uma lista de campos separados por vírgulas a devolver. O valor predefinido é
Seguem-se exemplos de valores:
A ação devolve sempre o campo Também existe uma opção para configurar filtros avançados. Por exemplo, para
devolver uma chave específica de |
Resultados da ação
A ação Enrich Resource (Enriquecer recurso) fornece os seguintes resultados:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Fixação à parede da caixa | Não disponível |
| Link da parede da caixa | Não disponível |
| Mesa de parede para caixas | Não disponível |
| Tabela de enriquecimento | Não disponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo seguinte mostra o resultado JSON recebido quando usa a ação Enrich Resource:
[
{
"Entity": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"EntityResult": {
"additionalAttributes": {
"email": "email@example.iam.gserviceaccount.com",
"uniqueId": 123456789
},
"name": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"assetType": "iam.googleapis.com/ServiceAccountKey",
"project": "projects/PROJECT",
"displayName": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"createTime": "2022-05-26T17:35:07Z",
"versionedResources": [
{
"version": "v1",
"resource": {
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"name": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"validAfterTime": "2022-05-26T17:35:07Z",
"validBeforeTime": "9999-12-31T23:59:59Z"
}
}
],
"organization": "organizations/ORGANIZATION",
"parentFullResourceName": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com",
"parentAssetType": "iam.googleapis.com/ServiceAccount"
}
}
]
Mensagens de saída
A ação Enrich Resource pode devolver as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
|
A ação foi bem-sucedida. |
Error executing action "Enrich resources". Reason:
ERROR_REASON |
A ação falhou. Verifique a ligação ao servidor, os parâmetros de entrada ou as credenciais. |
Resultado do script
A tabela seguinte lista o valor do resultado do script quando usa a ação Enrich Resource:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Obter instantâneo do recurso
Use a ação Get Resource Snapshot para obter informações sobre o recurso através do Cloud Asset Inventory.
Esta ação não é executada em entidades do Google SecOps.
Dados de ações
Para configurar a ação Get Resource Snapshot, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Resource Names |
Obrigatório Uma lista de recursos separados por vírgulas para obter detalhes. Para configurar este parâmetro, introduza o nome completo do recurso de metadados no seguinte formato:
|
Fields To Return |
Opcional Uma lista de campos separados por vírgulas a devolver. Introduza todos os campos no seguinte formato: assets.FIELD
Seguem-se alguns exemplos de valores: A ação devolve sempre o campo O valor predefinido é |
Resultados da ação
A ação Get Resource Snapshot apresenta os seguintes resultados:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Fixação à parede da caixa | Não disponível |
| Link da parede da caixa | Não disponível |
| Mesa de parede para caixas | Não disponível |
| Tabela de enriquecimento | Não disponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
Os exemplos seguintes mostram as saídas de resultados JSON recebidas quando usa a ação Get Resource Snapshot:
Resultado JSON para Google Cloud
[ { "Entity": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "EntityResult": { "window": { "startTime": "2023-08-14T19:43:41.805828Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "description": "", "serviceAccounts": [ { "email": "user@example.com", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring.write", "https://www.googleapis.com/auth/servicecontrol", "https://www.googleapis.com/auth/service.management.readonly", "https://www.googleapis.com/auth/trace.append" ] } ], "lastStartTimestamp": "2022-05-26T01:44:52.756-07:00", "deletionProtection": false, "name": "example-name", "keyRevocationActionType": "NONE_ON_KEY_REVOCATION", "canIpForward": false, "shieldedInstanceIntegrityPolicy": { "updateAutoLearnPolicy": true }, "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "resourceStatus": {}, "scheduling": { "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD", "automaticRestart": true }, "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-micro", "confidentialInstanceConfig": { "enableConfidentialCompute": false }, "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance", "id": "example-id", "fingerprint": "example-fingerprint", "startRestricted": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/example-network", "stackType": "IPV4_ONLY", "name": "example", "subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/example-network-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "192.0.2.1", "networkTier": "PREMIUM" } ], "fingerprint": "example-fingerprint", "networkIP": "203.0.113.2" } ], "allocationAffinity": { "consumeAllocationType": "ANY_ALLOCATION" }, "labelFingerprint": "example-label", "shieldedInstanceConfig": { "enableSecureBoot": false, "enableVtpm": true, "enableIntegrityMonitoring": true }, "cpuPlatform": "Intel Broadwell", "creationTimestamp": "2022-05-26T01:44:40.323-07:00", "status": "RUNNING", "disks": [ { "guestOsFeatures": [ { "type": "VIRTIO_SCSI_MULTIQUEUE" }, { "type": "SEV_CAPABLE" }, { "type": "UEFI_COMPATIBLE" }, { "type": "GVNIC" } ], "interface": "SCSI", "shieldedInstanceInitialState": { "dbxs": [ { "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK", "fileType": "BIN" } ], "dbx": [ { "fileType": "BIN", "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK" } ] }, "diskSizeGb": "10", "deviceName": "example-device-name", "type": "PERSISTENT", "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-instance", "boot": true, "licenses": [ "https://www.googleapis.com/compute/v1/projects/example-project/global/licenses" ], "index": 0, "autoDelete": true, "mode": "READ_WRITE" } ], "tags": { "items": [ "http-server" ], "fingerprint": "example-fingerprint" }, "displayDevice": { "enableDisplay": false }, "reservationAffinity": { "consumeReservationType": "ANY_ALLOCATION" } }, "location": "us-central1-a" }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-08-14T19:43:41.805828Z" } } }, { "Entity": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "EntityResult": { "window": { "startTime": "2023-12-22T13:37:50Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "assetType": "iam.googleapis.com/ServiceAccount", "resource": { "version": "v1", "discoveryDocumentUri": "https://iam.googleapis.com/$discovery/rest", "discoveryName": "ServiceAccount", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "name": "projects/example-project/serviceAccounts/cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "projectId": "example-project", "email": "cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "uniqueId": "example-account-id", "displayName": "Cloud Asset Inventory Automation", "oauth2ClientId": "example-account-id" } }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-12-22T13:37:50Z" } } } ]
Resultado JSON para AWS
[ { "Entity": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "EntityResult": { "assets": [ { "window": { "startTime": "2024-01-24T17:51:03.412233028Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "assetType": "cloudasset.googleapis.com/AWS::S3::Bucket", "resource": { "version": "v1", "discoveryDocumentUri": "n/a", "discoveryName": "n/a", "data": { "dataSourceProvider": "AMAZON_WEB_SERVICES", "supplementaryConfigurations": { "PublicAccessBlockConfiguration": { "BlockPublicPolicy": true, "RestrictPublicBuckets": true, "BlockPublicAcls": true, "IgnorePublicAcls": true }, "TagSet": [ { "Key": "my-key2", "Value": "my-value2" }, { "Key": "my-key1", "Value": "my-value1" } ], "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BucketKeyEnabled": true } ] }, "AccessControlPolicy": { "Grants": [ { "Grantee": { "DisplayName": "example", "ID": "example-id", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" } ], "Owner": { "DisplayName": "example", "ID": "example-id" } } }, "configuration": { "Name": "aps-max-test-bucket", "CreationDate": "2023-12-04T15:29:50+00:00" }, "tags": { "my-key2": "my-value2", "my-key1": "my-value1" }, "originalResourceName": "arn:aws:s3:::aps-max-test-bucket", "awsAccount": "arn:aws:organizations::example-id:account/example-account/example-account-id" }, "location": "global" }, "ancestors": [ "organizations/example-org-id" ], "updateTime": "2024-01-24T17:51:03.412233028Z" } } ] } } ]
Mensagens de saída
A ação Get Resource Snapshot pode devolver as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully returned information about the following resources
using Google Cloud Asset Inventory:
ASSET_IDENTIFIER
|
A ação foi bem-sucedida. |
Error executing action "Get Resource Snapshot". Reason:
ERROR_REASON |
A ação falhou. Verifique a ligação ao servidor, os parâmetros de entrada ou as credenciais. |
Resultado do script
A tabela seguinte lista o valor do resultado do script quando usa a ação Get Resource Snapshot:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Liste as funções da conta de serviço
Use a ação List Service Account Roles para listar as funções relacionadas com a conta de serviço através do Cloud Asset Inventory. Google Cloud
Esta ação não é executada em entidades do Google SecOps.
Dados de ações
Para configurar a ação List Service Account Roles, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Service Accounts |
Obrigatório Uma lista de contas de serviço separadas por vírgulas para obter detalhes. |
Check Roles |
Opcional Uma lista de funções separadas por vírgulas a verificar em relação
à conta de serviço, como |
Check Permissions |
Opcional Uma lista separada por vírgulas de autorizações a verificar em
relação com a conta de serviço, como |
Expand Permissions |
Opcional Se selecionada, a ação devolve informações sobre todas as autorizações únicas relacionadas com o recurso. Não selecionado por predefinição. |
Max Roles To Return |
Obrigatório O número de funções relacionadas com a conta de serviço a devolver. O valor predefinido é 100. |
Max Permissions To Return |
Obrigatório O número de autorizações relacionadas com a conta de serviço a devolver. |
Resultados da ação
A ação List Service Account Roles (Listar funções da conta de serviço) fornece os seguintes resultados:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Fixação à parede da caixa | Não disponível |
| Link da parede da caixa | Não disponível |
| Mesa de parede para caixas | Não disponível |
| Tabela de enriquecimento | Não disponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo seguinte mostra o resultado JSON recebido quando usa a ação List Service Account Roles:
{
"roles": ["role1", "role2"],
"unique_permissions": ["permission1", "permission2"]
}
Mensagens de saída
A ação List Service Account Roles pode devolver as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
|
A ação foi bem-sucedida. |
Error executing action "List Service Account Roles". Reason:
ERROR_REASON |
A ação falhou. Verifique a ligação ao servidor, os parâmetros de entrada ou as credenciais. |
Tchim-tchim
Use a ação Ping para testar a conetividade ao Cloud Asset Inventory.
A ação não é executada em entidades do Google SecOps.
Dados de ações
Nenhum.
Resultados da ação
A ação Ping fornece os seguintes resultados:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Fixação à parede da caixa | Não disponível |
| Link da parede da caixa | Não disponível |
| Mesa de parede para caixas | Não disponível |
| Tabela de enriquecimento | Não disponível |
| Resultado JSON | Não disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Mensagens de saída
A ação Ping pode devolver as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully connected to the Google Cloud Asset Inventory
server with the provided connection parameters! |
A ação foi bem-sucedida. |
Failed to connect to the Google Cloud Asset Inventory server!
|
A ação falhou. |
Resultado do script
A tabela seguinte lista o valor do resultado do script quando usa a ação Ping:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.