Partilhar via


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.

    Criar notificação de webhook

    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.

    $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
    
    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.