Manter a Aplicação do Microsoft 365 Compatível Continuamente com a Ferramenta de Automatização de Conformidade de Aplicações para o Microsoft 365
A Ferramenta de Automatização de Conformidade de Aplicações (ACAT) do Microsoft 365 simplifica os controlos essenciais para a Certificação do Microsoft 365. Mantenha a conformidade contínua da sua aplicação do Microsoft 365 com o ACAT. Mantenha-se atualizado sobre as falhas de compatibilidade através de notificações e integre totalmente o ACAT no pipeline de Integração Contínua/Implementação Contínua.
Observação
Atualmente, o ACAT está em pré-visualização pública e só suporta aplicações criadas no Azure. As atualizações futuras incluirão funcionalidades para aplicações criadas em serviços cloud não alojados na Microsoft. Para obter comentários sobre a pré-visualização pública do ACAT, preencha este formulário. Um especialista da equipa de produtos ACAT irá contactá-lo o mais rapidamente possível.
Obter a avaliação de controlo mais recente do relatório de conformidade através de notificações
Depois de criar um relatório de conformidade para a sua aplicação ou ambiente do Microsoft 365, o ACAT recolhe automaticamente dados de conformidade e realiza avaliações de controlo diárias. Além disso, pode receber notificações relativamente a quaisquer alterações nas definições ou avaliações de relatórios.
Obter notificações com o webhook
Crie um webhook para receber notificações do ACAT.
Aceda a Relatórios à esquerda.
Abra o relatório para o qual pretende receber notificações.
Selecione Notificações na barra de ferramentas.
Selecione Criar notificação e, em seguida, selecione Webhook
- Nome do webhook: este é o identificador exclusivo do webhook neste relatório.
- URL do payload: o URL do payload é o URL do servidor que recebe pedidos POST do webhook do ACAT.
- Tipo de conteúdo: atualmente, o ACAT só suporta o tipo de conteúdo application/json, que fornece o payload JSON diretamente como o corpo do pedido POST.
- Segredo: definir um segredo de webhook permite-lhe garantir que os pedidos POST enviados para o URL do payload são do ACAT. Quando o segredo está definido, o ACAT utiliza-o para criar uma assinatura hash com cada payload. Esta assinatura hash está incluída nos cabeçalhos de cada pedido como x-acat-signature-256.
- Verificação SSL: a verificação SSL só será apresentada quando o URL do payload for um site seguro (HTTPS) e ajudar a garantir que os payloads são entregues no URL do payload de forma segura. Recomendamos que mantenha a opção Ativar verificação SSL selecionada.
- Eventos de acionador: subscreva eventos ACAT para receber notificações.
Dica
Saiba mais sobre o payload do webhook.
Obter uma avaliação de conformidade rápida no pipeline Integração Contínua/Implementação Contínua
Além da utilização regular do portal e da receção de notificações atualizadas, o ACAT pode realizar uma avaliação de conformidade rápida no pipeline de Integração Contínua/Implementação Contínua (CI/CD). Garantir a conformidade contínua da sua aplicação do Microsoft 365.
No ACAT, as avaliações de controlo são avaliações de conformidade estruturadas categorizadas de acordo com domínios de segurança de Certificação do Microsoft 365, famílias de controlo e controlos individuais. Para iniciar avaliações de controlo nos dados de conformidade não processados do ACAT, tem de ser recolhido. No entanto, algumas destas informações de conformidade não processadas podem não estar facilmente acessíveis do ponto de vista técnico. Para resolver este desafio, a ACAT introduz um conceito conhecido como "avaliação de conformidade rápida". Esta funcionalidade foi concebida para fornecer uma avaliação rápida do status de conformidade, permitindo a recolha imediata de dados essenciais de conformidade não processados.
A implementação da avaliação de conformidade rápida tem duas finalidades:
- Informações Atempadamente: facilita a compreensão em tempo real da sua postura de conformidade, dando visibilidade à adesão de uma aplicação às normas de segurança e às melhores práticas.
- Integração Totalmente Integrada: a avaliação de conformidade rápida pode integrar-se de forma totalmente integrada no pipeline ci/CD, garantindo que as aplicações permanecem robustas e alinhadas com os requisitos de conformidade.
Integração com o pipeline CI/CD por GitHub Actions
Observação
O suporte do ACAT GitHub Actions é pré-visualização e só suporta aplicações criadas no Microsoft Azure. As atualizações futuras incluirão funcionalidades para aplicações criadas noutras clouds.
As avaliações de conformidade rápida estão disponíveis no pipeline ci/CD com a avaliação rápida de certificação do Microsoft 365 GitHub Action. Existem duas utilizações possíveis para esta Ação do GitHub:
- Utilize a implementação mais recente no pipeline CI/CD como o estado definitivo da aplicação: o ACAT realiza avaliações de conformidade rápidas com base na implementação mais recente no pipeline. Além disso, tem a opção de pedir ao ACAT para atualizar um relatório de conformidade correspondente com base nesta implementação, o que lhe concede avaliações de controlo abrangentes com atualizações diárias.
- Dependa de um relatório de conformidade existente como referência para a aplicação. O ACAT utiliza os recursos definidos num relatório de conformidade existente para efetuar a avaliação de conformidade rápida.
Integração com o pipeline CI/CD através da API REST ACAT
Obtenha avaliações de conformidade rápidas no pipeline CI/CD através da API REST ACAT.
Ligue-se aos recursos do Azure com a Autenticação do Principal de Serviço. Siga este guia para saber como criar um principal de serviço que possa aceder aos recursos. Assim que o principal de serviço for criado, siga a documentação de orientação da ferramenta de pipeline para armazenar as credenciais. Por exemplo, ligue-se ao Microsoft Azure com uma ligação de serviço ARM.
Obtenha a lista de recursos que gostaria de utilizar para a avaliação de conformidade rápida.
- Utilize a implementação mais recente no pipeline CI/CD. Reveja Azure PowerShell - Get-AzResourceGroupDeploymentOperation para obter recursos da implementação.
$resourceGroupName $deploymentName $resourceIds = @() Get-AzResourceGroupDeploymentOperation ` -ResourceGroupName $resourceGroupName ` -Name $deploymentName ` | ForEach-Object { if (![String]::IsNullOrEmpty($_.TargetResource)) { $resourceIds += $_.TargetResource } }
- Para adquirir recursos com base na política de gestão de recursos da cloud (por exemplo, recursos com etiquetas específicas, recursos em grupos de recursos específicos, etc.), reveja o Azure PowerShell – Get-AzResource.
# Get resources with same tag $key = "<key-of-your-tag>" $value = "<value-of-your-tag>" $resourceIds = (Get-AzResource -TagName $key -TagValue $value).ResourceId
- Para utilizar um relatório de conformidade ACAT existente, selecione Relatório da API REST ACAT – Obter para obter os recursos da definição do relatório.
try { $token = "<your-Azure-credentials>" $reportName = "<report-name>" $apiVersion = "2023-02-15-preview" $header = @{} $header["Authorization"] = $token $header["x-ms-aad-user-token"] = $token $header["accept"] = "application/json" $uri = "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/" + $reportName + "?api-version=" + $apiVersion $response = Invoke-WebRequest $uri ` -Method GET ` -Headers $header ` -ContentType "application/json" ` -Verbose ` -UseBasicParsing $resourceIds = @() if ($response.StatusCode -ne 200) { Write-Host "Failed to get resources from compliance report: $response" return } $resources = $response.Content | ConvertFrom-Json $resourceIds = $resources.properties.resources.resourceId } catch { Write-Output "Failed to get resources from compliance report with exception: $_" }
Utilize a API triggerEvaluation para obter uma avaliação de conformidade rápida para os recursos especificados.
try {
$token = "<your-Azure-credentials>"
$resourceIds = "<resource-ids-from-previous-step>"
$apiVersion = "2023-02-15-preview"
$header = @{}
$header["Authorization"] = $token
$header["x-ms-aad-user-token"] = $token
$header["accept"] = "application/json"
$body = @{resourceIds = $resourceIds }
$uri = "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=$apiVersion"
$response = Invoke-WebRequest $uri `
-Method POST `
-Headers $header `
-ContentType "application/json" `
-Body (ConvertTo-Json $body -Depth 8) `
-Verbose `
-UseBasicParsing
# The triggerEvaluation API is asynchronous. Therefore, you need to pull the status to check whether it is completed.
# StatusCode 200: OK. The response indicates the quick compliance evaluation for given resource ids is completed.
# StatusCode 202: Accepted. The response indicates the quick compliance evaluation for given resource ids is triggered and performing in backend.
if ($response.StatusCode -eq 200) {
$result = $response.Content | ConvertFrom-Json
Write-Host "Successfully get evaluation result:$result"
return $result
}
elseif ($response.StatusCode -eq 202) {
$retry_url = $response.Headers["Location"]
do {
Start-Sleep 10
Write-Host "retry_url: $retry_url"
$opResponse = Invoke-WebRequest `
-Uri $retry_url `
-ContentType "application/json" `
-Verbose `
-Method GET `
-Headers $header `
-UseBasicParsing
if ($opResponse.StatusCode -eq 200) {
$opResult = $opResponse.Content | ConvertFrom-Json
Write-Host "Successfully get evaluation result: $opResult"
return $opResult
}
elseif ($opResponse.StatusCode -eq 202) {
continue
}
else {
Write-Host "Failed to get evaluation result"
break
}
} while ($true)
}
else {
Write-Host "Failed to get compliance evaluation with triggerEvaluation API: $response"
}
}
catch {
Write-Output "Failed to get quick compliance assessment with exception: $_"
}
- Obtenha a avaliação de conformidade rápida a partir do resultado da API triggerEvaluation.
Referências
Payloads de webhook
Para os payloads do webhook ACAT para cada evento, contêm algumas propriedades comuns.
Chave
Obrigatório?
Tipo
Descrição
EventDesc
Sim
Cadeia de caracteres
Evento específico que aciona a notificação.
Mensagem
Sim
Cadeia de caracteres
O conteúdo da notificação. Normalmente, contém o nome do relatório como o identificador exclusivo e o carimbo de data/hora quando este evento acontece.
Detalhes
Não
Cadeia de caracteres
Trata-se de conteúdo de formato JSON que contém os detalhes desta notificação. Tendo em conta a falha das avaliações de controlo como exemplo, os detalhes incluem todas as responsabilidades falhadas do cliente por cada controlo e recursos afetados.
Acionador da API REST ACATAvaliação
Nome da API: triggerEvaluation
- Serviço: Automatização de Conformidade de Aplicações
- Versão da API: 2023-02-15-preview
Obtenha uma avaliação de conformidade rápida para determinados recursos.
POST https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=2023-02-15-preview
Parâmetros de URI
Nome
Em
Obrigatório
Tipo
Descrição
versão da API
consulta
True
string
A versão da API a utilizar para esta operação. Pode utilizar "2023-02-15-preview"
Cabeçalho do Pedido
Nome
Em
Obrigatório
Tipo
Descrição
Authorization
head
True
string
Portador + " " + Token de Acesso
x-ms-aad-user-token
head
True
string
Portador + " " + Token de Acesso
Content-Type
head
True
string
valor: "application/json"
Corpo da Solicitação
Nome
Obrigatório
Tipo
Descrição
resourceIds
Verdadeiro
matriz de cadeia de caracteres
Lista de IDs de recursos a avaliar
Cabeçalho de Respostas
Nome
Tipo
Descrição
200 OK
A resposta indica que a avaliação de conformidade rápida para determinados IDs de recursos está concluída.
202 Aceito
A resposta indica que a avaliação de conformidade rápida para determinados IDs de recursos é acionada e executada no back-end.
Outros códigos de status
ErrorResponse
Resposta a erros.
TriggerEvaluationResponse
Nome
Tipo
Descrição
triggerTime
string
A hora em que a avaliação é acionada.
evaluationEndTime
cadeia de caracteres
A hora em que a avaliação é terminada.
resourceIds
string[]
Lista de IDs de recursos a avaliar
quickAssessments
Lista de avaliações rápidas
QuickAssessment
Nome
Tipo
Descrição
resourceId
string
ID do recurso
responsibilityId
string
ID de Responsabilidade
Carimbo de data/hora
cadeia de caracteres
O carimbo de data/hora da criação de recursos (UTC).
resourceStatus
ResourceStatus
Status de avaliação rápida.
displayName
cadeia de caracteres
Nome a apresentar da avaliação rápida.
description
string
Descrição das avaliações rápidas.
remediationLink
string
Ligue aos passos de remediação para esta avaliação rápida.