Mantenha o Microsoft 365 em conformidade com os aplicativos continuamente com a Ferramenta de Automação de Conformidade de Aplicativos para Microsoft 365

A Ferramenta de Automação de Conformidade de Aplicativos do Microsoft 365 (ACAT) simplifica os controles essenciais para a Certificação do Microsoft 365. Mantenha a conformidade contínua para seu aplicativo Microsoft 365 usando o ACAT. Mantenha-se atualizado sobre falhas de conformidade por meio de notificações e integre perfeitamente o ACAT ao seu pipeline de Integração Contínua/Implantação Contínua.

Observação

A ACAT está atualmente em visualização pública e dá suporte apenas a aplicativos criados no Azure. As atualizações futuras incluirão funcionalidades para aplicativos criados em serviços de nuvem não hospedados pela Microsoft. Para quaisquer comentários sobre a visualização pública da ACAT, preencha este formulário. Um especialista da equipe de produtos da ACAT entrará em contato com você o mais rápido possível.

Obtenha a avaliação de controle mais recente do seu relatório de conformidade por meio de notificações

Depois de criar um relatório de conformidade para seu aplicativo ou ambiente do Microsoft 365, a ACAT coleta automaticamente os dados de conformidade e realiza avaliações diárias de controle. Além disso, você pode receber notificações sobre quaisquer alterações nas configurações ou avaliações do relatório.

Obter notificações com webhook

Crie um webhook para receber notificações da ACAT.

  • Vá para Relatórios à esquerda.

  • Abra o relatório para o qual você gostaria de receber notificações.

  • Selecione Notificações na barra de ferramentas.

  • Selecione Criar notificação e, em seguida, escolha Webhook

    • Nome do webhook: este é o identificador exclusivo do webhook neste relatório.
    • URL da carga: a URL da carga é a URL do servidor que recebe solicitações POST de webhook da ACAT.
    • Tipo de conteúdo: Atualmente, o ACAT oferece suporte apenas ao tipo de conteúdo application/json, que fornece a carga JSON diretamente como o corpo da solicitação POST.
    • Segredo: definir um segredo de webhook permite garantir que as solicitações POST enviadas para o URL da carga sejam da ACAT. Quando o segredo é definido, o ACAT o usa para criar uma assinatura de hash com cada carga. Essa assinatura de hash está incluída nos cabeçalhos de cada solicitação como x-acat-signature-256.
    • Verificação SSL: a verificação SSL só seria exibida quando o URL do conteúdo fosse um site seguro (HTTPS) e ajudasse a garantir que os conteúdos fossem entregues ao URL do conteúdo com segurança. Recomendamos manter a opção Habilitar verificação SSL selecionada.
    • Eventos de gatilho: assine eventos ACAT para receber notificações.

    Criar notificação de webhook

    Dica

    Saiba mais sobre o conteúdo do webhook.

Obtenha uma avaliação rápida de conformidade no pipeline de Integração Contínua/Implantação Contínua

Além do uso regular do portal e do recebimento de notificações atualizadas, o ACAT pode realizar uma avaliação rápida de conformidade em seu pipeline de Integração Contínua/Implantação Contínua (CI/CD). Garantindo a conformidade contínua do seu aplicativo Microsoft 365.

No ACAT, as avaliações de controle são avaliações de conformidade estruturadas categorizadas de acordo com domínios de segurança, famílias de controle e controles individuais da Certificação Microsoft 365. Para iniciar avaliações de controle na ACAT, dados brutos de conformidade devem ser coletados. No entanto, algumas dessas informações brutas de conformidade podem não ser facilmente acessíveis do ponto de vista técnico. Para enfrentar esse desafio, a ACAT introduz um conceito conhecido como 'avaliação rápida de conformidade'. Esse recurso foi projetado para fornecer uma avaliação rápida do status de conformidade, permitindo a coleta imediata de dados brutos essenciais de conformidade.

A implementação da avaliação rápida de conformidade serve a dois propósitos:

  • Insights oportunos: facilita a compreensão em tempo real de sua postura de conformidade, dando visibilidade da adesão de um aplicativo aos padrões de segurança e às melhores práticas.
  • Integração perfeita: a avaliação rápida de conformidade pode se integrar perfeitamente ao seu pipeline de CI/CD, garantindo que seus aplicativos permaneçam robustos e alinhados com os requisitos de conformidade.

Integração com pipeline de CI/CD por GitHub Actions

Observação

O suporte ao ACAT GitHub Actions é de visualização e suporta apenas aplicativos criados no Microsoft Azure. As atualizações futuras incluirão funcionalidades para aplicativos criados em outras nuvens.

Avaliações rápidas de conformidade estão disponíveis no pipeline de CI/CD usando a avaliação rápida de certificação do Microsoft 365 GitHub Action. Há dois usos possíveis para essa ação do GitHub:

  • Use a implantação mais recente no pipeline de CI/CD como o estado definitivo para o aplicativo: o ACAT realiza avaliações rápidas de conformidade com base na implantação mais recente no pipeline. Além disso, você tem a opção de solicitar que a ACAT atualize um relatório de conformidade correspondente com base nessa implantação, concedendo a você avaliações de controle abrangentes com atualizações diárias.
  • Contar com um relatório de conformidade existente como referência para o aplicativo. O ACAT utiliza os recursos definidos em um relatório de conformidade existente para realizar a avaliação rápida de conformidade.

Integração com pipeline de CI/CD por meio da API REST da ACAT

Obtenha avaliações rápidas de conformidade no pipeline de CI/CD por meio da API REST da ACAT.

  • Conecte-se aos recursos do Azure com a Autenticação da Entidade de Serviço. Siga este guia para saber como criar uma entidade de serviço que possa acessar recursos. Depois que a entidade de serviço for criada, siga as diretrizes da ferramenta de pipeline para armazenar as credenciais. Por exemplo, conecte-se ao Microsoft Azure com uma conexão de serviço ARM.

  • Obtenha a lista de recursos que você gostaria de usar para a avaliação rápida de conformidade.

    $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 gerenciamento de recursos de nuvem (por exemplo, recursos com marcas específicas, recursos em grupos de recursos específicos etc.), examine 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: $_"
    }
    
  • Use a API triggerEvaluation para obter uma avaliação rápida de conformidade para determinados recursos.

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 rápida de conformidade do resultado da API triggerEvaluation.

Referências

Conteúdos de Webhook

Para os conteúdos de webhook do ACAT para cada evento, eles contêm algumas propriedades comuns.

Chave

Obrigatório?

Tipo

Descrição

EventDesc

Sim

Cadeia de caracteres

Evento específico que dispara a notificação.

Mensagem

Sim

Cadeia de caracteres

O conteúdo da notificação. Geralmente contém o nome do relatório como o identificador exclusivo e o carimbo de data/hora em que esse evento acontece.

Detalhes

Não

Cadeia de caracteres

Este é um conteúdo no formato JSON que contém os detalhes desta notificação. Tomando a falha das avaliações de controle como exemplo, os detalhes incluem todas as responsabilidades do cliente com falha para cada controle e recursos afetados.

API REST da ACAT triggerEvaluation

Nome da API: triggerEvaluation

  • Serviço: Automação de Conformidade de Aplicativos
  • Versão da API: 15-02-2023 Versão prévia

Obtenha uma avaliação rápida de conformidade 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 ser usada para esta operação. Você pode usar "2023-02-15-preview"

Cabeçalho da solicitação

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

value: "application/json"

Corpo da Solicitação

Nome

Obrigatório

Tipo

Descrição

ids de recursos

Verdadeiro

matriz de cadeia de caracteres

Lista de IDs de recurso a serem avaliadas

Cabeçalho de Respostas

Nome

Tipo

Descrição

200 OK

A resposta indica que a avaliação rápida de conformidade para determinadas IDs de recurso foi concluída.

202 Aceito

A resposta indica que a avaliação rápida de conformidade para determinadas IDs de recurso foi disparada e está em execução no back-end.

Outros códigos de status

ErrorResponse

Resposta de erro.

TriggerEvaluationResponse

Nome

Tipo

Descrição

triggerTime

string

A hora em que a avaliação é disparada.

evaluationEndTime

string

A hora em que a avaliação é concluída.

ids de recursos

string[]

Lista de IDs de recurso a serem avaliadas

quickAssessments

Lista de avaliações rápidas

Avaliação Rápida

Nome

Tipo

Descrição

resourceId

string

ID do recurso

responsibilityId

string

ID da Responsabilidade

carimbo de data/hora

string

O carimbo de data/hora da criação do recurso (UTC).

resourceStatus

ResourceStatus

Status de avaliação rápida.

displayName

string

Nome de exibição da avaliação rápida.

description

string

Descrição de avaliações rápidas.

remediationLink

string

Link para as etapas de correção para esta avaliação rápida.