Manter o microsoft 365 compatível continuamente com a Ferramenta de Automação de Conformidade de Aplicativo para o Microsoft 365

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

Observação

O ACAT está atualmente em versão prévia pública e dá suporte apenas a aplicativos criados no Azure. As atualizações futuras incluirão funcionalidade para aplicativos criados em serviços de nuvem não hospedados pela Microsoft. Para obter qualquer comentário sobre a visualização pública da ACAT, conclua este formulário. Um especialista em equipe de produtos da ACAT acompanhará você o mais rápido possível.

Obter 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, o ACAT coleta automaticamente dados de conformidade e realiza avaliações diárias de controle. Além disso, você pode receber notificações para 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 escolha Webhook

    • Nome do Webhook: este é o identificador exclusivo do webhook neste relatório.
    • URL de carga: a URL de carga é a URL do servidor que recebe solicitações POST do webhook da ACAT.
    • Tipo de conteúdo: atualmente, o ACAT dá suporte apenas ao tipo de conteúdo de aplicativo/json, que fornece a carga JSON diretamente como o corpo da solicitação POST.
    • Segredo: a configuração de um segredo webhook permite garantir que as solicitações POST enviadas para a URL de 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 é incluída com os cabeçalhos de cada solicitação como x-acat-signature-256.
    • Verificação SSL: a verificação SSL só seria exibida quando sua URL de carga for um site seguro (HTTPS) e ajuda a garantir que as cargas sejam entregues na URL de carga com segurança. Recomendamos manter a verificação Habilitar SSL selecionada.
    • Eventos de gatilho: assine eventos ACAT para obter notificações.

    Criar notificação do webhook

    Dica

    Saiba mais sobre o conteúdo do webhook.

Obter 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 executar uma avaliação rápida de conformidade no pipeline de CI/CD (Integração Contínua/Implantação Contínua). 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 de certificação do Microsoft 365, famílias de controle e controles individuais. Para iniciar uma avaliação de controle dentro dos dados brutos de conformidade da ACAT, é necessário coletar. No entanto, algumas dessas informações brutas de conformidade podem não estar prontamente acessíveis de uma perspectiva técnica. Para enfrentar esse desafio, a ACAT apresenta 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 de conformidade brutos essenciais.

A implementação da avaliação rápida de conformidade serve a duas finalidades:

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

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

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 postáveis para este GitHub Action:

  • Aproveite a implantação mais recente no pipeline de CI/CD como o estado definitivo do 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 a ACAT para atualizar um relatório de conformidade correspondente com base nessa implantação, concedendo a você avaliações de controle abrangentes com atualizações diárias.
  • Confie em um relatório de conformidade existente como referência para o aplicativo.** A ACAT utiliza os recursos definidos em um relatório de conformidade existente para executar 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 os recursos determinados.

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ência

Cargas do Webhook

Para as cargas de webhook do ACAT para cada evento, elas 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

String

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

Detalhes

Não

Cadeia de caracteres

Este é o conteúdo de 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.

Gatilho da API REST da ACATEvaluation

Nome da API: triggerEvaluation

  • Serviço: Automação de Conformidade de Aplicativo
  • Versão da API: 2023-02-15-preview

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

api-version

consulta

True

string

A versão da API a ser usada para essa operação. Você pode usar "2023-02-15-preview"

Cabeçalho de 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

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 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 está concluída.

202 Aceito

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

Outros códigos de status

Errorresponse

Resposta de erro.

TriggerEvaluationResponse

Nome

Tipo

Descrição

triggerTime

cadeia de caracteres

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

evaluationEndTime

cadeia de caracteres

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

resourceIds

string[]

Lista de IDs de recursos a serem avaliadas

QuickAssessments

Lista de avaliações rápidas

QuickAssessment

Nome

Tipo

Descrição

resourceId

cadeia de caracteres

ID do recurso

responsibilityId

cadeia de caracteres

ID de responsabilidade

Timestamp

string

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

resourceStatus

ResourceStatus

Avaliação rápida status.

displayName

string

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

description

string

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

remediationLink

cadeia de caracteres

Vincule-se às etapas de correção para esta avaliação rápida.