Google Cloud Recomendador
Este documento fornece orientações para ajudar a configurar e integrar o Google Cloud Recommender com o Google Security Operations.
Pré-requisitos
Certifique-se de que conclui todos os passos pré-requisitos antes de configurar a integração.
Crie e configure a função IAM
Na Google Cloud consola, aceda à página Funções da 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 as seguintes autorizações à função criada:
iam.roles.create
iam.roles.delete
iam.roles.get
iam.roles.list
iam.roles.undelete
iam.roles.update
iam.serviceAccounts.create
iam.serviceAccounts.delete
iam.serviceAccounts.disable
iam.serviceAccounts.enable
iam.serviceAccounts.get
iam.serviceAccounts.getIamPolicy
iam.serviceAccounts.list
iam.serviceAccounts.setIamPolicy
iam.serviceAccounts.undelete
iam.serviceAccounts.update
recommender.iamPolicyInsights.get
recommender.iamPolicyInsights.list
recommender.iamPolicyLateralMovementInsights.get
recommender.iamPolicyLateralMovementInsights.list
recommender.iamPolicyRecommendations.get
recommender.iamPolicyRecommendations.list
recommender.iamPolicyRecommendations.update
recommender.iamServiceAccountInsights.get
recommender.iamServiceAccountInsights.list
recommender.locations.get
recommender.locations.list
resourcemanager.folders.get
resourcemanager.folders.getIamPolicy
resourcemanager.folders.setIamPolicy
resourcemanager.organizations.get
resourcemanager.organizations.getIamPolicy
resourcemanager.organizations.setIamPolicy
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
resourcemanager.projects.list
resourcemanager.projects.setIamPolicy
securitycenter.assets.list
securitycenter.findings.group
securitycenter.findings.list
securitycenter.findings.listFindingPropertyNames
securitycenter.findings.setMute
securitycenter.findings.setState
securitycenter.sources.get
securitycenter.sources.list
securitycenter.userinterfacemetadata.get
Clique em Criar.
Criar uma conta de serviço
Para criar uma conta de serviço, siga o procedimento para criar uma conta de serviço.
Depois de criar uma conta de serviço, transfira-a como um ficheiro JSON. Tem de fornecer o conteúdo de um ficheiro JSON transferido quando configurar os parâmetros de integração.
Integre o Google Cloud Recommender com o Google SecOps
Para obter instruções detalhadas sobre como configurar uma integração no Google SecOps SOAR, consulte o artigo Configure integrações.
Entradas de integração
Para configurar a integração, use os seguintes parâmetros:
Parâmetros | |
---|---|
API Root |
Obrigatório
A raiz da API do serviço Google Cloud Recommender. O valor predefinido é |
Organization ID |
Opcional
O ID da organização que deve ser usado com a integração do Google Cloud Recommender. |
User's Service Account |
Obrigatório
O conteúdo da conta de serviço do Google Cloud Recommender. Certifique-se de que fornece o conteúdo completo do ficheiro JSON da conta de serviço que transferiu quando criou uma conta de serviço. |
Verify SSL |
Opcional
Quando selecionado, o parâmetro verifica se o certificado SSL para a ligação ao servidor do Recomendador é válido. Google Cloud Selecionada por predefinição. |
Ações
Aplique recomendações da IAM
Aplique as recomendações da IAM com base na entrada fornecida.
Esta ação só funciona com as google.iam.policy.Recommender
recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
Parâmetros | |
---|---|
IAM Recommendations JSON |
Obrigatório
O resultado JSON da recomendação. O resultado JSON pode ser fornecido como um marcador de posição a partir das ações List recommendations ou Get recommendation. |
Resultados da ação
Tipo de saída da ação | |
---|---|
Fixação à parede da caixa | N/A |
Link da parede da caixa | N/A |
Mesa de parede para caixas | N/A |
Tabela de enriquecimento | N/A |
Estatísticas da entidade | N/A |
Insight | N/A |
Resultado JSON | Disponível |
Widget OOTB | N/A |
Resultado do script | Disponível |
Resultado do script
Nome do resultado do script | Valor |
---|---|
is_success | Verdadeiro/Falso |
Resultado JSON
{ "applied_recommendations": [ { "name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/217d3019-bae5-4a52-9968-787fdd546a53", "description": "Replace the current role with a smaller role to cover the permissions needed.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 610 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "add", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/-", "value": "USER_ID@example.com", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/role": "roles/compute.instanceAdmin" } }, { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/compute.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "user:USER_ID@example.com", "removedRole": "roles/compute.admin", "addedRoles": [ "roles/compute.instanceAdmin" ], "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "applied_by": "bulk_apply_by_automated_script-2023-08-11" } }, "etag": "\"892d57ee41baa03e\"", "recommenderSubtype": "REPLACE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID" } ], "priority": "P4" }, { "name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID", "description": "Replace the current role with a smaller role to cover the permissions needed.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 19 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "add", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/-", "value": "user:USER_ID@example.com", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin" } }, { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/storage.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "user:USER_ID@example.com", "removedRole": "roles/storage.admin", "addedRoles": [ "roles/storage.objectAdmin" ], "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "applied_by": "bulk_apply_by_automated_script-2023-08-11" } }, "etag": "\"af7635ffeb512998\"", "recommenderSubtype": "REPLACE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID" } ], "priority": "P4" } ], "failed_recommendations": [] }
Parede da caixa
A ação fornece as seguintes mensagens de saída:
Mensagem de saída | Descrição da mensagem |
---|---|
Successfully applied provided IAM recommendations. |
A ação foi concluída com êxito. |
Successfully applied provided IAM recommendation, but some of the
recommendations were not applied. |
A ação foi concluída com êxito. |
No provided IAM recommendations were applied. |
Falha na recomendação. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
Receba uma recomendação
Receba uma recomendação específica do serviço Google Cloud Recommender.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
Parâmetros | |
---|---|
Recommendation name |
Obrigatório
Especifica o nome da recomendação a devolver. A ação aceita vários valores como uma string separada por vírgulas. Exemplo da entrada esperada: projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7 |
Resultados da ação
Tipo de saída da ação | |
---|---|
Fixação à parede da caixa | N/A |
Link da parede da caixa | N/A |
Mesa de parede para caixas | N/A |
Tabela de enriquecimento | N/A |
Estatísticas da entidade | N/A |
Insight | N/A |
Resultado JSON | Disponível |
Widget OOTB | N/A |
Resultado do script | Disponível |
Resultado do script
Nome do resultado do script | Valor |
---|---|
is_success | Verdadeiro/Falso |
Resultado JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/" } ], "priority": "P4" } ]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
Mensagem de saída | Descrição da mensagem |
---|---|
Successfully found recommendation in the Google Cloud Recommender
service. |
A ação foi concluída com êxito. |
No recommendations were found in the Google Cloud Recommender
service.
|
Os dados não estão disponíveis. |
Error executing action ACTION_NAME . |
A ação devolveu um erro. |
Recomendações de listas
Liste as recomendações disponíveis no Google Cloud serviço de recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
Parâmetros | |
---|---|
Recommendation Filter |
Opcional
Especifica o filtro para obter as recomendações. O parâmetro deve ser uma string num dos seguintes formatos:
Se não for indicado nenhum valor, a ação obtém o ID do projeto a partir da conta de serviço configurada. |
Recommendation Location |
Obrigatório
Especifica a Google Cloud localização para obter recomendações. A predefinição é |
Recommendation State |
Opcional
Especifica o estado da recomendação a devolver. A predefinição é Os valores possíveis são os seguintes:
|
Recommendation Priority |
Opcional
Especifica a prioridade de uma recomendação a devolver. Podem ser especificados vários valores como uma string separada por vírgulas. |
Recommender Subtype |
Opcional
Especifica o subtipo de recomendador devolvido. A predefinição é Os valores possíveis são os seguintes:
|
Max Records To Return |
Opcional
Especifica o número de registos a devolver. Se não for indicado nenhum valor, a ação devolve 50 registos por predefinição. |
Resultados da ação
Tipo de saída da ação | |
---|---|
Fixação à parede da caixa | N/A |
Link da parede da caixa | N/A |
Mesa de parede para caixas | Disponível |
Tabela de enriquecimento | N/A |
Estatísticas da entidade | N/A |
Insight | N/A |
Resultado JSON | Disponível |
Widget OOTB | N/A |
Resultado do script | Disponível |
Resultado do script
Nome do resultado do script | Valor |
---|---|
is_success | Verdadeiro/Falso |
Resultado JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-27T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/", "member": "serviceAccount:SERVICE_ACCOUNT_ID", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/i/locations/global/insightTypes/" } ], "priority": "P4" }, { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-27T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 5 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/chroniclesm.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects", "member": "user:USER_ID@example.com", "removedRole": "roles/chroniclesm.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects" } ], "priority": "P4" } ]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
Mensagem de saída | Descrição da mensagem |
---|---|
Successfully found recommendations for the provided criteria in
the Google Cloud Recommender service. |
A ação foi concluída com êxito. |
No recommendations were found for the provided criteria in the
Google Cloud Recommender service. |
Não existem dados disponíveis. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
A ação fornece a seguinte tabela de registo de ocorrências:
Recomendações disponíveis | |
---|---|
Colunas |
|
Tchim-tchim
Teste a conetividade ao serviço Google Cloud Recommender com os parâmetros fornecidos na página de configuração da integração no separador Google SecOps Marketplace.
Entidades
A ação não é executada em entidades.
Dados de ações
N/A
Resultados da ação
Tipo de saída da ação | |
---|---|
Fixação à parede da caixa | N/A |
Link da parede da caixa | N/A |
Mesa de parede para caixas | N/A |
Tabela de enriquecimento | N/A |
Estatísticas da entidade | N/A |
Insight | N/A |
Resultado JSON | N/A |
Widget OOTB | N/A |
Resultado do script | Disponível |
Resultado do script
Nome do resultado do script | Valor |
---|---|
is_success | Verdadeiro/Falso |
Parede da caixa
A ação fornece as seguintes mensagens de saída:
Mensagem de saída | Descrição da mensagem |
---|---|
Successfully connected to the Google Cloud Recommender service
with the provided connection parameters! |
A ação foi concluída com êxito. |
Failed to connect to the Google Cloud Recommender service!
|
A ação devolveu um erro. |
Atualize a recomendação
Atualize a recomendação no Google Cloud serviço de recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Use os seguintes parâmetros para configurar a ação:
Parâmetros | |
---|---|
Recommendation name |
Obrigatório
Especifica o nome da recomendação a atualizar. A ação aceita vários valores como uma string separada por vírgulas. Exemplo da entrada esperada:
|
Recommendation State |
Opcional
Especifica o estado para o qual a recomendação deve mudar. A predefinição é Os valores possíveis são os seguintes:
|
Recommendation Result |
Opcional
Especifica o resultado para o qual a recomendação deve ser alterada. A predefinição é Os valores possíveis são os seguintes:
|
Resultados da ação
Tipo de saída da ação | |
---|---|
Fixação à parede da caixa | N/A |
Link da parede da caixa | N/A |
Mesa de parede para caixas | N/A |
Tabela de enriquecimento | N/A |
Estatísticas da entidade | N/A |
Insight | N/A |
Resultado JSON | Disponível |
Widget OOTB | N/A |
Resultado do script | Disponível |
Resultado do script
Nome do resultado do script | Valor |
---|---|
is_success | Verdadeiro/Falso |
Resultado JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/" } ], "priority": "P4" } ]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
Mensagem de saída | Descrição da mensagem |
---|---|
Successfully updated recommendation in the Google Cloud
Recommender service. |
A ação foi concluída com êxito. |
No recommendations were found in the Google Cloud Recommender
service.
|
Os dados não estão disponíveis. |
Error executing action ACTION_NAME . |
A ação devolveu um erro. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.