Coletar registros de análise do Cloud Identity and Access Management (IAM)
Este documento explica como exportar e processar registros de análise do Cloud IAM no Google Security Operations usando o Cloud Storage. O analisador extrai informações de usuários e recursos dos dados JSON do Google Cloud IAM. Em seguida, ele mapeia os campos extraídos para o UDM, criando entidades de usuário com papéis e relacionamentos de recursos associados, enriquecendo o contexto de segurança na plataforma Google SecOps.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se o Google Cloud IAM está configurado e ativo no ambiente Google Cloud .
- Verifique se você tem acesso privilegiado a Google Cloud e as permissões adequadas para acessar os registros do IAM.
Criar um bucket do Cloud Storage
- Faça login no console do Google Cloud.
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, google-cloud-iam-logs.
Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.
Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.
Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
Na seção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controle de acesso para os objetos do bucket.
Na seção Escolha como proteger os dados do objeto, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
- Para escolher como os dados do objeto serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um método de criptografia de dados.
Clique em Criar.
Configurar Google Cloud exportação de registros de análise do IAM
- Faça login no console do Google Cloud.
- Acesse Logging > Roteador de registros.
- Clique em Criar coletor.
Informe os seguintes parâmetros de configuração:
- Nome do coletor: insira um nome significativo. Por exemplo,
IAM-Analysis-Sink
. - Destino da sink: selecione Cloud Storage e insira o URI do bucket. Por exemplo,
gs://gcp-iam-analysis-logs
. Filtro de registro:
logName="*iam*" resource.type="gce_instance"
Configurar permissões do Cloud Storage
- Nome do coletor: insira um nome significativo. Por exemplo,
Acesse IAM e administrador > IAM.
Localize a conta de serviço do Cloud Logging.
Conceda o papel roles/storage.admin no bucket.
Configurar um feed no Google SecOps para ingerir registros de análise do IAM Google Cloud
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed. Por exemplo, Google Cloud Logs de análise do IAM.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Análise do IAM do GCP como o Tipo de registro.
- Clique em Pegar conta de serviço ao lado do campo Conta de serviço do Chronicle.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- URI do bucket do Storage: URL do bucket do Cloud Storage. Por exemplo,
gs://gcp-iam-analysis-logs
. - URI Is A: selecione Directory which includes subdirectories.
Opções de exclusão de origem: selecione a opção de exclusão de acordo com sua preferência.
Namespace do recurso: o namespace do recurso.
Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
- URI do bucket do Storage: URL do bucket do Cloud Storage. Por exemplo,
Clique em Próxima.
Revise a configuração do novo feed na tela Finalizar e clique em Enviar.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
accessControlLists.accesses.permission | relations.entity.resource.attribute.permissions.name | Diretamente do campo accessControlLists.accesses.permission no registro bruto. |
attachedResourceFullName | relations.entity.resource.name | Diretamente do campo attachedResourceFullName no registro bruto, mas com os nomes de recursos finais removidos. |
relations.entity.resource.attribute.cloud.environment | Defina como GOOGLE_CLOUD_PLATFORM . |
|
relations.entity.resource.product_object_id | Para STORAGE_BUCKET, diretamente do campo attachedResourceFullName no registro bruto, mas com os nomes de recursos finais removidos. Para conjuntos de dados do BigQuery, é o projectName (extraído de attachedResourceFullName ) seguido por dois-pontos e o campo datasetName (extraído de attachedResourceFullName ). |
|
relations.entity.resource.resource_type | Determinada pelo padrão do campo attachedResourceFullName no registro bruto. |
|
relations.entity_type | Definido como RESOURCE , exceto para SERVICE_ACCOUNT, que é definido como USER . |
|
relations.relationship | Defina como MEMBER . |
|
metadata.collected_timestamp | Diretamente do campo timestamp no registro bruto. |
|
metadata.entity_type | Defina como USER . |
|
metadata.product_name | Defina como GCP IAM ANALYSIS . |
|
metadata.vendor_name | Defina como Google Cloud Platform . |
|
iamBinding.role | entity.user.attribute.roles.name | Diretamente do campo iamBinding.role no registro bruto. |
identityList.identities.name | entity.user.attribute.roles.type | Defina como SERVICE_ACCOUNT se o campo identityList.identities.name contiver a string serviceAccount . |
entity.user.email_addresses | Se o campo identityList.identities.name contiver um símbolo @ , ele será tratado como um endereço de e-mail. |
|
entity.user.userid | Se o campo identityList.identities.name não contiver um símbolo @ , ele será tratado como um userid. |
|
identityList.identities.product_object_id | entity.user.product_object_id | Diretamente do campo identityList.identities.product_object_id no registro bruto. |
timestamp | timestamp | Diretamente do campo timestamp no registro bruto. |
Alterações
2023-02-27
Correção de bugs:
- O mapeamento do campo
iamBinding.members
paraentity.user.group_identifiers
foi removido.
2022-12-28
Melhoria:
- Mapeamos o campo
iamBinding.role
paraentity.user.attribute.role.name
. - Mapeamos o campo
iamBinding.members
paraentity.user.group_identifiers
.
2022-07-27
Melhoria:
- O mapeamento de
identity.product_object_id
, que foi mapeado paraevent.idm.entity.entity.user.userid
, foi removido.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.