<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Pedro&apos;s blog</title><description>k8s, Security, o11y and all things Cloud Native!</description><link>https://pedroignacio.dev/</link><item><title>Adoção de MFA (+ capacidades do Entra ID)</title><link>https://pedroignacio.dev/post/adocao-de-mfa-capacidades-do-entra-id/</link><guid isPermaLink="true">https://pedroignacio.dev/post/adocao-de-mfa-capacidades-do-entra-id/</guid><description>Fator importante para o sucesso das políticas de segurança de acesso da sua empresa, a adoção do MFA não consiste apenas em escolher um (ou mais) métodos de autenticação. Hoje falo sobre alguns fatores que devem ser considerados para que a sua estrat...</description><pubDate>Tue, 07 Nov 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Fator importante para o sucesso das políticas de segurança de acesso da sua empresa, a adoção do MFA não consiste apenas em escolher um (ou mais) métodos de autenticação. Hoje falo sobre alguns fatores que devem ser considerados para que a sua estratégia seja efetiva!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;definição-da-estratégia&quot;&gt;Definição da estratégia&lt;/h1&gt;
&lt;p&gt;Planejar a estratégia para adoção de MFA pode ser algo muito estressante. É importante abordar não apenas aspectos técnicos, mas também processuais, sempre pensando no usuário final, que sofrerá os impactos da implantação dos novos processos e das novas tecnologias.&lt;/p&gt;
&lt;h2 id=&quot;aspectos-não-técnicos-que-devem-ser-considerados&quot;&gt;Aspectos &lt;em&gt;&lt;strong&gt;não&lt;/strong&gt;&lt;/em&gt;-&lt;em&gt;técnicos&lt;/em&gt; que devem ser considerados&lt;/h2&gt;
&lt;p&gt;Algo de extrema importância que deve ser reconhecido no início do planejamento é a maturidade da sua organização quanto às tecnologias existentes. Tendo em mente a segurança dos acessos, escolher um (ou mais) fator de autenticação que permita à organização ter suporte aos usuários finais, bem como um bom gerenciamento dos dispositivos é essencial.&lt;/p&gt;
&lt;p&gt;Aqui vão algumas necessidades que você encontrará ao longo da sua jornada e que podem te poupar muito tempo se você se planejar antecipadamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Suporte&lt;/strong&gt;: com toda certeza, seus usuários precisarão de ajuda com a tecnologia, seja para configurá-la, para utilizá-la ou por algum outro motivo. Garanta que seus recursos do time de suporte saibam como orientar e solucionar os problemas dos usuários;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guia&lt;/strong&gt;: fornecer aos usuários um documento que contenha todas as informações que eles precisam saber sobre a nova tecnologia, pode economizar muitos esforços para suas equipes. O guia deve conter:
&lt;ul&gt;
&lt;li&gt;Processo de instalação e configuração da solução (utilize imagens e ilustrações para facilitar o entendimento do processo até por funcionários das áreas não técnicas);&lt;/li&gt;
&lt;li&gt;Passo-a-passo sobre a utilização da ferramenta;&lt;/li&gt;
&lt;li&gt;Possíveis problemas que o usuário pode encontrar durante sua ativação (caso mapeado, economizará muitos esforços do time de suporte e do time responsável pela ativação);&lt;/li&gt;
&lt;li&gt;Contatos para apoio (uma lista com alguns contatos que possam apoiar os usuários nos novos processos definidos).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comunicação&lt;/strong&gt;: usufruir dos meios de comunicação internos da organização é essencial para informar os usuários das mudanças que estão ocorrendo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;aspectos-técnicos-que-devem-ser-considerados&quot;&gt;Aspectos &lt;em&gt;técnicos&lt;/em&gt; que devem ser considerados&lt;/h2&gt;
&lt;p&gt;Agora pensando nos recursos técnicos que você deve levar em conta, temos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Soluções de MFA&lt;/strong&gt;: temos uma série de soluções disponíveis que podem ser utilizadas como &lt;em&gt;MFA&lt;/em&gt;, quando estiver escolhendo as soluções que farão parte do conjunto de tecnologias da sua empresa, deve-se levar em conta a maturidade da organização em relação aos processos necessários para utilizar aquela solução;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibilidade&lt;/strong&gt;: algumas soluções (como o &lt;em&gt;windows hello for business&lt;/em&gt;) contém pré-requisitos para sua utilização. Antes de escolher uma solução, deve-se avaliar o estado das ferramentas fornecidas pela organizçaão bem como sua compatibilidade com a solução desejada;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grupos de teste&lt;/strong&gt;: a adoção de novas tecnologias sempre é feita com pequenos grupos de usuário, para fins de teste. Escolha bem seu público para testes, pois o resultado dos testes não é o único ponto que deve ser registrado, mas também o &lt;em&gt;feedback&lt;/em&gt; desses usuários, visando melhorar a experiência dos outros usuários da organização.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Após falarmos sobre os problemas que você pode enfrentar quando estiver construindo a estratégia de adoção de MFA na sua organização, vamos falar sobre alguns recursos do Microsoft Entra que podem te ajudar a tornar todo o processo mais simples e menos doloroso para os usuários.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;recursos&quot;&gt;Recursos&lt;/h1&gt;
&lt;p&gt;Depois de comentarmos sobre alguns pontos que podem fazer sua jornada rumo à adoção de soluções de MFA mais simples, é hora de falarmos dos recursos que podem facilitar essas tarefas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Essa seção é destinada puramente à soluções de tecnologia, as soluções para as questões processuais serão abordadas em uma sessão posterior.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;soluções-do-entra&quot;&gt;Soluções do Entra&lt;/h2&gt;
&lt;p&gt;O Entra ID nos oferece uma série de funcionalidades que visam diminuir as dores encontradas pelas empresas em seus processos de modernização tecnológicas. Desde campanhas para registro de MFA até soluções sofisticadas de análise de segurança, temos diversas capacidades fornecidas dentro de uma mesma interface, o &lt;strong&gt;Portal do Entra&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/de25438a-0be8-4165-ac35-a74a6e5f4aad.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima divide em 3 categorias principais (+1 de bônus) os recursos que podem ser utilizados. Vamos aos detalhes em cada uma delas.&lt;/p&gt;
&lt;h3 id=&quot;soluções-de-mfa&quot;&gt;Soluções de MFA&lt;/h3&gt;
&lt;p&gt;Dentro dessa categoria, utilizamos recursos que nos permitem visualizar as opções de soluções disponíveis e realizar algumas configurações préviamente à sua ativação.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Policies&lt;/strong&gt; - as &lt;em&gt;policies&lt;/em&gt; centralizam as configurações dos fatores de MFA disponíveis. Dentro dessa sessão, você consegue visualizar não apenas os modelos de autenticação multi-fator disponível, mas também configurá-los e habilitá-los para utilização pelos usuários da sua empresa. As imagens abaixo mostram a lista de modelos disponíveis e um exemplo de configuração possível.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/1e56afca-945c-4b50-bbb4-71f249fbaad5.png&quot; alt=&quot;Modelos, audiência e estado (habilitado ou não)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/81f94a1c-ee9e-4d1d-810a-54a9b6891e86.png&quot; alt=&quot;Exemplo de configuração&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima é referente à configuração do SMS como solução de MFA. Nela podemos visualizar o &lt;em&gt;toggle&lt;/em&gt; que deve ser usado para habilitar/desabilitar o modelo e também podemos incluir grupos específicos que poderão usufruir desse modelo de MFA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Authentication Strengths&lt;/strong&gt; - visando sua implementação utilizando as políticas de acesso condicional, o &lt;em&gt;authentication strength&lt;/em&gt; permite agrupar um conjunto de modelos de autenticação multi-fator para exigir seu uso em determinados cenários. Por padrão, temos 3 conjuntos comuns já criados: &lt;em&gt;multifactor authentication&lt;/em&gt;, &lt;em&gt;passwordless mfa&lt;/em&gt; e &lt;em&gt;phishing-resistant mfa&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/3ff00499-a519-41b0-ac58-226367500906.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima mostra uma das &lt;em&gt;authentication strengths&lt;/em&gt; existentes no &lt;em&gt;tenant&lt;/em&gt;. Ela engloba todos os métodos de MFA disponíveis na plataforma e como podemos visualizar na última coluna, ainda não está aplicada em nenhuma política de acesso condicional.&lt;/p&gt;
&lt;p&gt;Você também pode criar seu conjunto de dispositivos conforme desejar. Esse recurso será útil quando sua organização definir os MFA que poderão ser utilizados e você quiser exigir um (ou mais) deles quando um usuário tentar executar determinada tarefa.&lt;/p&gt;
&lt;h3 id=&quot;adoção-do-mfa&quot;&gt;Adoção do MFA&lt;/h3&gt;
&lt;p&gt;Para uma política efetiva de ativação de MFA, como foi apresentado anteriormente, é necessário uma junção dos recursos técnicos e dos processos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Registration Campaign&lt;/strong&gt; - essa funcionalidade nos permite configurar de quanto em quanto tempo os usuários serão “avisados” para configurar seu dispositivo de MFA.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/9a0b3b03-d88e-4d05-af6f-5848d71f0d6a.png&quot; alt=&quot;Print do painel de configuração das campanhas&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima mostra as configurações disponíveis para as campanhas. Podemos destinar à um grupo de usuários específicos, bem como configurar quantas vezes e por quanto tempo o usuário poderá adiar essa configuração (para garantir efetividade nos processos da sua empresa, devemos desabilitar a possibilidade de adiamento ou configurar um período de tempo curto).&lt;/p&gt;
&lt;h3 id=&quot;segurança&quot;&gt;Segurança&lt;/h3&gt;
&lt;p&gt;Visando proteger os usuários e também o &lt;em&gt;tenant&lt;/em&gt;, as funcionalidades listadas abaixo permitem que os usuários denunciem atividades suspeitas em seus aplicativos bem como habilitam que os sistemas da Microsoft identifiquem atividades suspeitas automaticamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Suspicious Activity&lt;/strong&gt; - se habilitado, permite que os próprios usuários denunciem atividades suspeitas. Esse modelo está disponível para configurações de MFA que utilizam ou o aplicativo &lt;em&gt;Microsoft Authenticator&lt;/em&gt; ou as &lt;em&gt;chamadas por voz&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/26a8e7f9-3109-41d4-a55b-f0e211fc902a.png&quot; alt=&quot;Formulário de configuração das atividades suspeitas.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Account Security&lt;/strong&gt; - com a proposta de proteger a conta do usuário de ataques do tipo &lt;em&gt;spray&lt;/em&gt;, podemos configurar limites de tentativas de autenticação que utilizam o aplicativo &lt;em&gt;Microsoft Authenticator&lt;/em&gt;. &lt;em&gt;Essa configuração tem efeito apenas para os usuários que utilizam do PIN para confirmar a autenticação no aplicativo.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/92d1d361-0c76-4ea9-a44c-b5aa8fbc9b76.png&quot; alt=&quot;Painel para configuração dos limites.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fraud Alert&lt;/strong&gt; - essa funcionalidade permite que os usuários denunciem notificações de autenticação que não foram iniciadas por eles. No painel abaixo, vemos que é uma possibilidade bloquear automaticamente os usuários que reportarem fraude, com a intenção de proteger o &lt;em&gt;tenant&lt;/em&gt; e a conta.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/adocao-de-mfa-capacidades-do-entra-id/dd19a461-f197-4d68-9eb4-05b92e865337.png&quot; alt=&quot;Painel para configuração das opções de fraude.&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;adicionais&quot;&gt;Adicionais&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;One-time Bypass&lt;/strong&gt; - não é exatamente um recurso atrelado às soluções de MFA, mas vale sua menção. Essa funcionalidade nos permite configurar um “escape” temporário da utilização do MFA. Esse é um cenário bem comum nas empresas e com certeza você vai se deparar com ele. Aqui configuramos um curto espaço de tempo onde o usuário poderá realizar o login e acessar a plataforma sem realizar a autenticação multi-fator. Uma vez que esse tempo expirar, ele será redirecionado à página de login, onde deverá realizar a autenticação MFA ou não poderá acessar os recursos que deseja.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://techcommunity.microsoft.com/t5/microsoft-entra-azure-ad-blog/emphasizing-security-by-default-with-advanced-microsoft/ba-p/3773130&quot;&gt;Supressão das notificações&lt;/a&gt;&lt;/strong&gt; - recentemente implementada, essa funcionalidade “esconde” a notificação que normalmente apareceria no seu dispositivo solicitando a aprovação da autenticação. Baseado em alguns riscos (como viagem atípica e IPs de origem anônimos), isso evita que o usuário receba notificações indesejadas. &lt;em&gt;É importante apontar que mesmo as notificações sendo escondidas, a solicitação para autenticação ainda é existente, então caso o usuário abra o aplicativo ele será apresentado com a necessidade de permitir/negar a solicitação&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;soluções-processuais&quot;&gt;Soluções processuais&lt;/h2&gt;
&lt;p&gt;Tendo em mente os problemas enfrentados pelos usuários e os as pontuações que fiz no início do texto, vamos comentar sobre como podemos solucionar aqueles problemas processuais de maneira satisfatória.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guia&lt;/strong&gt; - para construção do guia você pode utilizar qualquer ferramenta de edição de texto. Optando por uma solução como o &lt;em&gt;Microsoft Word&lt;/em&gt; ou &lt;em&gt;Google Docs&lt;/em&gt; você tem mais possibilidades de exercitar a criatividade e construir um documento completo e compreensível, com imagens, enfoques no texto, divisão de sessões, links, endereços de e-mail, tabelas, etc.&lt;/p&gt;
&lt;p&gt;Estruture bem seu documento para evitar deixá-lo confuso e incompreensível. Verifique a ortografia, se os links e informações de contato estão corretas e se o documento aborda todas as informações consideradas necessárias pelo seu time. No final do processo, salve o arquivo como &lt;em&gt;.pdf&lt;/em&gt; e o mantenha em um local de fácil localização e acesso para que as outras áreas possam acessá-lo (cuidado com a restrição de acesso, colocar o documento em um local onde o acesso é controlado de maneira granular irá gerar um estresse inesperado para ambas as partes, usuários e times de tecnologia).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comunicação&lt;/strong&gt; - para um processo de comunicação efetivo é necessário utilizar os canais selecionados de maneira consistente e visando abranger a maior parcela da organização possível. Um meio efetivo de comunicação é o &lt;em&gt;e-mail&lt;/em&gt;, por ser utilizado por toda a organização de maneira consistente (garantindo um maior alcance dos usuários) e para organizações que fazem uso de mensagens periódicas enviadas para grandes grupos da organização (ex: departamentos de tecnologia, gerentes, equipes de &lt;em&gt;customer success&lt;/em&gt;) esses destinatários podem ser reaproveitados, tirando a necessidade de se realizar um mapeamento das equipes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alinhamento com Suporte&lt;/strong&gt; - pensando em efetivar o processo de solicitação de suporte por parte dos usuários, é importante que os analistas responsáveis por solucionar as questões apresentadas pelos usuários estejam cientes das demandas e de como devem proceder em cada caso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fluxo de excessão&lt;/strong&gt; - como é impossível prever o futuro e acertar 100% dos casos existentes, é importante que os usuários tenham a possibilidade de executar um fluxo de suporte alternativo, para problemas não mapeados e não registrados anteriormente (nas fases de teste e durante a adoção). Para isso, é uma estratégia interessante indicar alguns analistas da equipe que está conduzindo o projeto como pontos focais para esse contato, fazendo uso de seu conhecimento do projeto e da integração que os mesmos tem com as outras áreas.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A mudança cultural e tecnológica de uma empresa que está iniciando a adoção de novas soluções de autenticação não é simples, porém com um bom planejamento é possível obter êxito mesmo com todas as dores de cabeça que serão geradas ao longo do caminho.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha conseguido te auxliar nessa jornada.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Aplicações no Entra ID</title><link>https://pedroignacio.dev/post/aplicacoes-no-entra-id/</link><guid isPermaLink="true">https://pedroignacio.dev/post/aplicacoes-no-entra-id/</guid><description>Em um ambiente empresarial, é comum que tenhamos diversos tipos de aplicações conectadas às nossas soluções. O principal modelo hoje em dia são as aplicações SaaS (Software as a Service) mas não podemos nos esquecer das soluções on-premise, ou instal...</description><pubDate>Wed, 10 Jan 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Em um ambiente empresarial, é comum que tenhamos diversos tipos de aplicações conectadas às nossas soluções. O principal modelo hoje em dia são as aplicações &lt;em&gt;SaaS&lt;/em&gt; (&lt;em&gt;Software as a Service&lt;/em&gt;) mas não podemos nos esquecer das soluções &lt;em&gt;on-premise&lt;/em&gt;, ou instaladas em servidores/máquinas virtuais e também das aplicações desenvolvidas de maneira personalizada, de acordo com a necessidade de negócio. Hoje vamos falar sobre como independente do modelo, é possível integrar essa aplicações ao Entra ID.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-a-importância-de-conectarmos-os-apps-no-idp&quot;&gt;Qual a importância de conectarmos os apps no IdP?&lt;/h1&gt;
&lt;p&gt;Peça fundamental na estratégia de segurança das empresas, os &lt;em&gt;Identity Providers&lt;/em&gt; centralizam as operações e controles relacionados às identidades da empresa. Nesse contexto, para garantirmos a boa governabilidade dos acessos às aplicações, é importante que o componente central dessa arquitetura seja o resposável por fornecer essas permissões.&lt;/p&gt;
&lt;p&gt;Para conseguirmos implementar esse modelo, precisamos garantir que as nossas aplicações (independente do modelo) estejam “plugadas” ao IdP, no escopo deste artigo, o &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aplicacoes-no-entra-id/cb0bbeae-8d78-4409-9353-606ba4f3951c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com essa estratégia implementada, todos os controles de segurança poderão ser aplicados aos usuários e aplicações sem falhas. Usuários perderão seu acesso quando for requisitado, as renovações de acesso serão disparadas quando configuradas e essas são apenas algumas materializações do que essa arquitetura poderá garantir.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;tipos-de-aplicação&quot;&gt;Tipos de aplicação&lt;/h1&gt;
&lt;p&gt;Pensando na pluralidade dos ambientes encontrados nas organizações, é necessário que nós estejamos cientes dos modelos de aplicações que devem existir. Abaixo, temos uma lista dos modelos mais comumente encontrados.&lt;/p&gt;
&lt;h2 id=&quot;aplicações-federadas&quot;&gt;Aplicações Federadas&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aplicacoes-no-entra-id/9147b691-6c86-4c93-9c8b-f80681f0dc78.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Modelo mais simples e frequentemente encontrado nas empresas. Essas soluções são adquiridas pelas empresas já prontas, seja em formato &lt;em&gt;SaaS&lt;/em&gt; (Software as a Service, modelo mais popular) ou havendo a necessidade de instalação da solução em recursos de infraestrutura controlados pela empresa (máquinas virtuais, &lt;em&gt;PaaS&lt;/em&gt; como o Azure App Service, &lt;em&gt;Kubernetes&lt;/em&gt;, etc.).&lt;/p&gt;
&lt;p&gt;Essas soluções são integradas ao Entra ID utilizando protocolos como &lt;em&gt;SAML 2.0&lt;/em&gt; e &lt;em&gt;OIDC&lt;/em&gt;. Esses protocolos permitem a configuração das chamadas &lt;strong&gt;federações&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Federação é o conceito de conectar uma aplicação à um provedor de identidade externo e delegar para esse provedor todas as atividades de autenticação, não havendo necessidade de se ter uma base de usuários local.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Temos no Entra ID uma lista com todas as aplicações com integração &lt;em&gt;out-of-the-box&lt;/em&gt;, integrações essas que basta a troca de algumas informações entre as partes e a conexão está feita. Podes acessar a lista clicando neste &lt;a href=&quot;https://learn.microsoft.com/pt-br/entra/identity/enterprise-apps/overview-application-gallery&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;aplicações-customizadas&quot;&gt;Aplicações Customizadas&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aplicacoes-no-entra-id/52708b8d-43ff-4a1d-a1c4-97ea82c76b40.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Essas aplicações são desenvolvidas pelos times de engenharia das empresas. Utilizam algum tipo de interface (como uma biblioteca) para se comunicar com o IdP. No Entra utilizamos a &lt;strong&gt;MSAL&lt;/strong&gt; (&lt;em&gt;Microsoft Authentication Library&lt;/em&gt;), que contém diversas versões para as tecnologias mais populares do mercado (ex: Angular, JS, .NET).&lt;/p&gt;
&lt;p&gt;Os desenvolvedores irão construir a aplicação, sua lógica de negócio (processamentos, integrações com outros serviços e aplicações) e a interface de comunicação com o Entra. O único insumo estritamente necessário é a criação de um objeto de aplicação (&lt;em&gt;App Registration&lt;/em&gt;), que representará a identidade daquela solução mediante aos outros recursos existentes.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Recursos adicionais como App Roles, grupos e consentimento podem ser configurados de acordo com a necessidade daquela aplicação.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Por mais que essas aplicações tenham sido desenvolvidas de maneira customizada pela organização, dentro do Entra elas terão as mesmas capacidades das soluções “prontas”, abordadas na seção anterior. Os mesmos controles de segurança implementados poderão ser configurados nessas ferramentas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;O modelo de aplicações personalizadas permite o uso dos &lt;strong&gt;Authentication Contexts&lt;/strong&gt;, recurso esse que fornece uma camada adicional de segurança para acesso à informações privilegiadas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;apis&quot;&gt;APIs&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aplicacoes-no-entra-id/108e4977-5082-4b68-b503-c552a8f82188.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sendo uma funcionalidade específica do Entra, não necessáriamente aplicável à outras ferramentas de mercado, temos a capacidade de integrar APIs publicadas no &lt;em&gt;Azure API Management&lt;/em&gt; e utilizar os tokens gerados pelo Entra para realizar a autorização dentro das aplicações.&lt;/p&gt;
&lt;p&gt;À partir dessa funcionalidade, podemos configurar no Entra para que as &lt;em&gt;claims&lt;/em&gt; necessárias para realizar a autorização na API sejam enviadas no token. Para isso, declaramos na configuração da aplicação no Entra as chamadas &lt;em&gt;app roles&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As App Roles são valores configurados no objeto da aplicação (app registration) e que representam as informações necessárias para sua API realizar o processo de autorização.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;aplicações-legadas-application-proxy&quot;&gt;Aplicações Legadas (application proxy)&lt;/h2&gt;
&lt;p&gt;![Publicar aplicativos locais com o Proxy de Aplicativo do Microsoft Entra -  Microsoft Entra ID | Microsoft Learn](&lt;a href=&quot;https://learn.microsoft.com/pt-br/entra/identity/app-proxy/media/what-is-application-proxy/azure-ad-application-proxy-authentication-flow.png&quot;&gt;https://learn.microsoft.com/pt-br/entra/identity/app-proxy/media/what-is-application-proxy/azure-ad-application-proxy-authentication-flow.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Outro recurso interessante e extremamente útil para organizações que contém muito legado, é o &lt;strong&gt;Entra ID Application Proxy&lt;/strong&gt;. Esse componente permite integrar no Entra ID essas aplicações que precisariam passar por algum tipo de modernização, sem a necessidade de reformulação de código ou de &lt;em&gt;re-deploy&lt;/em&gt; da solução.&lt;/p&gt;
&lt;p&gt;O proxy é um agente instalado no servidor onde a aplicação é executada. Ele é configurado no Entra ID e servirá como a interface para autenticação nessas aplicações.&lt;/p&gt;
&lt;p&gt;Esse agente permitirá utilizar os recursos de segurança existentes (como &lt;em&gt;conditional access&lt;/em&gt; e &lt;em&gt;MFA&lt;/em&gt;) no acesso à solução, capacidade que será útil em momentos de modernização do &lt;em&gt;landscape&lt;/em&gt; de ferramentas da sua organização para soluções de negócio críticas e que tem necessidade de maior proteção.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Como qualquer implementação, a implementação do Application Proxy requer análise dos requisitos. Mesmo suas capacidades sendo úteis em diversos cenários, é importante a avaliação pelos times responsáveis, pois mesmo habilitando as capacidades modernas fornecidas pelo Entra, esse componente tem interdependências com outras soluções, como o Active Directory, o que pode gerar certo desequilíbrio na performance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;segurança-das-aplicações&quot;&gt;Segurança das aplicações&lt;/h1&gt;
&lt;p&gt;Não poderia encerrar esse texto sem ao menos mencionar as estratégias de segurança para essas aplicações.&lt;/p&gt;
&lt;p&gt;Independente do modelo, as aplicações serão visíveis à partir do Entra ID, o que nos permite aplicar (quase todos) os controles tangíveis à plataforma em todas as aplicações. Controles que são esses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Conditional Access&lt;/strong&gt;: um dos recursos mais poderosos do Entra, é completamente compatível com as aplicações. Podemos definir políticas de risco de acesso, autenticação multi-fator baseada em risco, controle de acesso por localidade, acesso de dispositivo &lt;em&gt;compliant&lt;/em&gt;, entre outras capacidades;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grupos de acesso:&lt;/strong&gt; uma outra boa estratégia para controlar o acesso às aplicações é a configuração de grupos de acesso. Aqui cria-se um grupo que será atribuído à aplicação, dessa forma apenas os usuários presentes nesse grupo terão acesso ao app. Usuários não presentes nos grupos cadastrados poderão tentar acessar a aplicação, porém receberão um erro no momento da tentativa de &lt;em&gt;login&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revisões de acesso&lt;/strong&gt;: para garantir que os acessos às aplicações são feitos apenas pelos usuários necessários, podemos configurar as revisões de acesso, que podem ser feitas periódicamente (disparadas à cada X dias). Se configuradas de uma maneira em que o gestor da aplicação faça a gestão dessas revisões, o fluxo de controle de acesso ficará eficiente e autocontido no time responsável pelo app.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Vale mencionar novamente os Authentication Contexts, que podem ser utilizados junto das Conditional Access Policies para garantir o acesso seguro a informações confidenciais presentes nas soluções.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Esses são alguns controles de segurança representados em alto nível, podemos aumentar a granularidade do controle e fortalecer a proteção ao personalizar as confugrações desses recursos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Em uma época onde é cada vez mais comum a aquisição de soluções ao invés de desenvolvimentos proprietários, não é possível mensurar a importância do controle de acesso pelas empresas. Soluções sendo executadas em diversas localizações geográficas, acessadas por times em lugares diferentes do país (e até do mundo), com dispositivos de diversas plataformas e fabricantes, tudo isso resultando em um ecossistema altamente complexo e descentralizado. A convergência em um componente controlado pela organização, permite a aplicação das políticas de segurança necessárias para garantir a proteção dos recursos da empresa.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha contribuído para a estratégia de segurança da sua empresa.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>AZ-104 — Microsoft Azure Administrator Associate</title><link>https://pedroignacio.dev/post/az104-thoughts/</link><guid isPermaLink="true">https://pedroignacio.dev/post/az104-thoughts/</guid><description>Uma das provas mais difíceis que já fiz mas também uma das mais legais. A AZ-104 é a porta de entrada de muitos nas certificações de nível associate.
Para quem realizou a AZ-900 (Azure Fundamentals), saiba que essa prova é um passo grande na sua carr...</description><pubDate>Sun, 02 Jul 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Uma das provas mais difíceis que já fiz mas também uma das mais legais. A AZ-104 é a porta de entrada de muitos nas certificações de nível &lt;em&gt;associate&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Para quem realizou a AZ-900 (&lt;em&gt;Azure Fundamentals&lt;/em&gt;), saiba que essa prova é um passo grande na sua carreira e que exigirá muito esforço, mas no final das contas valerá a pena.&lt;/p&gt;
&lt;p&gt;Hoje vamos falar um pouco sobre a prova em si, minha experiência com o teste e com a preparação, e no final te darei algumas dicas para que seja bem sucedido na sua tentativa.&lt;/p&gt;
&lt;h3 id=&quot;sobre-oexame&quot;&gt;Sobre o exame&lt;/h3&gt;
&lt;p&gt;Como comentei anteriormente, essa prova é totalmente diferente da sua antecessora. Enquanto as provas de fundamentos tratam conhecimentos gerais da plataforma e dos serviços, as provas de nível &lt;em&gt;associate&lt;/em&gt; exigem que você tenha conhecimento dos serviços à nível de implementação.&lt;/p&gt;
&lt;p&gt;Não existe ao certo um número de questões, quando fiz a prova, me deparei com 54 questões, mas já ouvi relatos de amigos que fizeram provas com mais e com menos questões.&lt;/p&gt;
&lt;p&gt;Mesmo não podendo dizer ao certo quantas questões o exame terá na sua tentativa, as provas compartilham alguns modelos de perguntas.&lt;/p&gt;
&lt;h4 id=&quot;conhecimentos-gerais&quot;&gt;Conhecimentos gerais&lt;/h4&gt;
&lt;p&gt;Todas as perguntas serão sobre os serviços abordados nos &lt;a href=&quot;https://learn.microsoft.com/pt-br/certifications/resources/study-guides/az-104&quot;&gt;&lt;em&gt;t&lt;/em&gt;ópicos do exame&lt;/a&gt;. Você deve saber como criar os serviços, suas peculiaridades, possíveis configurações e integrações com outros recursos da plataforma.&lt;/p&gt;
&lt;p&gt;Dentro dessas perguntas, espere de tudo, &lt;em&gt;networking&lt;/em&gt;, &lt;em&gt;logging&lt;/em&gt;, &lt;em&gt;monitoring&lt;/em&gt;, &lt;em&gt;compute&lt;/em&gt;, &lt;em&gt;storage&lt;/em&gt;, etc. As perguntas serão das mais variadas mas sempre se mantendo dentro da estrutura declarada do exame.&lt;/p&gt;
&lt;p&gt;Você precisará saber se um serviço pode se integrar com outro da forma que foi criado (você receberá as informações necessárias na forma de textos e possivelmente imagens), se o serviço cumpre os requisitos de negócio, se com aquela infraestrutura criada você conseguirá atingir o objetivo determinado, etc. Os cenários são muitos para elencar, mas o que fica de padrão entre eles, é a necessidade que você saiba como os serviços funcionam de verdade.&lt;/p&gt;
&lt;h4 id=&quot;caso-deuso&quot;&gt;Caso de uso&lt;/h4&gt;
&lt;p&gt;Normalmente as provas apresentam apenas 1 caso de uso, porém encontrei relatos na internet de provas com 2 exercícios desse tipo.&lt;/p&gt;
&lt;p&gt;Os casos de uso são perguntas complexas, onde você recebe diversas informações de maneiras diferentes (imagens e textos) e precisa responder as questões. Você recebe um cenário (normalmente uma empresa fictícia) e terá que responder 5 questões. Para responder essas 5 questões você precisará navegar entre as informações fornecidas. As informações costumam ser: &lt;strong&gt;infraestrutura da empresa&lt;/strong&gt;, &lt;strong&gt;mudanças planejadas no ambiente&lt;/strong&gt;, &lt;strong&gt;requisitos de negócio&lt;/strong&gt; e coisas desse tipo. As perguntas costumam exigir que você selecione dentre as opções, a alternativa que atenda os requisitos, respeitando o ambiente existente e os direcionamentos da área de negócios.&lt;/p&gt;
&lt;h4 id=&quot;simnão&quot;&gt;Sim/não&lt;/h4&gt;
&lt;p&gt;Em sua grande maioria, é apresentada no final do exame, visto que você já passou pelas duas categorias anteriores.&lt;/p&gt;
&lt;p&gt;Esse modelo de pergunta não permite que você retorne à resposta anterior para conferi-la, você terá 1 chance para respondê-la e depois não poderá revisá-la.&lt;/p&gt;
&lt;p&gt;Você é apresentado um cenário e uma solução. Seu papel é responder se a solução proposta atende o cenário informado, tendo como opção apenas &lt;strong&gt;sim&lt;/strong&gt; e &lt;strong&gt;não&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A grande dificuldade desse modelo de perguntas é que as vezes você responde a primeira e a solução proposta na pergunta seguinte, se adequa melhor ao cenário. Isso nos deixa nervoso, pois ficamos tentando adivinhar quais as soluções propostas nas próximas perguntas e muitas vezes, ao ver a questão seguinte, nos questionamos de nossa escolha.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NÃO faça isso!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Quando estiver respondendo uma dessas perguntas, o importante é que você garanta que a solução proposta atenda o requisito apresentado. Se a solução ATENDER a necessidade de negócio, mesmo não sendo a mais indicada (por questões de custo, performance, etc.) confie no seu conhecimento, não responda a questão pensando que a próxima pode apresentar uma solução mais adequada.&lt;/p&gt;
&lt;h3 id=&quot;dicas&quot;&gt;Dicas&lt;/h3&gt;
&lt;p&gt;Tendo entendido a estrutura da prova, vou te passar algumas dicas para você aplicar durante o teste e para sua preparação.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As dicas não vão abordar perguntas específicas do exame. A ideia é fornecer algumas informações sobre os temas que podem estar presentes e como se capacitar melhor para sua tentativa.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;da-prova&quot;&gt;Da prova&lt;/h4&gt;
&lt;p&gt;Logo após finalizar a última questão da prova, revisar as que tinha deixado marcadas e receber a maravilhosa notícia que havia passado, comecei a refletir sobre o que vi no teste e sobre a minha preparação. Consegui identificar os assuntos que deveria ter me preparado melhor e os que consegui me capacitar de maneira satisfatória para o exame. Aqui estão alguns deles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Logging&lt;/em&gt;: foi um assunto muito presente na minha prova. Soluções como &lt;em&gt;log analytics&lt;/em&gt;, &lt;em&gt;azure monitor&lt;/em&gt;, &lt;em&gt;application insights&lt;/em&gt; e &lt;em&gt;network watcher&lt;/em&gt; marcaram presença o exame todo. Para esse ponto a minha recomendação é: &lt;strong&gt;entenda o ecossistema do Azure Monitor&lt;/strong&gt;. O monitor além de ser uma ferramenta extremamente poderosa, é o centralizador do monitoramento na plataforma. É na interface do &lt;em&gt;monitor&lt;/em&gt; que nós visualizamos informações, executamos &lt;em&gt;queries&lt;/em&gt;, criamos alertas e muitas outras ações relacionadas ao monitoramento dos recursos e do ambiente;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Networking&lt;/em&gt;: esse foi o tema que senti mais presente e também o que me trouxe mais dificuldade. Um tipo de questão constantemente visto, é a de integração entre redes. Integração entre dois escritórios da mesma empresa, conexão do ambiente &lt;em&gt;on-premise&lt;/em&gt; com a rede em &lt;em&gt;cloud&lt;/em&gt;, os diferentes tipos de conexão VPN, todos esses modelos apareceram, alguns mais de uma vez. Não é necessário ter um conhecimento avançado em redes de computadores, porém ter uma boa compreensão da estrutura de &lt;em&gt;networking&lt;/em&gt; do ambiente &lt;em&gt;cloud&lt;/em&gt; e como fazer para conectar diversas redes à sua (através de &lt;em&gt;VPN&lt;/em&gt;, &lt;em&gt;ExpressRoute&lt;/em&gt;, &lt;em&gt;WAN&lt;/em&gt;, &lt;em&gt;Peering&lt;/em&gt;) vai permitir que você responda essas questões tranquilamente, de forma que você não perca mais tempo do que devia;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Computing&lt;/em&gt;: presente em praticamente todas as certificações, a parte de &lt;em&gt;computing&lt;/em&gt; é muito importante para seu sucesso. Conhecer as ferramentas disponíveis (&lt;em&gt;App Service&lt;/em&gt;, &lt;em&gt;Azure Kubernetes Services&lt;/em&gt;, Azure &lt;em&gt;Virtual Machines&lt;/em&gt;, Azure &lt;em&gt;VM Scale Sets&lt;/em&gt;, &lt;em&gt;Azure Container Instances&lt;/em&gt;, &lt;em&gt;Azure Container Registry&lt;/em&gt;) e praticar a implementação de alguns projetos com elas, te ajudará muito na prova. Nessa categoria, é importante que você conheça também os &lt;em&gt;SKUs&lt;/em&gt; de alguns serviços, como o &lt;em&gt;Azure&lt;/em&gt; &lt;em&gt;App Service&lt;/em&gt;, apenas para entender os recursos que os diferentes níveis de serviço fornecem;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Azure AD&lt;/em&gt;: o &lt;em&gt;Azure AD&lt;/em&gt; é muito mais do que só a ferramenta de controle de acesso à Azure. Ele é um dos líderes de mercado como ferramenta de IAM, então conhecer essa ferramenta não é importante só para a prova, mas também para sua carreira na &lt;em&gt;cloud&lt;/em&gt;, visto que se torna uma habilidade valiosa. Para o teste é importante que você entenda seu funcionamento geral, formas de licenciamento, diferentes tipos de objetos (usuários, grupos, unidades administrativas, etc.), RBAC (&lt;em&gt;role based access control&lt;/em&gt;) e políticas de acesso condicional. Esses não são os únicos tópicos que serão abordados, mas são assuntos importantes e que você deve dar mais atenção;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;de-conteúdopreparação&quot;&gt;De conteúdo/preparação&lt;/h4&gt;
&lt;p&gt;A escolha do conteúdo preparatório é parcela importantíssima no seu processo. Junto da disciplina, elas formam o que é necessário para que você atinja seus objetivos.&lt;/p&gt;
&lt;p&gt;O primeiro link que quero te passar é o do &lt;strong&gt;&lt;a href=&quot;https://www.youtube.com/@CanaldaCloud&quot;&gt;Canal da Cloud&lt;/a&gt;&lt;/strong&gt;, da &lt;strong&gt;Valéria Baptista&lt;/strong&gt;. A Valéria produz uma série de conteúdos fantásticos na plataforma dela, como cursos preparatórios para certificações, vídeos de aprofundamento técnico em assuntos específicos e bate-papos com convidados da área, onde podemos acompanhar uma troca de conteúdo e experiências muito rica. No canal dela você encontra uma série de 5 vídeos preparatórios para a prova, o primeiro deles você pode acessar clicando &lt;a href=&quot;https://www.youtube.com/live/2qxa__U5oVU?feature=share&quot;&gt;aqui&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;A segunda recomendação de conteúdo é o &lt;a href=&quot;https://www.udemy.com/course/microsoft-certified-azure-administrator/&quot;&gt;curso do &lt;em&gt;Alan Rodrigues&lt;/em&gt;&lt;/a&gt; na &lt;em&gt;Udemy&lt;/em&gt;. O curso é completamente em inglês, porém contém uma abordagem bem diferente do que estamos acostumado a ver. Os vídeos são focados na prática, o instrutor explica um tema abrindo o portal Azure e criando o recurso, para que você possa acompanhar com ele e adquirir a experiência prática para realizar o exame mais confortável.&lt;/p&gt;
&lt;p&gt;Para uma revisão rápida, um vídeo que recomendo é &lt;a href=&quot;https://youtu.be/VOod_VNgdJk&quot;&gt;esse&lt;/a&gt;, do &lt;em&gt;Jhon Savill&lt;/em&gt;. &lt;em&gt;Jhon&lt;/em&gt; é um youtuber que tem um canal completamente focado em Azure. Ele trata de todos os assuntos, certificações, temas específicos e até atualizações na plataforma. O canal é atualizado semanalmente e sempre conta com vídeos novos. Um conteúdo interessante do canal são os &lt;em&gt;study crams&lt;/em&gt;, que são “vídeos resumo” para as provas. Ele explica os conceitos de maneira simples e compreensível, oferecendo nível de detalhe excepcional para um vídeo de menos de 4 horas.&lt;/p&gt;
&lt;p&gt;Por fim, temos o &lt;a href=&quot;https://learn.microsoft.com/pt-br/certifications/exams/az-104/practice/assessment?assessment-type=practice&amp;#x26;assessmentId=21&quot;&gt;assessment oficial&lt;/a&gt; da Microsoft. O &lt;em&gt;assessment&lt;/em&gt; contém uma série de perguntas sobre os tópicos do exame. É um recurso interessante para praticar antes e pegar confiança antes da prova.&lt;/p&gt;
&lt;h3 id=&quot;a-prova&quot;&gt;A prova&lt;/h3&gt;
&lt;p&gt;Como comentei anteriormente, meu teste teve 54 questões. Pode ser que o seu tenha mais ou menos, mas não espere que o número seja muito diferente.&lt;/p&gt;
&lt;p&gt;O exame, além de testar seu conhecimento técnico, testa sua habilidade de gerenciamento de tempo. Você terá 100 minutos (1 hora e 40 minutos) para entregar a prova (responder todas as questões e revisar as que você marcou) e mesmo parecendo que é muito tempo, você pode se complicar rapidamente.&lt;/p&gt;
&lt;p&gt;Você pode (e deve) utilizar a funcionalidade de revisar posteriormente (&lt;em&gt;review later&lt;/em&gt;). Fazendo uso dessa “ferramenta” você vai conseguir organizar seu tempo de prova e não precisará perder tempo em questões que você está confuso ou que está achando difícil. Gerencie bem seu tempo, fique atento à quantas questões faltam para terminar a prova e responda as questões com calma.&lt;/p&gt;
&lt;p&gt;100 minutos é bastante tempo, mas quando estamos concentrados tentando resolver as questões da prova parece que o relógio passa mais rápido. Tudo bem se você se sentir confuso com uma questão, essa é uma situação que vai ocorrer com certa frequência durante a prova. O importante é você não perder tempo e não conseguir responder as questões seguintes.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Gerencie seu tempo!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seguindo essas dicas e prestando atenção aos pontos que comentei, você estará bem preparado para a prova. Pratique seus conhecimentos e esteja confiante que o &lt;em&gt;PASS&lt;/em&gt; é garantido.&lt;/p&gt;
&lt;p&gt;Boa prova ❤&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>AZ-305 — Microsoft Azure Solutions Architect Expert</title><link>https://pedroignacio.dev/post/az305-thoughts/</link><guid isPermaLink="true">https://pedroignacio.dev/post/az305-thoughts/</guid><description>Após concluir (por enquanto) minha jornada pelas certificações da Microsoft, vou tomar esse tempo para compartilhar com você os meus insights, dicas e sugestões para que seja bem sucedido ao fazer a prova.

Sobre o exame

NÃO é uma prova fácil!

É im...</description><pubDate>Tue, 06 Jun 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Após concluir (por enquanto) minha jornada pelas certificações da Microsoft, vou tomar esse tempo para compartilhar com você os meus insights, dicas e sugestões para que seja bem sucedido ao fazer a prova.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;sobre-oexame&quot;&gt;Sobre o exame&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NÃO&lt;/strong&gt; é uma prova fácil!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;É importante deixar isso bem claro, pois ao contrário do que alguns vendem pela internet, a prova é complexa e exige muito do candidato. As questões são multidisciplinares, aglomerando uma série de assuntos diferentes em uma mesma questão para testar seu conhecimento do ecossistema Microsoft.&lt;/p&gt;
&lt;p&gt;O exame é direcionado para arquitetos de solução que trabalham diretamente com as tecnologias Microsoft, então já era de se esperar que as perguntas tivessem um viés técnico mais voltado para arquitetura.&lt;/p&gt;
&lt;p&gt;A maioria esmagadora das questões solicita que você escolha dentre as alternativas fornecidas, a solução que irá gerar &lt;em&gt;&lt;strong&gt;menor esforço operacional&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;otimizar custos&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;atingir os objetivos do negócio&lt;/strong&gt;&lt;/em&gt;. Esses são termos que os arquitetos (incluindo eu) estão acostumados a ouvir no dia a dia de trabalho, considerando que essa é a &lt;em&gt;tríade&lt;/em&gt; de qualquer projeto.&lt;/p&gt;
&lt;p&gt;Para melhorar a vossa perspectiva, vou detalhar cada um desses tópicos para que você vá para seu teste com eles em completo entendimento.&lt;/p&gt;
&lt;h2 id=&quot;menor-esforço-operacional&quot;&gt;Menor esforço operacional&lt;/h2&gt;
&lt;p&gt;Considerando o momento de implantação da solução, é comum nas empresas haver um time que vá sustentar as operações da infraestrutura (times dedicados, times autossuficientes, etc). Esse direcionamento, infere que a solução construída, gere a menor quantidade possível de trabalho para as equipes de sustentação. Em termos técnicos, devemos buscar soluções &lt;em&gt;&lt;strong&gt;gerenciadas&lt;/strong&gt;&lt;/em&gt; e que não exijam manutenção de infraestrutura pelos times.&lt;/p&gt;
&lt;p&gt;Soluções PaaS (&lt;em&gt;Platform as a Service&lt;/em&gt;) fornecem o menor esforço operacional quando estamos pensando nas soluções de nuvem, pois o trabalho de gerenciamento da infraestrutura é dedicado completamente ao provedor de cloud.&lt;/p&gt;
&lt;p&gt;É importante deixar claro que o “esforço operacional” não tira a responsabilidade das equipes de operar o produto até certo ponto. A infraestrutura sendo gerenciada descarrega um pouco a responsabilidade sob os times, porém outros aspectos do serviço precisam ser operacionalizados. A segurança e as informações nele contidas são duas coisas que precisarão do toque dos times, pois estão sob a responsabilidade do cliente do &lt;em&gt;cloud provider&lt;/em&gt; (você).&lt;/p&gt;
&lt;h2 id=&quot;otimizar-custos&quot;&gt;Otimizar custos&lt;/h2&gt;
&lt;p&gt;Essa é bem direta, sua solução deve ser o mais &lt;em&gt;cost-optimized&lt;/em&gt; possível. Isso incluí, saber selecionar corretamente os recursos que irão compor sua arquitetura, bem como escolher o &lt;em&gt;SKU&lt;/em&gt; correto e planejar os aspectos de disponibilidade e escalabilidade da solução.&lt;/p&gt;
&lt;p&gt;Se atente às diferenças dos níveis de serviço, em muitos casos os diferentes &lt;em&gt;SKUs&lt;/em&gt; entregam alguns recursos em comum, porém quanto mais caro o nível de serviço, mais coisas ele entrega. O &lt;em&gt;tier&lt;/em&gt; escolhido deve entregar apenas o essencial para a solução, não sendo necessário contratar mais do que o projeto irá realmente utilizar.&lt;/p&gt;
&lt;h2 id=&quot;atingir-os-objetivos-denegócio&quot;&gt;Atingir os objetivos de negócio&lt;/h2&gt;
&lt;p&gt;Assim como o anterior, esse é simples. A solução construída e todos os componentes que a compõem, deve entregar aos demandantes o que foi solicitado.&lt;/p&gt;
&lt;p&gt;A solução deve ser harmônica ao ponto de ser eficiente, ter seus custos otimizados, ser escalável, altamente disponível não deve aumentar a carga operacional das equipes.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;dicas&quot;&gt;Dicas&lt;/h1&gt;
&lt;h2 id=&quot;da-prova&quot;&gt;Da prova&lt;/h2&gt;
&lt;p&gt;Meu exame estava agendado para maio/2023 e já com a prova marcada fui perceber que a estrutura de tópicos tinha sido alterada. Cuidado!&lt;/p&gt;
&lt;p&gt;Essa é a primeira dica, &lt;strong&gt;mantenha-se SEMPRE atento à página do exame&lt;/strong&gt;, pois eles estão em constante evolução e são atualizados regularmente. Os exames são constantemente atualizados para que estejam o mais alinhado com as exigências do mercado.&lt;/p&gt;
&lt;p&gt;Por já ser certificado com as provas AZ-104 (&lt;em&gt;Microsoft Azure Administrator Associate&lt;/em&gt;), AZ-500 (&lt;em&gt;Microsoft Azure Security Engineer Associate&lt;/em&gt;) e estando confortável de maneira prática com os recursos da plataforma, eu estava tranquilo que este exame deveria ser meu próximo passo na jornada das certificações. Ambas as certificações compartilham muito conteúdo com a AZ-305, porém abordam as questões em profundidades diferentes.&lt;/p&gt;
&lt;p&gt;A segunda dica é: &lt;strong&gt;não pule nenhuma prova da trilha de certificações recomendadas pela Microsoft&lt;/strong&gt;, elas te ajudarão a se preparar para os testes mais difíceis. As certificações são construídas de maneira que você consiga as fazer seguindo uma “trilha”, começando com as provas que exigem menos profundidade técnica e mais conhecimentos gerais sobre os assuntos e terminando com as provas altamente técnicas, como é o caso desta que estamos falando. Seguir a trilha trará confiança para que você siga em frente com as outras provas e gerará conforto em relação ao que você sabe, incrementando ainda mais sua confiança.&lt;/p&gt;
&lt;p&gt;A terceira dica é: &lt;strong&gt;PRATIQUE!&lt;/strong&gt; Existem diferentes formas de se praticar e treinar para as provas. Você pode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;construir projetos;&lt;/li&gt;
&lt;li&gt;criar instância dos serviços e aprender a utilizá-los separadamente;&lt;/li&gt;
&lt;li&gt;utilizar vídeos de &lt;em&gt;hands-on&lt;/em&gt; disponíveis no youtube e que permitirão que você siga um passo a passo de como utilizar aquele serviço;&lt;/li&gt;
&lt;li&gt;usufruir das documentações técnicas dos produtos que são muito ricas e fornecem tudo que você precisa para deixá-los operando da maneira correta;&lt;/li&gt;
&lt;li&gt;responder os famosos “quizes” na internet. Essa opção fornece uma prática diferenciada, pois você não aprenderá como os serviços funcionam corretamente (que é recomendado), porém as perguntas podem ser úteis para te preparar para a prova;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;de-conteúdo&quot;&gt;De conteúdo&lt;/h2&gt;
&lt;p&gt;Ao fazer uma breve pesquisa na internet, conseguimos recuperar dezenas de links de conteúdo preparatório para a(s) prova(s), porém em meio a todos esses recursos, a verdadeira dificuldade é conseguir escolher alguns que forneçam a qualidade e a profundidade esperada.&lt;/p&gt;
&lt;p&gt;Como bem sabemos, é muito simples aprender algo na internet. Hoje temos conteúdo de praticamente todos os assuntos disponíveis de graça em plataformas como o Youtube, porém não precisamos nos limitar apenas aos vídeos. A Microsoft fornece uma plataforma de learning completa, que conta com módulos de leitura, sandboxes, quizes e vídeo aulas que enriquecerão seus estudos.&lt;/p&gt;
&lt;p&gt;Para quem optar por cursos pagos, temos plataformas como a Udemy, Pluralsight e A Cloud Guru que fornecem um landscape de treinamentos simplesmente fantástico. Temos conteúdos dos mais variados. De preparatório para certificações mais básicas às mais avançadas, cursos focados em temas e tecnologias específicas dos provedores de nuvem (ex: serverless, conteineres, etc). Algumas plataformas trabalham com o conceito de assinaturas mensais e anuais, outras trabalham com a compra de cursos. Com tantas opções, você pode escolher a que melhor se adapta à sua necessidade.&lt;/p&gt;
&lt;p&gt;Os materiais utilizados por mim durante a preparação para a prova foram:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.udemy.com/course/exam-az-microsoft-azure-exam-role1/learn/lecture/26992122?start=0#overview&quot;&gt;Microsoft Azure Solutions Architect Expert&lt;/a&gt; — Alan Rodrigues, Udemy;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/pt-br/certifications/exams/az-305/&quot;&gt;Módulos preparatórios do Microsoft Learn&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/cloud-adoption-framework/&quot;&gt;Cloud Adoption Framework&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/certifications/practice-assessments-for-microsoft-certifications&quot;&gt;Assessment oficial da Microsoft&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Toda a minha preparação girou em cima do curso mencionado acima. Após termina-lo, procurei entender os gaps de conhecimento que tinha e estudei os assuntos de maneira personalizada, utilizando em grande maioria as documentações oficiais dos serviços.&lt;/p&gt;
&lt;p&gt;O CAF (Cloud Adoption Framework) foi essencial durante meus estudos, pois com ele eu pude aprender sobre as práticas mais recomendadas pela equipe de especialistas da Microsoft e pude enriquecer o meu processo de tomada de decisão para construção das soluções.&lt;/p&gt;
&lt;p&gt;O assessment é composto por um conjunto de questões sobre os diferentes serviços da plataforma. Ele visa fornecer um teste rápido para validação de conhecimento como forma preparatória para a prova. Composto de 50 questões de múltipla escolha, você pode visualizar as respostas das perguntas que você errou no momento da resposta ou ao final do teste, onde é disponibilizado um conglomerado de todas as perguntas e as alternativas selecionadas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;a-prova&quot;&gt;A prova&lt;/h1&gt;
&lt;p&gt;Por fim, a prova. O meu teste foi composto de 54 questões e continha questões de múltipla escolha, drag-and-drop, casos de uso e perguntas de sim/não.&lt;/p&gt;
&lt;p&gt;Os casos de uso são complexos e exigem bastante atenção. Eles costumam representar um cenário “comum” em empresas. Você será perguntado sobre qual a melhor solução para determinada atividade e é sua responsabilidade consumir os requisitos, preferências e verificar a possibilidade de implementar a solução que recomendaste. Cada pergunta do case normalmente exige que você análise as informações fornecidas diversas vezes, pois como em uma empresa de verdade, existem incontáveis variáveis que podem influenciar a forma com que você toma a decisão.&lt;/p&gt;
&lt;p&gt;As perguntas de sim e não são mais simples. Em um determinado momento do exame você terá um cenário apresentado e uma solução proposta, é seu dever afirmar ou negar que a solução proposta atende os requisitos. Nessa fase do exame você não consegue voltar para a pergunta anterior, e é aí que entra a dificuldade. Após responder a primeira pergunta, a segunda pergunta pode ser igual à anterior porém com uma diferente solução proposta. Você não poderá voltar e alterar sua resposta, então esteja muito atento aos requisitos e afirme com confiança que a solução proposta atende ou não a necessidade.&lt;/p&gt;
&lt;p&gt;O restante do exame é composto de perguntas de múltipla escolha e drag-and-drop. São perguntas menos complexas que as apresentadas no caso de uso, porém exigem profundidade técnica em múltiplas vertentes do ecossistema Azure.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha conseguido te ajudar a ter uma perspectiva mais realista da prova e fornecido insights que te ajudem a sair bem sucedido do exame.&lt;/p&gt;
&lt;p&gt;Boa prova ❤&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Conditional Access - guia completo!</title><link>https://pedroignacio.dev/post/conditional-access/</link><guid isPermaLink="true">https://pedroignacio.dev/post/conditional-access/</guid><description>Nas empresas onde trabalhamos, é comum termos diversos desafios relacionados às identidades. Muitos desses desafios dizem respeito à diferentes cenários, com os quais devemos nos preocupar (cenários como: empresas terceirizadas acessando nossas aplic...</description><pubDate>Wed, 24 Jan 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nas empresas onde trabalhamos, é comum termos diversos desafios relacionados às identidades. Muitos desses desafios dizem respeito à diferentes cenários, com os quais devemos nos preocupar (cenários como: empresas terceirizadas acessando nossas aplicações). Se considerarmos também os temas de segurança, os desafios ficam ainda maiores e mais complexos. Hoje vamos falar sobre um aliado nessa nossa jornada rumo à uma proteção melhor do nosso ambiente e dos ativos da nossa organização.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-são-as-políticas-de-acesso-condicional&quot;&gt;O que são as políticas de acesso condicional?&lt;/h1&gt;
&lt;p&gt;![Diagram showing a high level Conditional Access overview](&lt;a href=&quot;https://learn.microsoft.com/en-us/entra/identity/conditional-access/media/plan-conditional-access/conditional-access-overview-how-it-works.png&quot;&gt;https://learn.microsoft.com/en-us/entra/identity/conditional-access/media/plan-conditional-access/conditional-access-overview-how-it-works.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Nós podemos interpretar, de maneira correta, as políticas de acesso condicional como o &lt;strong&gt;motor&lt;/strong&gt; das políticas de acesso e de segurança aplicáveis no Microsoft Entra.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mas como assim?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Por mais que esse não seja um recurso acessado diretamente em um fluxo de autenticação ou autorização, é um componente presente em todas as etapas desses processos. As políticas são criadas com o intuito de implementar diferentes controles de segurança, em diversos cenários e levando em consideração múltiplas informações diferentes fornecidas pelo próprio Entra ID.&lt;/p&gt;
&lt;p&gt;Resumindo: &lt;strong&gt;tudo (ou quase tudo) dentro do seu &lt;em&gt;tenant&lt;/em&gt;, passará por uma ou mais políticas de acesso condicional (depende de quantas estão definidas).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Neste primeiro momento a explicação pode ter ficado um pouco genérica, porém nessa próxima sessão vamos falar em detalhes sobre as capacidades desses recursos.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Para utilizarmos as políticas de acesso condicional, é necessário termos em nosso tenant licenças &lt;strong&gt;P1&lt;/strong&gt; ou &lt;strong&gt;P2&lt;/strong&gt; do &lt;strong&gt;Entra&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-podemos-fazer-com-elas&quot;&gt;O que podemos fazer com elas?&lt;/h1&gt;
&lt;p&gt;Após entendermos o que são essas políticas, chegou a hora de falarmos um pouco sobre alguns recursos importantes que podem ser usados para proteger o seu ambiente.&lt;/p&gt;
&lt;h2 id=&quot;controle-por-dispositivos&quot;&gt;Controle por dispositivos&lt;/h2&gt;
&lt;p&gt;Como é comum nas organizações termos dispositivos fornecidos aos funcionários e controlados pela própria empresa, podemos utilizar esse controle como vantagem para proteger o acesso às aplicações de maneira mais efetiva.&lt;/p&gt;
&lt;p&gt;Aplicando as políticas em dispositivos gerenciados (ou não, dependendo do caso), podemos exigir controles mais fortes para permitir o acesso ou regras mais “folgadas”, como por exemplo em requisições vindas de um dispositivo gerenciado pelo &lt;strong&gt;Microsoft Intune&lt;/strong&gt; à partir de uma rede confiável.&lt;/p&gt;
&lt;p&gt;Podemos também aplicar controles baseados na plataforma de acesso. É possível escolher dispositivos &lt;em&gt;windows&lt;/em&gt;, &lt;em&gt;ios&lt;/em&gt;, &lt;em&gt;android&lt;/em&gt;, &lt;em&gt;linux&lt;/em&gt; e &lt;em&gt;mac&lt;/em&gt;, como também acessos feitos à partir de &lt;em&gt;browser&lt;/em&gt; ou de um &lt;em&gt;client&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;aplicação&quot;&gt;Aplicação&lt;/h2&gt;
&lt;p&gt;Como no final das contas nós estaremos protegendo o acesso aos nosso recursos (aplicações), nada mais justo do que ter a habilidade de selecionar quais aplicações nós queremos que estejam incluídas nas políticas.&lt;/p&gt;
&lt;p&gt;Todas as aplicações integradas ao Entra ID, estarão disponíveis para terem os controles de acesso aplicados à elas.&lt;/p&gt;
&lt;p&gt;Essa granularidade nos permite testar o funcionamento das políticas em aplicações de diferentes tipos e também aplicar políticas diferentes de acordo com o público que estará acessando as aplicações. Isso é útil para cenários onde as aplicações não serão acessadas apenas pelo público interno, mas também por convidados/terceirizados, para isso devemos aplicar controles mais rígidos e diferentes dos determinados para os funcionários da organização.&lt;/p&gt;
&lt;h2 id=&quot;mfa&quot;&gt;MFA&lt;/h2&gt;
&lt;p&gt;Recurso essencial para todos os momentos, as políticas de acesso condicional são as responsáveis por garantir a aplicação do &lt;em&gt;multi-factor authentication&lt;/em&gt; em diversos momentos. Não temos apenas a possibilidade de solicitar um segundo fator de autenticação quando julgarmos necessário, mas também podemos escolher quais os fatores que podem ser utilizados naquele determinado momento.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Microsoft Entra&lt;/strong&gt; disponibiliza uma série de opções de fatores de autenticação que podem ser escolhidos e habilitados pelos times de segurança da sua organização. Também é possível organizar esses fatores de autenticação em “grupos” para que possam ser solicitados como opções diferentes para aquela situação.&lt;/p&gt;
&lt;h2 id=&quot;riscos&quot;&gt;Riscos&lt;/h2&gt;
&lt;p&gt;Esse recurso não faz parte diretamente das políticas de acesso condicional, porém podem ser utilizados na implementação das políticas.&lt;/p&gt;
&lt;p&gt;Com as capacidades de análise de risco do &lt;strong&gt;Microsoft Entra&lt;/strong&gt;, é possível aplicar os controles baseados no risco apresentado em determinada atividade. Isso quer dizer que de acordo com o risco avaliado (baixo, médio ou crítico), nós podemos aplicar determinados controles (como exigir um segundo fator de autenticação, solicitar a troca de senha ou até bloquear a conta de usuário até que a mesma seja desbloquada por alguém com os privilégios para executar tal ação).&lt;/p&gt;
&lt;p&gt;Isso nos permite não apenas aplicar controles específicos em alguns cenários determinados, mas também proteger de fato o nosso ambiente e as nossas aplicações de acessos &lt;strong&gt;perigosos&lt;/strong&gt;!&lt;/p&gt;
&lt;h2 id=&quot;token-protection&quot;&gt;Token protection&lt;/h2&gt;
&lt;p&gt;Um controle moderno e avançado que podemos implementar é o de &lt;em&gt;token protection&lt;/em&gt;, ou no Entra, “Continuous Access Evaluation”.&lt;/p&gt;
&lt;p&gt;Esse recurso permite a análise do contexto das requisições à cada chamada, não ficando preso apenas ao tempo de expiração do &lt;em&gt;token&lt;/em&gt; para revogação da sessão.&lt;/p&gt;
&lt;p&gt;Esse controle pode ser aplicado em políticas que levam em conta o risco do login ou da identidade do usuário, tornando assim uma funcionalidade valiosa para a mitigação de acessos “arriscados” ao seu ambiente.&lt;/p&gt;
&lt;h2 id=&quot;redes-confiáveis&quot;&gt;Redes confiáveis&lt;/h2&gt;
&lt;p&gt;É comum termos nas empresas uma série de redes (&lt;em&gt;IP ranges&lt;/em&gt;) configurados para serem tratados como confiáveis. Redes essas da nossa própria organização ou de empresas parceiras, com conexões do tipo VPN estabelecidas com o nosso ambiente.&lt;/p&gt;
&lt;p&gt;Utilizar essas redes confiáveis nos permitirá “fechar o cerco” para ataques de segurança, uma vez que configuraremos as aplicações para permitirem acesso apenas à partir dessas redes determinadas, mas também poderemos controlar de maneira assertiva os acessos vindo das empresas parceiras, uma vez que temos seus &lt;em&gt;ranges&lt;/em&gt; de IP configurados em nosso &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;boas-práticas&quot;&gt;Boas práticas&lt;/h1&gt;
&lt;p&gt;Todo &lt;em&gt;deploy&lt;/em&gt; relacionado à atividades de segurança, tem suas peculiaridades de acordo com o ambiente e a estratégia da sua empresa.&lt;/p&gt;
&lt;p&gt;As boas práticas podem ser interpretadas como recomendações de controles que devem ser aplicados, mas também podem ser tratadas como as estratégias de implementação e configuração desses controles.&lt;/p&gt;
&lt;p&gt;É importante que como toda implementação, a estratégia adotada seja estudada e planejada. Não podemos nos esquecer que no final da cadeia, temos os usuários que em grande parte do tempo, não tem a menor ideia do que está sendo feito pelos times de segurança. A única coisa desejada por eles é que a habilidade de executar as atividades triviais do seu trabalho não seja afetada.&lt;/p&gt;
&lt;p&gt;Sobre a criação das políticas, é interessante que sua empresa defina a própria estratégia, porém alguns pontos que podem ser compartilhados para auxiliar nessa tomada de decisão são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crie políticas básicas, que se apliquem à grande maioria dos seus usuários. Essas políticas podem ser para solicitar o segundo fator de autenticação independente de quem esteja acessando as aplicações, bloquear acessos com risco considerado crítico, entre outras opções;&lt;/li&gt;
&lt;li&gt;Implemente controles que o permita proteger seu ambiente, não apenas controlar o acesso. Políticas que levam em consideração os riscos de login e implementam os controles adequados, poderão poupar o seu time de segurança de muita dor de cabeça;&lt;/li&gt;
&lt;li&gt;É importante pensar também no longo prazo, em como o time responsável pelos acessos daqui alguns anos irá tomar conta do ambiente. Criar suas políticas com nomes claros e descritivos e construir documentações que contenham todo o histórico de criação delas, será essencial para manter a estabilidade no seu ambiente. Ter esses insumos, tornará o trabalho do novo time menos moroso e permitirá um melhor planejamento das mudanças que serão aplicadas;&lt;/li&gt;
&lt;li&gt;Agora possívelmente a boa prática mais importante. &lt;strong&gt;Não fique bloqueado para fora do seu tenant!!!&lt;/strong&gt; Aplicar as políticas de acesso condicional para TODOS os usuários é um perigo, pois existe a possibilidade (mesmo que improvável), de que todos os usuários fiquem sem acesso aos recursos. Para isso, é improtante termos algumas contas com MFA diferente dos utilizados pelos demais usuários e também é importante que essas contas sejam colocadas na sessão &lt;em&gt;exclude&lt;/em&gt; das políticas, para que esses controles “globais” não sejam aplicados à elas.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Por hoje é isso, espero que as informações passadas nesse texto tenham feito você sentir mais confiança no momento de criar suas políticas de acesso. É importante lembrarmos sempre de apoiar nossas decisões com dados e informações de fontes confiáveis, principalmente se tratando da segurança do nosso ambiente.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Configurando funções (roles) no Entra ID Privileged Identity Management</title><link>https://pedroignacio.dev/post/configurando-roles-no-pim/</link><guid isPermaLink="true">https://pedroignacio.dev/post/configurando-roles-no-pim/</guid><description>No último texto falamos sobre o Entra ID PIM. Explicamos os conceitos básicos que regem a proteção do acesso privilegiado e fizemos uma breve tour pela console do PIM no Portal do Azure. Hoje, faremos um hands-on, configurando duas funções diferentes...</description><pubDate>Mon, 14 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No &lt;a href=&quot;https://medium.com/@predoignacio/protegendo-acessos-privilegiados-com-o-entra-id-privileged-identity-management-f8736caaf24b&quot;&gt;último texto&lt;/a&gt; falamos sobre o Entra ID PIM. Explicamos os conceitos básicos que regem a proteção do acesso privilegiado e fizemos uma breve tour pela console do PIM no Portal do Azure. Hoje, faremos um hands-on, configurando duas funções diferentes com dois níveis de segurança diferentes.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-quefaremos&quot;&gt;O que faremos?&lt;/h1&gt;
&lt;h1 id=&quot;esse-tutorial-visa-te-ensinar-em-detalhes-como-realizar-as-configurações-das-funções-no-pim-nós-iremos&quot;&gt;Esse tutorial visa te ensinar em detalhes como realizar as configurações das funções no PIM. Nós iremos:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Criar um grupo no Entra ID e popular com 2 aprovadores;&lt;/li&gt;
&lt;li&gt;Configurar uma função para &lt;strong&gt;solicitar o uso do Azure MFA&lt;/strong&gt; na ação de aprovação;&lt;/li&gt;
&lt;li&gt;Configurar uma função que exige a &lt;strong&gt;aprovação&lt;/strong&gt; de um grupo antes de ter seu uso liberado para o usuário;&lt;/li&gt;
&lt;li&gt;Configurar o &lt;strong&gt;tempo de eligibilidade&lt;/strong&gt; das funções para os usuários.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Todas essas operações serão feitas utilizando o &lt;strong&gt;Portal do Azure&lt;/strong&gt; e o &lt;strong&gt;Cloud Shell&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;requisitos&quot;&gt;Requisitos&lt;/h2&gt;
&lt;p&gt;Para conseguir realizar esse tutorial, seu &lt;em&gt;tenant&lt;/em&gt; precisa ter no mínimo a licença P2 atribuída. Isso é necessário pois o PIM não é um recurso gratuito e disponível para todos os usuários. O Entra ID permite que você faça testes com as licenças, podendo ativar licenças P2 por 30 dias ou o pacote de licenças E5 por 90 dias (pacote que disponibiliza 250 licenças das mais variadas para você testar).&lt;/p&gt;
&lt;p&gt;É importante que você esteja utilizando um usuário com privilégios adequados. Se estiver realizando o tutorial em sua conta pessoal, você provavelmente estará utilizando sua conta com privilégios &lt;strong&gt;Global Admin&lt;/strong&gt;, que não é uma boa prática porém para o propósito do tutorial, não tem problema.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;iniciando&quot;&gt;Iniciando&lt;/h1&gt;
&lt;p&gt;O primeiro passo será criar o grupo de aprovadores e inserir alguns usuários nele. Os usuários podem ser existentes ou podem ser usuários criados por você na hora. Como o propósito do tutorial é a configuração das funções no PIM, vou deixar um &lt;em&gt;script&lt;/em&gt; para ser utilizado no Azure CLI para você criar um grupo, criar alguns usuários e inseri-los no grupo criado.&lt;/p&gt;
&lt;p&gt;Vamos aos preparativos.&lt;/p&gt;
&lt;h2 id=&quot;criando-os-usuários-egrupo&quot;&gt;Criando os usuários e grupo&lt;/h2&gt;
&lt;p&gt;Para execução dos comandos eu utilizei o &lt;strong&gt;Cloud Shell&lt;/strong&gt; como mencionado no começo do artigo, mas você também pode executar os comandos na sua máquina local através do &lt;strong&gt;CMD&lt;/strong&gt; ou do &lt;strong&gt;Powershell&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Para executar os comandos localmente, certifique-se de que está logado em sua conta executando o comando:az login&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;criação-do-grupo&quot;&gt;&lt;strong&gt;Criação do grupo&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;Como esse grupo será utilizado para aprovação dos pedidos, sugiro escolher um nome que remeta à função que o grupo executará (ex: Aprovadores).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az ad group create --display-name --mail-nickname&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;NOME-DISPLAY (obrigatório)— nome que será retornado quando o grupo for consultado, seja através da CLI, Azure Portal ou outros meios.&lt;/p&gt;
&lt;p&gt;NOME-EMAIL (obrigatório)— nome utilizado no endereço de e-mail do grupo.&lt;/p&gt;
&lt;h2 id=&quot;criação-dos-usuários&quot;&gt;&lt;strong&gt;Criação dos usuários&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;az ad user create --user-principal-name --display-name --password&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;EMAIL (obrigatório) — e-mail do usuário que será criado. O e-mail deve utilizar o domínio próprio do &lt;em&gt;tenant&lt;/em&gt; (se você não registrou um domínio próprio para ser utilizado em seu &lt;em&gt;tenant&lt;/em&gt;, seu domínio será &lt;strong&gt;.onmicrosoft.com&lt;/strong&gt;, busque essa informação na página principal do seu Entra ID Tenant).&lt;/p&gt;
&lt;p&gt;NOME (obrigatório) — nome que será retornado quando o usuário for consultado.&lt;/p&gt;
&lt;p&gt;SENHA (obrigatório) — senha inicial para o usuário. Quando ele realizar o primeiro login, será solicitado que altere a senha.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Após a criação de cada usuário, é importante que você anote o ID do usuário que é retornado. Esse ID será utilizado para realizarmos a atribuição do usuário no grupo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;atribuição-dos-usuários-no-grupo&quot;&gt;&lt;strong&gt;Atribuição dos usuários no grupo&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;az ad group member add --group --member-id &amp;#x3C;ID-USUÁRIO&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;NOME (obrigatório) — nome do grupo.&lt;/p&gt;
&lt;p&gt;ID-USUÁRIO (obrigatório) — &lt;em&gt;IDs&lt;/em&gt; dos usuários que foram anotados anteriormente.&lt;/p&gt;
&lt;p&gt;Agora que fizemos a atribuição dos usuários ao grupo, vamos passar para a próxima parte, onde vamos configurar as funções.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;navegando-no-portal-dopim&quot;&gt;Navegando no portal do PIM&lt;/h1&gt;
&lt;p&gt;Dentro do Portal do Azure podemos procurar na barra superior pelo PIM. Ao acessar o recurso você deve visualizar algo parecido com isso:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/465cb9f4-53d7-411b-96a3-55b4c882f3a4.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro da console do PIM na seção “Gerenciar”, vamos acessar a opção &lt;strong&gt;Funções do Azure AD&lt;/strong&gt;. Dentro do próximo painel, novamente abaixo de “Gerenciar” selecione a opção &lt;strong&gt;Funções&lt;/strong&gt;. Será aberta uma lista com todas as funções existentes no Azure AD e que podem ser configuradas no PIM. Você deve estar em uma página igual a essa:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/c0df5a62-1f0b-41a7-a58c-eddd3d8bda47.jpeg&quot; alt=&quot;Painel com as funções do Entra ID&quot;&gt;&lt;/p&gt;
&lt;p&gt;Para te explicar de maneira efetiva como esse recurso pode (e deve) ser utilizado, as funções que nós configuraremos serão:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Administrador da Assistência Técnica&lt;/strong&gt; (Helpdesk Administrator);&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leitor Global&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;por-quê-essasfunções&quot;&gt;Por quê essas funções?&lt;/h2&gt;
&lt;p&gt;No texto passado comentei sobre um possível problema que pode ser gerado quando estivermos configurando o PIM, que é do “engessamento” dos processos.&lt;/p&gt;
&lt;p&gt;Devemos ser cautelosos na configuração das funções para não tirar a autonomia dos times operacionais que precisam de seus acessos para realização das atividades. É importante que os controles sejam bem aplicados mas por outro lado, não podemos esquecer que alguns desses acessos são cruciais para a realização de atividades triviais no dia a dia das equipes.&lt;/p&gt;
&lt;p&gt;A função de &lt;strong&gt;Administrador da Assistência Técnica&lt;/strong&gt; permite que o usuário reinicie as senhas outros usuários, exceto Administradores da plataforma e de outros Administrador de Assistência Técnica. Em uma empresa que contenha um serviço de &lt;em&gt;helpdesk&lt;/em&gt; para seus funcionários, a atividade de reinicialização das senhas será recorrente, uma tarefa comum para esses funcionários. Não existe motivo para configurar essa função de modo que o usuário elegível para sua ativação precise aguardar a aprovação do acesso vindo de outro time. Isso impactará as tarefas do time aprovador, que receberá pedidos de aprovação constantes, do time de &lt;em&gt;helpdesk&lt;/em&gt;, que precisará aguardar a aprovação da solicitação e dos funcionários da empresa, que não conseguirão realizar seus acessos até que a solicitação seja aprovada e a senha restaurada. Por isso, configuraremos a função para solicitar o MFA do usuário toda vez que ela for ativada.&lt;/p&gt;
&lt;p&gt;Por outro lado, a função &lt;strong&gt;Leitor Global&lt;/strong&gt; permite ao usuário visualizar informações de todo o seu escopo de aplicação. Se a função for aplicada com escopo de uma &lt;em&gt;subscription&lt;/em&gt; ele conseguirá visualizar informações sobre todos os recursos contidos nela. Caso a função seja aplicada no escopo de um &lt;em&gt;management group&lt;/em&gt;, o usuário visualizará informações de todas as &lt;em&gt;subscriptions&lt;/em&gt; ali contidas. Essa função oferece um alto risco de vazamento de dados confidenciais para a organização, então devido ao seu nível de acesso aos recursos e escopo de aplicação, essa função vale a necessidade da aprovação de um time em específico (no contexto da sua empresa, essa equipe pode ter diversas responsabilidades).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;configurando-a-primeirafunção&quot;&gt;Configurando a primeira função&lt;/h2&gt;
&lt;p&gt;Ainda na página que nos fornece uma visão de todas as funções do Azure AD, procure pela função &lt;strong&gt;Administrador da Assistência Técnica&lt;/strong&gt; e a selecione. Uma página parecida com essa deve se abrir:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/c5d587bf-a2e7-411b-b643-b08e15d37896.jpeg&quot; alt=&quot;Painel da função: Administrador da Assitência Técnica&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nas opções horizontais, 2 nos importam:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Adicionar atribuições”: opção que nos permite atribuir essa função à certos usuários e grupos. A utilizaremos após configurarmos as propriedades da função;&lt;/li&gt;
&lt;li&gt;“Configurações”: onde realizaremos nossos primeiros passos, configurando as opções da função.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clicando em “configurações” e logo em seguida em “editar”, seremos levados à seguinte página:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/5835d34c-28d6-41e9-9022-ca1885899f2e.png&quot; alt=&quot;Painel de configuração de ativação da função&quot;&gt;&lt;/p&gt;
&lt;p&gt;Iremos habilitar as configurações em 3 etapas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ativação: diz respeito às ações que serão tomadas pelo usuário no momento da ativação da função;&lt;/li&gt;
&lt;li&gt;Atribuição: onde podemos realizar alterações sobre as propriedades de atribuição da função;&lt;/li&gt;
&lt;li&gt;Notificação: definição das partes que poderão ser notificadas quando algum tipo de modificação ou atribuição for feita na função.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ativação&quot;&gt;Ativação&lt;/h2&gt;
&lt;p&gt;Como primeiros passos, vamos configurar para que o usuário utilize o Azure MFA para a ativação e vamos diminuir o tempo de duração para 4 horas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Para esse cenário em específico, as empresas habilitariam a opção “Exigir informações de tíquete na ativação”, visto que muitas delas utilizam softwares que auxiliam na gestão da solicitação de serviços. Para manter nosso exemplo mais simples e conciso vamos deixar essa opção desmarcada.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No final dessas configurações, você presenciará o seguinte cenário:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/3a03370a-ace2-4425-b416-e9b91b038cb9.png&quot; alt=&quot;Painel de configuração da ativação da função&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Para fins de curiosidade, caso o usuário não tenha o Azure MFA conectado com sua conta, no momento de ativação ele será levado para uma jornada que o permitirá instalar o aplicativo &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; e registrar seu token .&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;atribuição&quot;&gt;Atribuição&lt;/h2&gt;
&lt;p&gt;Passando para a tela de atribuição, deixaremos as configurações da seguinte forma:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/cc49e6b6-9640-43c9-984c-249db5f8ba59.png&quot; alt=&quot;Painel de configuração da atribuição&quot;&gt;&lt;/p&gt;
&lt;p&gt;A primeira opção marcada (“Permitir atribuição qualificada permanente”) permite que a função atribuída ao usuário não expire com o tempo. Ela estará disponível para ser ativada até que seja removida de forma explícita. Caso essa caixa não esteja marcada, poderemos definir um tempo máximo de duração da atribuição. Para nosso exemplo, não configuraremos a expiração visto que os usuários que terão essa função atribuída farão uso dela diariamente.&lt;/p&gt;
&lt;p&gt;A segunda caixa funciona de maneira parecida em relação à primeira, se diferenciando no ponto em que neste caso a função pode ser atribuída como &lt;strong&gt;ativa&lt;/strong&gt; para o usuário, não exigindo que ele faça uso do Azure MFA. Também a manteremos habilitada.&lt;/p&gt;
&lt;p&gt;Por fim as duas últimas opções. Caso desejássemos solicitar o MFA para atribuições ativas, poderíamos marcar a penúltima caixa mas visto que esse tipo de atribuição será pouco utilizado, vamos deixá-la desabilitada e marcaremos a última opção, que exige uma justificativa para atribuir a função de maneira ativa.&lt;/p&gt;
&lt;h2 id=&quot;notificação&quot;&gt;Notificação&lt;/h2&gt;
&lt;p&gt;O último passo agora é definirmos os usuários que serão notificados quando houver algum tipo de mudança nas configurações e atribuições da função.&lt;/p&gt;
&lt;p&gt;Para fins de simplicidade, vamos manter essas configurações da maneira padrão:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/c6ff1d30-f9fc-47bf-b589-71d2bab92b19.png&quot; alt=&quot;Painel de configuração das notificações da função&quot;&gt;&lt;/p&gt;
&lt;p&gt;Clique em “Atualizar” e pronto! Temos nossa primeira função configurada. Para a próxima, vamos passar pelos passos de maneira mais rápida, visto que grande parte das etapas de configuração é igual ao que acabamos de fazer.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;configurando-a-segundafunção&quot;&gt;Configurando a segunda função&lt;/h1&gt;
&lt;p&gt;Voltando à tela que contém a lista das funções, vamos pesquisar pela função &lt;strong&gt;Leitor Global&lt;/strong&gt;. A selecione e acesse a opção “Configurações”.&lt;/p&gt;
&lt;h2 id=&quot;ativação-1&quot;&gt;Ativação&lt;/h2&gt;
&lt;p&gt;A segunda função não exigirá o uso de MFA pois terá um grupo de aprovadores que receberão as solicitações dos usuários. Também reduziremos o tempo de duração da ativação para 4 horas.&lt;/p&gt;
&lt;p&gt;Para cadastrar um grupo de aprovadores, selecione a caixa que diz “Requer aprovação para ativar”. Após selecioná-la a opção para selecionar os aprovadores se tornará disponível. Selecionaremos o grupo “Aprovadores” que criamos no início do tutorial através do Azure Cloud Shell.&lt;/p&gt;
&lt;p&gt;Sua página deve ficar parecida com essa:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/5eaf32c2-7cdb-45de-bfdb-049cf66fb800.jpeg&quot; alt=&quot;Painel de configuração da ativação da função com atribuição de aprovadores&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;atribuição-1&quot;&gt;Atribuição&lt;/h2&gt;
&lt;p&gt;Diferente da primeira função, essa apresenta um risco muito maior à segurança da informação da empresa, visto que o usuário que contém esse privilégio terá acesso à informações sensíveis dos ambientes.&lt;/p&gt;
&lt;p&gt;Para essa função vamos desabilitar a atribuição permanente tanto para as atribuições qualificadas quanto para as ativas. O tempo de expiração das funções também será alterado. As atribuições qualificadas terão duração máxima de 6 meses e as ativas duração máxima de 1 mês.&lt;/p&gt;
&lt;p&gt;Manteremos a necessidade de uma justificativa para atribuições ativas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/c95f4340-a464-4ec3-897f-6c555fd750c7.png&quot; alt=&quot;Painel de configuração da atribuição de uma função&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;notificação-1&quot;&gt;Notificação&lt;/h2&gt;
&lt;p&gt;Não faremos nenhuma modificação nesta aba, manteremos as configurações padrão, que são as mesmas da função anterior.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;atribuindo-usuários&quot;&gt;Atribuindo usuários&lt;/h1&gt;
&lt;p&gt;Após realizarmos as configurações das funções chegou a hora de atribuí-las à alguns usuários.&lt;/p&gt;
&lt;p&gt;No painel da função que iremos atribuir vamos selecionar a opção “Adicionar atribuições”.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/00685de6-b79a-4db1-ba60-c0610f4e78cb.jpeg&quot; alt=&quot;Formulário de atribuição da função&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dependendo da função que está sendo atribuída você pode ter a opção “Tipo de escopo” habilitada para personalização. O &lt;strong&gt;escopo&lt;/strong&gt; determina sob qual nível a função será aplicada. Quando estamos tratando de funções do Azure AD os escopos existentes são: Diretório e Unidade Administrativa. Para funções do Azure temos uma granularidade maior de escopos que podemos utilizar.&lt;/p&gt;
&lt;p&gt;Cabe a você selecionar os membros que terão acesso a essa função. Você poderá escolher usuários ou grupos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Obs: para que os grupos possam ter funções atribuídas é necessário que no momento de criação ele tenha sido explicitamente configurado para isso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Após selecionar os usuários para atribuição, você irá configurar o estado da atribuição e o tempo de duração. O estado pode ser &lt;strong&gt;Qualificado&lt;/strong&gt; ou &lt;strong&gt;Ativo&lt;/strong&gt;. O tempo de atribuição deverá respeitar o que foi configurado previamente na função.&lt;/p&gt;
&lt;p&gt;Após finalizar essas seleções, a atribuição estará feita!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;conclusão&quot;&gt;Conclusão&lt;/h1&gt;
&lt;p&gt;Após realizar as atribuições dos usuários, o que resta é testar.&lt;/p&gt;
&lt;p&gt;Faça login nas contas dos usuários que tiveram funções atribuídas e realize a ativação delas.&lt;/p&gt;
&lt;p&gt;Para a função &lt;strong&gt;Administrador da Assistência Técnica&lt;/strong&gt; será necessário apenas a utilização do Azure MFA, então ao realizar a ativação será solicitado que você complete a operação no aplicativo.&lt;/p&gt;
&lt;p&gt;No caso da função &lt;strong&gt;Leitor Global&lt;/strong&gt; você precisará realizar login com qualquer uma das contas dos usuários presentes no grupo “Aprovadores”, navegar até o painel do PIM, selecionar “Funções do Azure AD” no painel à esquerda e escolher a seguinte opção:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/configurando-roles-no-pim/4cec2f9d-7fa1-4c00-830c-442cd6a9d3c2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro desse painel você poderá visualizar as aprovações que estão pendentes e também as renovações de atribuições.&lt;/p&gt;
&lt;p&gt;Quando uma solicitação for feita, todos os aprovadores daquela função receberão um e-mail informando da pendência. A aprovação pode ser feita diretamente pelo e-mail recebido, que contém links que fornecem essa facilidade.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Com esse tutorial conseguimos visualizar e entender a importância de se proteger o acesso privilegiado aos recursos e como isso pode ser facilmente implementado com a ferramenta correta.&lt;/p&gt;
&lt;p&gt;O Entra ID PIM é extremamente poderoso e contribuirá muito para a estratégia de segurança e &lt;em&gt;zero trust&lt;/em&gt; da sua empresa.&lt;/p&gt;
&lt;p&gt;Obrigado por acompanhar até aqui e até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Azure Kubernetes Service + Cilium</title><link>https://pedroignacio.dev/post/aks-cilium/</link><guid isPermaLink="true">https://pedroignacio.dev/post/aks-cilium/</guid><description>O advento das arquiteturas Cloud Native gerou grande complexidade quando pensamos na sustentação do nosso ambiente. Estamos falando de arquiteturas distribuídas, microsserviços, alta disponibilidade, APIs, entre outros tópicos. Garantir a segurança n...</description><pubDate>Tue, 15 Oct 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;O advento das arquiteturas &lt;em&gt;Cloud Native&lt;/em&gt; gerou grande complexidade quando pensamos na sustentação do nosso ambiente. Estamos falando de arquiteturas distribuídas, microsserviços, alta disponibilidade, APIs, entre outros tópicos. Garantir a segurança nos ambientes e a capacidade de compreender problemas e fornecer soluções de maneira ágil tornou-se um desafio ainda maior ao nos depararmos com um ambiente distribuído e em nuvem. Tendo ciência desse problema, falaremos hoje sobre o &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt;, uma solução &lt;em&gt;open source&lt;/em&gt; que surgiu para remodelar a forma como pensamos na &lt;strong&gt;observabilidade&lt;/strong&gt; e &lt;strong&gt;segurança&lt;/strong&gt; dos nossos ambientes.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-cilium&quot;&gt;O que é Cilium?&lt;/h1&gt;
&lt;p&gt;Falamos brevemente na introdução do artigo sobre o que de fato podemos esperar do &lt;strong&gt;Cilium&lt;/strong&gt;, porém antes de nos aprofundarmos na solução, é importante comentar sobre a tecnologia que habilitou sua construção e que vem revolucionando como nós estruturamos soluções de observabilidade e segurança, o &lt;strong&gt;eBPF&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;eBPF (&lt;em&gt;extended Berkeley Packet Filter&lt;/em&gt;) - foi lançado em 2014 como uma atualização do &lt;em&gt;BPF&lt;/em&gt;, utilizado em &lt;em&gt;hosts Linux&lt;/em&gt;. O eBPF foi criado com o intuito de fornecer uma maneira de ampliarmos as capacidades do &lt;em&gt;kernel Linux&lt;/em&gt; sem a necessidade de recompilarmos todo o sistema. Com programas eBPF podemos interceptar e visualizar chamadas ao nível do &lt;em&gt;kernel&lt;/em&gt;, possibilitando a utilização dessas informações capturadas para construirmos aplicações que levam em consideração o mais baixo nível de funcionamento do sistema.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;em&gt;eBPF é um tema complexo e que merece uma série de artigos própria. Caso tenha curiosidade, recomendo o seguinte link para iniciar seus estudos na tecnologia: &lt;/em&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://ebpf.io/what-is-ebpf/&quot; style=&quot;pointer-events: none&quot;&gt;What is eBPF? An Introduction and Deep Dive into the eBPF Technology&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Utilizando as capacidades fornecidas pelo eBPF, a &lt;a href=&quot;https://isovalent.com/&quot;&gt;Isovalent&lt;/a&gt; construiu uma solução que revolucionou a forma como enxergamos e protegemos nossos &lt;em&gt;clusters&lt;/em&gt; e a maneira como desenvolvemos capacidades adicionais para os ambientes.&lt;/p&gt;
&lt;p&gt;Para começarmos a falar sobre o &lt;strong&gt;Cilium&lt;/strong&gt;, vamos iniciar com um desenho que mostra em alto nível as capacidades funcionais da solução e seus componentes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/cilium&quot;&gt;![Cilium overview diagram](https://github.com/cilium/cilium/raw/main/Documentation/images/cilium-overview.png align=“left”)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Como podemos visualizar no diagrama, temos 3 pilares sobre os quais o &lt;strong&gt;Cilium&lt;/strong&gt; atua:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Service Mesh&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;As capacidades de segurança são fornecidas em parte pelo &lt;strong&gt;Tetragon&lt;/strong&gt;, que falaremos em outro artigo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Começando pela &lt;em&gt;feature&lt;/em&gt; mais popular, o &lt;strong&gt;Cilium CNI&lt;/strong&gt; é instalado nos &lt;em&gt;clusters Kubernetes&lt;/em&gt; e serve como uma substituição (ou complemento) das interface de redes dos contêineres. Com o &lt;strong&gt;Cilium CNI&lt;/strong&gt; controlando a camada de rede do ambiente, nós passamos a ter completa visibilidade (+ &lt;strong&gt;Hubble&lt;/strong&gt;) das chamadas e dos processos que ali estão ocorrendo. Além das capacidades de visualização de tráfego, também temos recursos que habilitam a comunicação &lt;em&gt;multi-tenant&lt;/em&gt; e a criptografia do tráfego das chamadas.&lt;/p&gt;
&lt;p&gt;Indo para o segundo pilar, temos o &lt;strong&gt;Hubble&lt;/strong&gt;, responsável por grande parte das capacidades de observabilidade do ecossistema do &lt;strong&gt;Cilium&lt;/strong&gt;. Podendo se conectar com soluções que compõem o ecossistema de monitoramento das empresas como &lt;em&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;OpenTelemetry&lt;/strong&gt;&lt;/em&gt;, o &lt;strong&gt;Hubble&lt;/strong&gt; oferece as capacidades de compreensão de problemas para os times, fornecendo informações detalhadas do ambiente, possibilitando um &lt;em&gt;troubleshooting&lt;/em&gt; mais efetivo.&lt;/p&gt;
&lt;p&gt;Por último temos o &lt;strong&gt;Cilium Service Mesh&lt;/strong&gt;, que vai na contramão de outras soluções de mercado, oferecendo visibilidade da &lt;em&gt;mesh&lt;/em&gt; de maneira &lt;em&gt;&lt;strong&gt;sidecar-less&lt;/strong&gt;&lt;/em&gt;. Essa é uma das proezas do &lt;strong&gt;Cilium Service Mesh&lt;/strong&gt;, falaremos mais sobre ele as próximas seções.&lt;/p&gt;
&lt;p&gt;Para entender melhor as capacidades da solução, vamos entrar em maiores detalhes sobre cada uma das funcionalidades presentes no ecossistema!&lt;/p&gt;
&lt;h2 id=&quot;networking&quot;&gt;Networking&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aks-cilium/a0ff759f-f20a-42f3-93b3-402b66ddbc1c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As capacidades de &lt;em&gt;networking&lt;/em&gt; do &lt;strong&gt;Cilium&lt;/strong&gt; são expostas pelo &lt;strong&gt;Cilium CNI&lt;/strong&gt;, que é o primeiro componente a ser instalado no &lt;em&gt;cluster&lt;/em&gt;. Uma vez instalado, você terá de forma nativa uma série de funcionalidades já disponíveis para uso.&lt;/p&gt;
&lt;p&gt;Nas capacidades de &lt;em&gt;networking&lt;/em&gt;, o &lt;strong&gt;Cilium&lt;/strong&gt; se diferencia por fornecer de maneira nativa recursos que precisariam ser implementados utilizando &lt;em&gt;add-ons&lt;/em&gt; de outras soluções. Por termos controle de camadas mais profundas dentro do &lt;em&gt;cluster&lt;/em&gt;, podemos executar operações em cima de protocolos como &lt;em&gt;IPv4&lt;/em&gt;, &lt;em&gt;IPv6&lt;/em&gt; e &lt;em&gt;BGP&lt;/em&gt;, suportados de forma nativa pela solução.&lt;/p&gt;
&lt;p&gt;Além disso, visto que a responsabilidade de gerenciar a rede dos &lt;em&gt;clusters&lt;/em&gt; é do &lt;strong&gt;Cilium CNI&lt;/strong&gt;, conseguimos aplicar regras de rede nas camadas 3, 4 e 7 (com suporte à políticas de roteamento personalizadas).&lt;/p&gt;
&lt;p&gt;Hoje em dia é difícil encontrarmos empresas que tenham só um &lt;em&gt;cluster&lt;/em&gt;. Gerenciar um ambiente já é uma tarefa complexa, se pensarmos que cada vez mais as equipes terão autonomia de gerenciar seus próprios &lt;em&gt;clusters&lt;/em&gt;, a nossa &lt;em&gt;cluster mesh&lt;/em&gt; se tornará “inadministrável”. Com &lt;strong&gt;Cilium&lt;/strong&gt; temos a possibilidade de gerenciar as camadas de rede dos nossos &lt;em&gt;clusters&lt;/em&gt; de maneira centralizada, implementando políticas de acesso entre eles e controlando diversos aspectos das interfaces de rede de cada um dos ambientes.&lt;/p&gt;
&lt;p&gt;Performance e segurança são pilares prioritários no &lt;strong&gt;Cilium&lt;/strong&gt; e ao notarmos as capacidades de criptografia e balanceamento de carga isso fica ainda mais evidente. Com o &lt;em&gt;wireguard&lt;/em&gt; e &lt;em&gt;IPsec&lt;/em&gt; podemos configurar criptografia para a rede interna do cluster e para as comunicações na camada de rede (L3/L4).&lt;/p&gt;
&lt;p&gt;Com as capacidades de &lt;em&gt;DSR&lt;/em&gt; (&lt;em&gt;Direct Server Return&lt;/em&gt;) podemos implementar uma arquitetura performática, que garantirá a resolução das chamadas e as respostas aos &lt;em&gt;clients&lt;/em&gt; de maneira mais veloz e precisa.&lt;/p&gt;
&lt;h2 id=&quot;observabilidade&quot;&gt;Observabilidade&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aks-cilium/2858cf8c-731b-4933-b455-9e631ac3f6d2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com o objetivo de estender as funcionalidades de rede e fornecer visibilidade de uma série de coisas que ocorrem dentro do &lt;em&gt;cluster&lt;/em&gt;, podemos realizar o &lt;em&gt;deployment&lt;/em&gt; do &lt;strong&gt;Hubble&lt;/strong&gt;, solução complementar ao &lt;strong&gt;Cilium CNI&lt;/strong&gt; e &lt;strong&gt;Service Mesh&lt;/strong&gt; que nos permite visualizar os &lt;em&gt;flows&lt;/em&gt; existentes dentro do nosso &lt;em&gt;cluster&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Para fornecer as capacidades que temos hoje, o &lt;strong&gt;Hubble&lt;/strong&gt; foi separado em alguns componentes, segregando assim as responsabilidades de cada um.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aks-cilium/f76a2817-896c-4496-898b-b9317029c05e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Server&lt;/strong&gt; - responsável por fazer a interface com o &lt;strong&gt;Cilium&lt;/strong&gt; para coleta dos eventos de rede, é executado dentro do &lt;em&gt;container&lt;/em&gt; do &lt;strong&gt;Cilium Agent&lt;/strong&gt;, que por sua vez é criado à partir de um &lt;em&gt;DaemonSet&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relay&lt;/strong&gt; - aplicação única que centraliza os &lt;em&gt;endpoints&lt;/em&gt; dos &lt;em&gt;servers&lt;/em&gt; que estão sendo executados no &lt;em&gt;cluster&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hubble CLI&lt;/strong&gt; - componente que pode ser instalado no &lt;em&gt;client&lt;/em&gt; para recuperar informações do ambiente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hubble UI&lt;/strong&gt; - interface gráfica que interage com o &lt;em&gt;relay&lt;/em&gt; para disponibilizar as informações coletadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O desenho não mostra o &lt;strong&gt;Hubble CLI&lt;/strong&gt;, que é um componente que pode ser instalado no &lt;em&gt;client&lt;/em&gt; para que possamos interagir diretamente com o &lt;strong&gt;Hubble Server&lt;/strong&gt;, pois não se faz obrigatório na instalação da solução no seu &lt;em&gt;cluster&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Outra capacidade importante do &lt;strong&gt;Hubble&lt;/strong&gt; é a visualização de métricas capturadas por coletores como o &lt;em&gt;prometheus&lt;/em&gt;. Com o &lt;strong&gt;Hubble UI&lt;/strong&gt; nós podemos visualizar essas métricas em formato de gráficos, tornando a identificação de problemas mais simples.&lt;/p&gt;
&lt;h2 id=&quot;service-mesh&quot;&gt;Service Mesh&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aks-cilium/92413ff8-bbfb-49c0-a37b-abc75acbc505.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;sidecar-less mesh&lt;/em&gt; apresentada pelo &lt;strong&gt;Cilium&lt;/strong&gt; é construída por uma junção dos componentes de &lt;em&gt;networking&lt;/em&gt;, &lt;em&gt;observability&lt;/em&gt; e por componentes padrão do &lt;em&gt;Kubernetes&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Com o uso de componentes como o &lt;strong&gt;Kubernetes Ingress&lt;/strong&gt; e a &lt;strong&gt;Kubernetes Gateway API&lt;/strong&gt; podemos implementar diversas capacidades que antes eram atingidas apenas com a utilização de uma tecnolgia adicional no modelo &lt;em&gt;sidecar&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Com o &lt;strong&gt;Cilium Service Mesh&lt;/strong&gt; podemos implementar roteamento baseado em &lt;em&gt;headers&lt;/em&gt;, &lt;em&gt;teste A/B&lt;/em&gt;, &lt;em&gt;deployment multi-version&lt;/em&gt;, exposição de APIs com &lt;em&gt;TLS&lt;/em&gt; e &lt;em&gt;mTLS&lt;/em&gt; configurados e diversas outras funcionalidades, tudo isso sem que precisemos nos preocupar com o &lt;em&gt;deployment&lt;/em&gt; de &lt;em&gt;containers&lt;/em&gt; distribuídos pelos nossos &lt;em&gt;clusters&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;por-quê-utilizar&quot;&gt;Por quê utilizar?&lt;/h1&gt;
&lt;p&gt;Se você é um &lt;em&gt;SRE&lt;/em&gt;, &lt;em&gt;DevOps Engineer&lt;/em&gt;, &lt;em&gt;SysAdmin&lt;/em&gt; ou se apenas gosta de tecnologia, já pode ter percebido que gerenciar um &lt;em&gt;cluster&lt;/em&gt; não é apenas garantir que ele esteja performando conforme o esperado. Além do “básico”, nós precisamos nos preocupar com &lt;em&gt;FinOps&lt;/em&gt;, com as aplicações que estão sendo executadas ali “dentro”, com os &lt;em&gt;add-ons&lt;/em&gt; do &lt;em&gt;cluster&lt;/em&gt; (que normalmente consomem muuuuuuuitos recursos de infraestrutura, consequentemente aumentando os custos), com a segurança, controle de acesso e muitos outros pontos.&lt;/p&gt;
&lt;p&gt;Até por “limitação” do &lt;em&gt;Kubernetes&lt;/em&gt; muitas dessas coisas precisam de recursos adicionais para serem feitas, o que em si não é um problema, porém em determinado momento você perceberá que tem em seu ambiente recursos em execução que nem sabemos para que serve.&lt;/p&gt;
&lt;p&gt;Pela forma em que foi arquitetado, o &lt;strong&gt;Cilium&lt;/strong&gt; fornece diversas capacidades (das quais comentamos na seção anterior) de forma “nativa”, não havendo a necessidade de instalarmos soluções diferentes.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;É importante deixar claro que utilizar o &lt;strong&gt;Cilium&lt;/strong&gt; em seus &lt;em&gt;clusters&lt;/em&gt; não o proíbe de utilizar outras ferramentas, visto que elas podem se complementar. A vantagem é que algumas capacidades (como por exemplo &lt;em&gt;service mesh&lt;/em&gt;) podem ser cumpridas sem a instalação de uma solução adicional.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ter essas soluções de forma nativa tornará o trabalho dos times de tecnologia muito mais simples, visto que o monitoramento do ambiente e a atualização das novas versões poderá ser implementada de maneira mais rápida.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;arquitetura&quot;&gt;Arquitetura&lt;/h1&gt;
&lt;p&gt;De maneira bem simplificada, o &lt;em&gt;deployment&lt;/em&gt; do &lt;strong&gt;Cilium&lt;/strong&gt; se parece com o seguinte:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/aks-cilium/f6446fbc-7bda-4855-8fe8-aa7cb9fdb1f3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Possibilitando a interação com o &lt;em&gt;cluster&lt;/em&gt; e com seus componentes, temos do lado do &lt;em&gt;client&lt;/em&gt; o &lt;strong&gt;Cilium CLI&lt;/strong&gt; instalado no &lt;em&gt;laptop&lt;/em&gt; do usuário. O &lt;em&gt;CLI&lt;/em&gt; é um simples executável que facilita a instalação do &lt;strong&gt;Cilium&lt;/strong&gt; e seus componentes adicionais em qualquer um que seja seu &lt;em&gt;cluster&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Para ambientes de teste, o &lt;em&gt;CLI&lt;/em&gt; se apresenta como uma excelente alternativa para realizarmos o &lt;em&gt;deployment&lt;/em&gt; dos componentes. Em ambientes produtivos, que consequentemente são mais controlados, não devemos ter acesso à nenhum tipo de &lt;em&gt;CLI&lt;/em&gt;, portanto a melhor forma de se realizar a instalação da solução é através de ferramentas de &lt;em&gt;Infrastructure as Code &lt;/em&gt;(&lt;em&gt;IaC&lt;/em&gt;) e de &lt;strong&gt;&lt;em&gt;Helm Charts&lt;/em&gt;&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Após instalado o &lt;strong&gt;Cilium CNI&lt;/strong&gt;, você poderá habilitar outros &lt;em&gt;add-ons&lt;/em&gt; como &lt;em&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/em&gt; e o &lt;em&gt;&lt;strong&gt;Hubble&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Aproveitando que já falamos do &lt;em&gt;&lt;strong&gt;Hubble&lt;/strong&gt;&lt;/em&gt;, na arquitetura acima temos uma referência a um “&lt;em&gt;port-forwarding&lt;/em&gt;“ que é configurado. O intuito deste recurso é possibilitar o acesso local do &lt;em&gt;laptop&lt;/em&gt; ao &lt;em&gt;&lt;strong&gt;Hubble UI&lt;/strong&gt;&lt;/em&gt;, que está sendo executado dentro do &lt;em&gt;cluster&lt;/em&gt;. Quando configurado, o usuário poderá utilizar a &lt;em&gt;UI&lt;/em&gt; com um acesso local (por padrão, o endereço é &lt;em&gt;&lt;a href=&quot;http://localhost:12000&quot;&gt;http://localhost:12000&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;É importante destacar que todos os componentes do &lt;strong&gt;Cilium&lt;/strong&gt; são criados de maneira a serem altamente disponíveis, garantindo que mesmo mediante a falhas nos recursos de infraestrutura que sustentam o &lt;em&gt;cluster&lt;/em&gt;, nossa visibilidade dos recursos e proteção da plataforma seguirão intactos!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;implementando-cilium-no-azure-kubernetes-service&quot;&gt;Implementando &lt;em&gt;Cilium&lt;/em&gt; no &lt;em&gt;Azure Kubernetes Service&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Para “prepararmos o terreno” para os próximos artigos, vamos realizar a criação de um &lt;em&gt;cluster&lt;/em&gt; &lt;em&gt;&lt;strong&gt;Azure Kubernetes Service&lt;/strong&gt;&lt;/em&gt; com apenas 2 &lt;em&gt;nodes&lt;/em&gt; para iniciarmos nossos testes e não sermos surpreendidos com uma conta gigantesca no final do mês. Os 2 &lt;em&gt;nodes&lt;/em&gt; terão baixa capacidade computacional, porém servirão perfeitamente para o propósito que desejamos cumprir.&lt;/p&gt;
&lt;p&gt;Para conseguirmos criar o &lt;em&gt;cluster&lt;/em&gt; de maneira simples, execute o seguinte comando em seu terminal:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;az&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; aks&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; create&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --resource-group&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;resource-grou&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;aks-cluster-nam&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --node-count&lt;/span&gt;&lt;span style=&quot;color:#F78C6C&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --node-vm-size&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; Standard_D2plds_v5&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --network-plugin&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; none&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --enable-managed-identity&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;  --generate-ssh-keys&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aguarda a criação do seu &lt;em&gt;cluster&lt;/em&gt; e recupere suas credenciais utilizando o comando:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;az&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; aks&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; get-credentials&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --resource-group&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;resource-grou&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;aks-cluster-nam&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Com o &lt;em&gt;cluster&lt;/em&gt; no ar e o &lt;em&gt;&lt;strong&gt;Cilium CLI&lt;/strong&gt;&lt;/em&gt; instalado na sua máquina, vamos executar o seguinte comando para instalar o &lt;strong&gt;Cilium CNI&lt;/strong&gt; e deixar nosso ambiente pronto para as próximas etapas:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;cilium&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --version&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;cilium-versio&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --set&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; azure.resourceGroup=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;&amp;#x3C;resource-group&gt;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Para garantir que tudo foi instalado corretamente, podemos abrir uma nova instância do terminal e executar o seguinte comando, que acompanhará a instalação fornecendo detalhes visuais do &lt;em&gt;status&lt;/em&gt; dos componentes criados:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;cilium&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; status&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --wait&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Na primeira instalação, apenas o &lt;strong&gt;Cilium&lt;/strong&gt; e o &lt;strong&gt;Operator&lt;/strong&gt; serão criados, portanto não se assuste caso veja os outros componentes marcados com “&lt;strong&gt;disabled&lt;/strong&gt;“.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;O &lt;strong&gt;Cilium Operator&lt;/strong&gt; é o componente responsável por suportar algumas camadas do ciclo de vida da solução dentro do seu &lt;em&gt;cluster&lt;/em&gt;. Dentre suas responsabilidades, estão: &lt;em&gt;cluster mesh management&lt;/em&gt;, &lt;em&gt;node sync&lt;/em&gt; e &lt;em&gt;IPAM&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;Por hoje é só. Espero que tenha gostado do texto e te aguardo para falarmos mais sobre essa solução nas próximas semanas.&lt;/p&gt;
&lt;p&gt;Caso tenha alguma dúvida, não deixe de me contatar no Linkedin.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Criando grupos dinâmicos no Entra ID</title><link>https://pedroignacio.dev/post/criando-grupos-dinamos-no-entraid/</link><guid isPermaLink="true">https://pedroignacio.dev/post/criando-grupos-dinamos-no-entraid/</guid><description>Procurando facilitar a inclusão de usuários e dispositivos em grupos, o Entra ID disponibiliza os grupos dinâmicos, que nos permitem utilizar atributos para decidir em qual grupo o objeto deve ser colocado.

O recurso
Quando um grupo é criado no Entr...</description><pubDate>Tue, 03 Oct 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Procurando facilitar a inclusão de usuários e dispositivos em grupos, o Entra ID disponibiliza os grupos dinâmicos, que nos permitem utilizar atributos para decidir em qual grupo o objeto deve ser colocado.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-recurso&quot;&gt;O recurso&lt;/h1&gt;
&lt;p&gt;Quando um grupo é criado no Entra ID ele pode ser de 2 tipos: &lt;strong&gt;segurança&lt;/strong&gt; e &lt;strong&gt;Microsoft 365&lt;/strong&gt;. Os dois tipos tem suas diferenças, que não fazem parte do objetivo deste artigo, porém ambos nos permitem usufruir das atribuições dinâmicas.&lt;/p&gt;
&lt;p&gt;Como foi explicado brevemente, as atribuições dinâmicas nos permitem criar regras (ou &lt;em&gt;queries&lt;/em&gt;) que serão executadas sobre usuários e dispositivos existentes no &lt;em&gt;tenant&lt;/em&gt;. Essas regras irão analisar certas informações que são contidas no objeto e o tornarão um membro do grupo.&lt;/p&gt;
&lt;p&gt;Essas regras são criadas através do Portal do Entra ou através do Portal do Azure, acessando o &lt;em&gt;Azure Active Directory&lt;/em&gt;. É disponibilizado um construtor para definir a regra, permitindo que você crie regras complexas e interligadas e não exigindo que você tenha conhecimento da sintaxe utilizada.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante frisar que a opção de &lt;strong&gt;Dispositivos Dinâmicos&lt;/strong&gt; está disponível apenas para grupos de segurança e não para grupos do tipo Microsoft 365.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;aplicação&quot;&gt;Aplicação&lt;/h1&gt;
&lt;p&gt;Esse recurso traz benefícios para as empresas dos mais diversos tamanhos.&lt;/p&gt;
&lt;p&gt;A construção de boas regras de atribuição pode tranquilizar os times de segurança e gestão de acesso, permitindo que os mesmos foquem em outras atividades que agreguem mais valor para a empresa e não em atividades repetitivas e que poderiam ter sido automatizadas.&lt;/p&gt;
&lt;p&gt;As regras também eliminam a possibilidade de erro humano. Uma vez que forem bem definidas e os processos de criação dos usuários e dispositivos forem maduros, as regras poderão ter cobertura de praticamente 100% dos casos nas empresas, exigindo que os times se preocupem com isso apenas em casos especiais.&lt;/p&gt;
&lt;p&gt;Alguns casos de usos em que a aplicação desta funcionalidade pode ser útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atribuição de novos funcionários nos grupos departamentais específicos;&lt;/li&gt;
&lt;li&gt;Atribuição dos funcionários nos grupos de suas equipes (tanto para novos funcionários quanto para funcionários em mudança de equipe);&lt;/li&gt;
&lt;li&gt;Atribuição dos dispositivos em grupos utilizados para gerenciamento dos mesmos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este recurso pode ser utilizado para atribuir usuários de diversas áreas, cargos e departamentos em grupos comuns a eles, visando facilitar a liberação de acessos, como também pode ser utilizado para cenários mais específicos, onde precisamos analisar com mais detalhe as informações dos usuários.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Usuários sincronizados do &lt;em&gt;Active Directory&lt;/em&gt; &lt;em&gt;on-premise&lt;/em&gt; através do &lt;em&gt;Azure AD Cloud Sync&lt;/em&gt;, também serão “impactados” pelas regras criadas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Listados os benefícios do uso dessa funcionalidade, vamos explorar a sua aplicação!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;hands-on&quot;&gt;Hands-on&lt;/h1&gt;
&lt;p&gt;Passando para a seção prática do nosso tutorial, a imagem abaixo ilustra o cenário que iremos configurar:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-grupos-dinamos-no-entraid/59e596d6-2ecf-4ea0-9eb8-0df662288031.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Criaremos 3 grupos e dentro de cada um deles configuraremos as regras de atribuição dinâmica de usuários.&lt;/p&gt;
&lt;p&gt;Não é possível criar grupos com atribuição dinâmica através do Azure CLI, então todas as operações deverão ser feitas utilizando o &lt;a href=&quot;http://portal.azure.com&quot;&gt;Portal do Azure&lt;/a&gt; ou o &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ao navegarmos no Portal do Entra, acessarmos o Entra ID e a seção de Grupos, vamos clicar em “Novo Grupo”.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-grupos-dinamos-no-entraid/ebfaf0bf-be7b-48f0-a505-f1bd7ae9c256.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Vamos clicar sobre o texto “&lt;em&gt;Add dynamic query&lt;/em&gt;” e seremos direcionados para a seção onde criaremos as regras de atribuição.&lt;/p&gt;
&lt;p&gt;Como esse primeiro grupo que estamos criando é direcionado para os gerentes, a regra que iremos construir analisará o cargo dos usuários procurando os que contenham a palavra “Gerente”. Dessa maneira a regra será executada para todos os gerentes da empresa, sem realizar distinção entre os departamentos em que atuam.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-grupos-dinamos-no-entraid/c3800f40-6574-47da-a0ca-9cc41c17a2c6.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;O editor visual disponibiliza de todas as propriedades existentes nos usuários, você pode navegar por ele e explorar as mais diversas possibilidades.As queries também podem ser feitas em cima de valores numéricos.O campo “Rule syntax” transformará a query criada no editor gráfico para a sintaxe utilizada pelo Entra ID. No final do campo de texto podemos ver o botão “Edit”. Ao clicarmos sobre ele, o campo de texto é habilitado e nós podemos utilizá-lo para escrever a query utilizando a sintaxe apropriada.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Agora basta salvar a query e confirmar a criação do grupo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Os grupos dinâmicos criados impactarão usuários já criados no tenant. Pode levar um tempo para você notar as mudanças de acordo com a quantidade de usuários existentes na sua empresa, mas usuários antigos e novos serão afetados pelas queries*.*&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Agora que você já sabe criar um grupo do zero e criar sua &lt;em&gt;query&lt;/em&gt;, vamos criar os outros dois grupos necessários. Colocarei a seguir as duas &lt;em&gt;queries&lt;/em&gt; que devem ser criadas em cada um dos grupos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-grupos-dinamos-no-entraid/77e7d2a6-c811-45e6-ba0e-cccb6a89d689.png&quot; alt=&quot;Query para grupo de diretores&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-grupos-dinamos-no-entraid/861f4252-7625-4b7c-a81b-a293bdedc3f1.png&quot; alt=&quot;Query para grupo do Departamento de Segurança&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validate Rules&lt;/strong&gt;: caso você deseje testar a execução da sua &lt;em&gt;query&lt;/em&gt;, você pode acessar a funcionalidade “Validate Rules” que está ao lado de “Configure Rules”. Esse recurso nos permite selecionar um ou mais usuários e retornará se esse usuário será colocado no grupo ou não.&lt;/p&gt;
&lt;p&gt;Grupos criados, o que nos resta é criar usuários que contenham as informações que foram utilizadas nas &lt;em&gt;queries&lt;/em&gt; e verificar a execução.&lt;/p&gt;
&lt;p&gt;Como utilizamos as propriedades &lt;em&gt;department&lt;/em&gt; e &lt;em&gt;jobTitle&lt;/em&gt;, essas mesmas devem ser preenchidas na seção “Propriedades” quando você estiver criando os usuários.&lt;/p&gt;
&lt;p&gt;Crie seus usuários e aguarde alguns minutos para que a &lt;em&gt;query&lt;/em&gt; tenha tempo de ser executada.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Pronto! Hoje entendemos o poder dos grupos dinâmicos e como eles podem nos ajudar a aumentar a produtividade da nossa organização e diminuir esforços dos times operacionais.&lt;/p&gt;
&lt;p&gt;Os grupos dinâmicos podem ter &lt;em&gt;queries&lt;/em&gt; complexas, que fazem uso de dezenas de informações diferentes e que funcionam em diferentes granularidades, por isso se demonstra um recurso valioso para as empresas de diferentes tamanhos.&lt;/p&gt;
&lt;p&gt;É isso, chegamos ao final do texto. Espero que tenha gostado e que agora você consiga fazer uso desse recurso valioso.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Qual a importância de termos uma solução de CNAPP?</title><link>https://pedroignacio.dev/post/defender-for-cloud/</link><guid isPermaLink="true">https://pedroignacio.dev/post/defender-for-cloud/</guid><description>A boa gestão de segurança dos ambientes foi um problema levado do on-premise à nuvem pública. A necessidade de termos diversas ferramentas para monitorar a postura de segurança dos recursos deixava os times desconfortáveis, pois os times frequentemen...</description><pubDate>Tue, 04 Jun 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A boa gestão de segurança dos ambientes foi um problema levado do on-premise à nuvem pública. A necessidade de termos diversas ferramentas para monitorar a postura de segurança dos recursos deixava os times desconfortáveis, pois os times frequentemente descobriam recursos não monitorados (e que consequentemente apresentavam riscos à saúde do ambiente). Hoje falaremos do CNAPP (em especial do Microsoft Defender for Cloud), uma solução que veio para deixar a vida dos times de segurança mais tranquila.&lt;/p&gt;
&lt;hr&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Antes de iniciarmos o conteúdo, faço questão de mencionar meu amigo Yuri Diógenes (&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://www.linkedin.com/in/yuridiogenes/&quot; style=&quot;pointer-events: none&quot;&gt;https://www.linkedin.com/in/yuridiogenes/&lt;/a&gt;), &lt;em&gt;Principal PM&lt;/em&gt; do &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt; e a maior referência quando o assunto é CNAPP. Aproveito para deixar este link para uma de suas palestras sobre o tema: &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://www.youtube.com/watch?v=5w42kQ_QjZg&quot; style=&quot;pointer-events: none&quot;&gt;Improving your multi-cloud security with a Cloud Native Application Protection Platform (CNAPP).&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-cnapp&quot;&gt;O que é CNAPP?&lt;/h1&gt;
&lt;p&gt;![What is a Cloud Native Application Protection Platform (CNAPP)?](&lt;a href=&quot;https://sp-ao.shortpixel.ai/client/to_auto,q_glossy,ret_img,w_1024,h_508/https://www.deepfactor.io/wp-content/uploads/2022/01/Devops-History-Definition-Business-Impact-1024x508.png&quot;&gt;https://sp-ao.shortpixel.ai/client/to_auto,q_glossy,ret_img,w_1024,h_508/https://www.deepfactor.io/wp-content/uploads/2022/01/Devops-History-Definition-Business-Impact-1024x508.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;O termo &lt;strong&gt;CNAPP&lt;/strong&gt; (&lt;em&gt;Cloud Native Application Protection Platform&lt;/em&gt;) faz referência a uma solução centralizada de segurança para ambientes &lt;em&gt;cloud&lt;/em&gt;. Todas as funcionaliades de segurança necessárias em um ambiente &lt;em&gt;cloud&lt;/em&gt;, estão presentes na solução, facilitando o trabalho dos administradores e dos times de segurança.&lt;/p&gt;
&lt;p&gt;Uma característica importantíssima das soluções de CNAPP é a segurança de ambientes &lt;em&gt;multi-cloud&lt;/em&gt;, não se limitando apenas a um provedor. Para que sua organização consiga extrair todos os benefícios da solução, é importante que você escolha uma ferramenta que habilite essa visão &lt;em&gt;cross-provider&lt;/em&gt;, caso contrário, teremos replicado o problema de se ter múltiplas visões dos ambientes, tendo que orquestrar diferentes soluções, paineis e acessos.&lt;/p&gt;
&lt;p&gt;Além do suporte &lt;em&gt;multi-cloud&lt;/em&gt; e visão centralizada, as seguintes (também) são características das soluções de CNAPP existentes no mercado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CSPM&lt;/strong&gt; (&lt;em&gt;Cloud Security Posture Management&lt;/em&gt;) - importante em qualquer ambiente &lt;em&gt;cloud&lt;/em&gt;, a solução de CSPM é a responsável por fornecer uma visão de como o ambiente está em relação aos &lt;em&gt;benchmarks&lt;/em&gt; e melhores práticas de mercado. Com ela podemos visualizar as configurações críticas que não estão aplicadas em nosso ambiente e solucionar o tal problema, garantindo assim uma melhor cobertura das boas práticas de segurança.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CWPP&lt;/strong&gt; (&lt;em&gt;Cloud Workload Protection Platform&lt;/em&gt;) - focado nos recursos do provedor de nuvem, o CWPP identifica e analisa ameaças nos recursos da plataforma. A análise de ameaças é feita nos &lt;em&gt;workloads&lt;/em&gt; que estão sendo rodando em seu ambiente, explorando a variedade de opções existentes para execução dessas aplicações.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CIEM&lt;/strong&gt; (&lt;em&gt;Cloud Infrastructure Entitlement Management&lt;/em&gt;) - considerado uma parte da disciplina de IAM (&lt;em&gt;Identity and Access Management&lt;/em&gt;) o CIEM é responsável por centralizar o gerenciamento de acessos privilegiados nos provedores. Essas contas (muitas vezes superpoderosas) apresentam alto risco ao ambiente, pois caso comprometidas, possibilitarão ao detentor das credenciais, alto escopo de acessos ou de permissões.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essa são algumas das principais características de uma solução de CNAPP. Com o intuito de incentivar a adoção desse tipo de ferramenta em sua organização, vamos agora falar sobre os benefícios que uma ferramenta como o Defender for Cloud pode trazer para o seu ambiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;benefícios&quot;&gt;Benefícios&lt;/h1&gt;
&lt;p&gt;Na seção anterior, mencionamos algumas vezes a tendência das empresas de adoatarem múltiplos provedores de nuvem e a complexidade que isso gera no trabalho dos times de segurança. Somado a isso, a vasta variedade de recursos que podem ser criados nas plataformas fazem com que qualquer problema de configuração possa se tornar em uma tremenda dor de cabeça para a sua organização.&lt;/p&gt;
&lt;p&gt;Se tirarmos os olhos do painel centralizado e focarmos nos recursos existentes em cada uma das ofertas da solução, enxergaremos ainda melhor os benefícios gerados.&lt;/p&gt;
&lt;p&gt;Para as integrações ao &lt;em&gt;SDLC&lt;/em&gt; (&lt;em&gt;Software Development Lifecycle&lt;/em&gt;), podemos garantir aos times de engenharia de software a tranquilidade de saber que o código executado em produção foi escaneado para vulnerabilidades de diversas maneiras. Análises do código foram feitas durante o pipeline, buscando situações perigosas e que pudessem comprometer a integridade do código. As dependências também foram “varridas”, evitando que uma dependência com vulnerabilidades altas seja utilizada nos códigos produtivos. &lt;strong&gt;“Segredos!”&lt;/strong&gt;, que são tão problemáticos, são identificados em tempo de &lt;em&gt;commit&lt;/em&gt;, garantindo que as credenciais não cheguem aos repositórios (independente se forem públicos ou privados).&lt;/p&gt;
&lt;p&gt;Em relação aos recursos de infraestrutura, temos uma série de atribuições que nos permitem protegê-los. Servidores poderão ser varridos e monitorados para ameaças e recomendações de &lt;em&gt;hardening&lt;/em&gt;. Bases de dados diversas serão analisadas, na busca de servidores com autenticação fraca, criptografia &lt;em&gt;at-rest&lt;/em&gt; desabilitada e até falta de mascaramento de dados. Sendo o alicerce de qualquer infraestrutura em nuvem, as estruturas de &lt;em&gt;networking&lt;/em&gt; capturam muitos pontos de informação, que serão utilizados para detecção avançada de ataques ao seu ambiente e também na identificação de atores maliciosos ali presentes.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Até agora falamos apenas dos benefícios tecnológicos. E os benefícios financeiros? Afinal de contas, essa será a informação questionada pelos times de negócio que financiarão essas iniciativas de segurança.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O benefício financeiro está “escondido” no valor gerado pela solução de CNAPP. Não será logo de cara que os executivos da sua organização notarão o retorno financeiro da adoção do CNAPP, mas isso ficará evidente quando (e é só questão de tempo) houver um problema de segurança em algum dos ambientes da sua empresa. Um incidente grave, uma ameaça detectada, ou algo parecido. Após a rápida identificação e mitigação do problema de segurança, os analistas reportarão aos executivos (e ao CISO) o impacto no ambiente e é aí que estará escondido o valor dessa solução.&lt;/p&gt;
&lt;p&gt;A rápida capacidade de identificação e remediação reduziu exponencialmente os danos à sua organização, poupando muuuuuuita dor de cabeça aos times de segurança e infraestrutura. É importante que os times de segurança levem esse &lt;em&gt;report&lt;/em&gt; aos executivos para garantir o constante patrocínio para compra e manutenção das ferramentas de segurança, possibilitando a constante evolução nas camadas de proteção dos ativos da sua organização.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;microsoft-defender-for-cloud&quot;&gt;Microsoft Defender for Cloud&lt;/h1&gt;
&lt;p&gt;![Microsoft Defender for Cloud](&lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/defender-for-cloud/media/defender-for-cloud-introduction/defender-for-cloud-pillars.png&quot;&gt;https://learn.microsoft.com/pt-br/azure/defender-for-cloud/media/defender-for-cloud-introduction/defender-for-cloud-pillars.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;Falando especificamente da solução da Microsoft, o &lt;strong&gt;Defender for Cloud&lt;/strong&gt; se apresenta como a principal ferramenta de &lt;em&gt;CNAPP&lt;/em&gt; do mercado, tanto em capacidades funcionais quanto em cobertura. Atendendo ambientes &lt;em&gt;multi-cloud&lt;/em&gt; (&lt;em&gt;Azure&lt;/em&gt;, &lt;em&gt;AWS&lt;/em&gt;, &lt;em&gt;GCP&lt;/em&gt; e &lt;em&gt;on-premise&lt;/em&gt;), o Defender possibilita a proteção dos &lt;em&gt;workloads&lt;/em&gt; desde a concepção do código, ao sair da máquina do desenvolvedor, passar pelas &lt;em&gt;pipelines&lt;/em&gt; e ter seu &lt;em&gt;deploy&lt;/em&gt; feito em ambiente produtivo.&lt;/p&gt;
&lt;p&gt;Para entrar em mais detalhes nas capacidades existentes no Defender for Cloud, vamos partir da seguinte imagem:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defender-for-cloud/16be1563-d487-43be-9da7-c4530aa797b3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Temos mapeado acima os domínios específicos do Defender for Cloud, não havendo necessariamente um serviço do Defender para cada um dos domínios apresentados.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;É importante declarar que as integrações do Defender com outros &lt;em&gt;cloud providers&lt;/em&gt; está em constante evolução, então é possível que nem todas as funcionalidades existentes em um dos produtos com o Azure esteja disponível no recurso equivalente do provedor de sua escolha.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Com o &lt;em&gt;landscape&lt;/em&gt; apresentado acima, podemos enxergar claramente a cobertura &lt;em&gt;cloud-wide&lt;/em&gt; do Defender. Baseado nos 3 pilares do &lt;em&gt;gartner&lt;/em&gt;, podemos classificar as soluções da seguinte maneira:&lt;/p&gt;
&lt;h3 id=&quot;artifact-scanning&quot;&gt;Artifact Scanning&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defender-for-cloud/0334f342-8f08-4390-9cce-c5b91a2333e2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;No &lt;strong&gt;Defender for Cloud DevOps Security&lt;/strong&gt;, temos diversos recursos de segurança aplicados nos artefatos que passam nas soluções do &lt;strong&gt;Azure Pipelines&lt;/strong&gt;, &lt;strong&gt;Azure DevOps&lt;/strong&gt; e &lt;strong&gt;Github&lt;/strong&gt;, nesse caso protegendo não apenas os códigos das aplicações, mas também os artefatos de &lt;em&gt;IaC&lt;/em&gt; (&lt;em&gt;Infrastructure as Code&lt;/em&gt;) que passam por ali.&lt;/p&gt;
&lt;h3 id=&quot;cloud-configuration&quot;&gt;Cloud Configuration&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defender-for-cloud/8b0be8f9-85ff-4d69-b209-42b6d645a74f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tudo que diz respeito às boas práticas de segurança em uma plataforma &lt;em&gt;cloud&lt;/em&gt; estão aqui representadas. Com soluções como o &lt;strong&gt;Defender for Servers, Defender for Storage, Defender for Database, Defender for Container, Defender for App Service, Defender for Key Vault, Defender for APIs, Defender for DNS, Defender for Resource Manager&lt;/strong&gt; e principalmente o &lt;strong&gt;CSPM&lt;/strong&gt; habilitadas, receberemos recomendações de segurança baseadas nos &lt;em&gt;benchmarks&lt;/em&gt; utilizados pelo &lt;strong&gt;Azure&lt;/strong&gt;, que nos permitirão reforçar a configuração dos nossos recursos, reduzindo a superfície de ataque para atores maliciosos.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Os &lt;em&gt;benchmarks&lt;/em&gt; utilizados por padrão são construídos pela própria Microsoft, com base nas melhores práticas de mercado e padrões de segurança reconhecidos. Você pode criar regras de identificação personalizadas, com o objetivo de garantir a aderência aos requisitos de &lt;em&gt;compliance&lt;/em&gt; da sua empresa.&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;runtime-protection&quot;&gt;Runtime Protection&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defender-for-cloud/f49b1958-b802-4e0e-9543-dfc28cf930c9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Os recursos de &lt;em&gt;runtime protection&lt;/em&gt; visão garantir a proteção das plataformas de execução de aplicações. Nesses recursos, não são feitas apenas recomendações de melhora nas configurações, mas também temos a análise das possíveis ameaças que permeiam aquela plataforma.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Outro recurso que é importante comentar é o &lt;strong&gt;Defender for Identity&lt;/strong&gt;, que não foi representado nos diagramas anteriores. O Defender for identity faz parte do conjunto de capacidades do Defender for Cloud, mas não é considerado um &quot;integrante&quot; das funções de CNAPP da ferramenta. Sua responsabilidade é potencializar a proteção das soluções de identidade de uma empresa, fornecendo &lt;em&gt;insights &lt;/em&gt;e recomendações em ambientes &lt;strong&gt;Entra&lt;/strong&gt; e &lt;strong&gt;Active Directory&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;CNAPP&lt;/em&gt; pode ser um conceito novo para você, da mesma forma que é um termo recente no campo da cibersegurança. É um daqueles assuntos que a cada dia que passa, ganha mais força e reconhecimento no mercado, por isso é importante ficar ligado!&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto, me coloco à disposição para conversarmos sobre o tema, caso deseje.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Defesa em profundidade com Microsoft Azure</title><link>https://pedroignacio.dev/post/defesa-em-profundidade-com-microsoft-azure-7629913c647a/</link><guid isPermaLink="true">https://pedroignacio.dev/post/defesa-em-profundidade-com-microsoft-azure-7629913c647a/</guid><description>Um conceito importante no mundo de cibersegurança é a defesa em profundidade (defense in-depth). Nesse texto falo sobre algumas características desse conceito e como ele pode ser aplicado no seu ambiente Azure.

O desenho acima representa as camadas ...</description><pubDate>Wed, 05 Jul 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Um conceito importante no mundo de cibersegurança é a defesa em profundidade (&lt;em&gt;defense in-depth&lt;/em&gt;). Nesse texto falo sobre algumas características desse conceito e como ele pode ser aplicado no seu ambiente &lt;strong&gt;Azure&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;O desenho acima representa as camadas que devem ser protegidas em um ambiente. A proteção começa pela camada externa e vai sendo aplicada nas camadas interiores, por isso é importante não negligenciar a segurança em nenhuma das fases, ao ponto que a camada em questão, é protegida primariamente pela camada externa à si mesma (&lt;em&gt;aplicação &gt; dados&lt;/em&gt;, &lt;em&gt;física &gt; perímetro&lt;/em&gt;, etc).&lt;/p&gt;
&lt;p&gt;As soluções utilizadas para proteção das camadas nesse artigo são exclusivamente da Microsoft. As empresas costumam ter soluções de diversos fornecedores em seu parque tecnológico, então entenda que para escolher a melhor solução, é importante entender corretamente o caso de uso e as necessidades da empresa.&lt;/p&gt;
&lt;p&gt;Quando falamos de cloud, um conceito comentado com frequência, é a &lt;strong&gt;responsabilidade compartilhada&lt;/strong&gt;. Esse conceito diz respeito às tarefas que são de responsabilidade do cliente e as que são de responsabilidade do provedor de &lt;em&gt;cloud&lt;/em&gt;. Isso é tema para outro artigo, porém é importante que você esteja minimamente familiarizado para entender que através das camadas, a responsabilidade passa a ser cada vez mais do cliente.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/03bb6eeb-08f3-4e67-a282-5c76b3ae73e2.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;física&quot;&gt;Física&lt;/h1&gt;
&lt;p&gt;Em um ambiente de nuvem pública e fazendo referência ao modelo de responsabilidade compartilhada, a segurança física do ambiente é de &lt;strong&gt;responsabilidade total&lt;/strong&gt; do provedor. Todos as variáveis relacionadas à segurança dos ambientes de data center são de completa custódia da empresa e o cliente não precisa se preocupar com isso.&lt;/p&gt;
&lt;p&gt;A segurança dos &lt;em&gt;data centers&lt;/em&gt; começa com a não divulgação de sua localização. Empresas como Microsoft, Amazon, Google, Oracle, tem múltiplos &lt;em&gt;data centers&lt;/em&gt; ao redor do mundo e o local onde estão implantados é informação sigilosa, conhecida por poucas pessoas até mesmo dentro da própria empresa.&lt;/p&gt;
&lt;p&gt;Agora na área dos &lt;em&gt;data centers&lt;/em&gt;, a segurança é reforçada do início ao fim, pois a responsabilidade de se gerenciar tantas informações de tantos clientes e empresas diferentes é gigantesca. O acesso é extremamente restrito, permitido apenas a pessoas liberadas, é feito por agentes de segurança da própria empresa e de empresas contratadas. O ambiente contém câmeras em todos os pontos, para garantir que nenhum visitante indesejado tenha a oportunidade de chegar próximo da estrutura principal.&lt;/p&gt;
&lt;p&gt;Para entrar no ambiente, existem diversas camadas de segurança que a pessoa deve passar, desde cadastro, revista e sendo sempre monitorada.&lt;/p&gt;
&lt;p&gt;Pelo fato das empresas adotarem diferentes modelos de segurança para seus &lt;em&gt;data centers&lt;/em&gt;, não é possível detalhar como a segurança é feita, porém no canal da &lt;strong&gt;Google Cloud&lt;/strong&gt; no &lt;em&gt;youtube&lt;/em&gt; temos &lt;a href=&quot;https://www.youtube.com/watch?v=kd33UVZhnAA&amp;#x26;list=PLa6bYstoPRvH85rrJer1o-neMWRzASLM9&amp;#x26;index=2&amp;#x26;t=1s&quot;&gt;esse vídeo&lt;/a&gt;, que é um &lt;em&gt;tour&lt;/em&gt; por algumas áreas de um de seus &lt;em&gt;data centers&lt;/em&gt; e ao longo do vídeo podemos ver como a segurança é prioridade máxima para as empresas, garantindo a confiança dos clientes de que suas informações estarão protegidas o tempo todo.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/751c7dfa-8732-420e-a76f-786b61c2635c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;iam&quot;&gt;IAM&lt;/h1&gt;
&lt;p&gt;Entrando em seu ambiente &lt;em&gt;cloud&lt;/em&gt;, a primeira barreira de defesa é a sua solução de &lt;strong&gt;IAM&lt;/strong&gt; (&lt;em&gt;Identity and Access Management&lt;/em&gt;), ou &lt;strong&gt;Gerenciamento de Identidade e Acesso&lt;/strong&gt;. A solução adotada será responsável por controlar quem se autentica e o que essa pessoa poderá fazer no ambiente.&lt;/p&gt;
&lt;p&gt;O controle das permissões dos usuários deve ser feito de maneira que o acesso fornecido seja somente o necessário (princípio do privilégio mínimo), reduzindo a margem para possíveis problemas causados pelo comprometimento de alguma identidade ou até mesmo por alguém agindo de má fé, querendo prejudicar a empresa.&lt;/p&gt;
&lt;p&gt;Dito isso, aqui estão algumas soluções que podem ser utilizadas quando você estiver planejando seu ambiente de nuvem pública:&lt;/p&gt;
&lt;h4 id=&quot;microsoft-entraazuread&quot;&gt;&lt;strong&gt;Microsoft Entra — Azure AD&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;olução de identidade oficial da Microsoft e um dos &lt;em&gt;IdPs&lt;/em&gt; (&lt;em&gt;Identity Providers&lt;/em&gt;, Provedores de Identidade)mais utilizados no mundo. O Azure AD conta com uma série de recursos que podem ser utilizados para incrementar a segurança dos acessos aos teus recursos.&lt;/p&gt;
&lt;p&gt;As &lt;strong&gt;Políticas de Acesso Condicional&lt;/strong&gt; (&lt;em&gt;Conditional Access Policies&lt;/em&gt;) permitem a criação de regras que analisam características do acesso de um usuário e realizam algumas ações determinadas, como exigir um segundo fator de autenticação. As políticas fornecem diversas opções de controles, então você pode aplicá-las apenas a uma ou a um grupo de aplicações, restringir sua aplicação a um grupo de usuários, análisar os riscos identificados e aplicar ações de acordo com a gravidade do risco (baixo, médio e crítico), entre outras coisas que você pode conferir &lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/active-directory/conditional-access/concept-conditional-access-policies&quot;&gt;neste link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Gerenciamento de Identidades Privilegiadas&lt;/strong&gt; (&lt;em&gt;PIM, Privileged Identity Management&lt;/em&gt;) fornece uma forma de proteger acessos com as chamadas permissões privilegiadas, que são permissões aplicadas a grandes quantidades de recursos ou que permitem que o usuário realize ações que devem ser restritas à poucas pessoas.&lt;/p&gt;
&lt;h4 id=&quot;defender-foridentity&quot;&gt;Defender for Identity&lt;/h4&gt;
&lt;p&gt;Como componente do &lt;em&gt;Defender for Cloud&lt;/em&gt;, o &lt;strong&gt;Microsoft Defender for Identity&lt;/strong&gt; fornece capacidades de segurança para identidades aplicáveis à &lt;em&gt;cloud&lt;/em&gt; e ao &lt;em&gt;on-premise&lt;/em&gt; (&lt;em&gt;Active Directory&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Essa solução analisa os &lt;em&gt;logs&lt;/em&gt; gerados pelos &lt;em&gt;IdPs&lt;/em&gt; e identifica atividades suspeitas, compreendidas pelo estudo das diversas informações diferentes que são capturadas pela Microsoft em cada ação dos usuários.&lt;/p&gt;
&lt;h4 id=&quot;microsoft-entrapermission-management&quot;&gt;Microsoft Entra — Permission Management&lt;/h4&gt;
&lt;p&gt;Recentemente lançada, o &lt;strong&gt;Gerenciamento de Permissões&lt;/strong&gt; (&lt;em&gt;Permission Management&lt;/em&gt;) do &lt;strong&gt;Microsoft Entra&lt;/strong&gt; fornece uma interface centralizada para que os administradores e times de segurança tenham ampla visão das permissões que os usuários tem nas plataformas (&lt;em&gt;&lt;strong&gt;Azure, AWS&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;GCP&lt;/strong&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/12940e2e-6feb-4018-8d84-d100ebee182c.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;perímetro&quot;&gt;Perímetro&lt;/h1&gt;
&lt;p&gt;O perímetro é a segunda camada “lógica” dentro do ambiente cloud, e nela temos recursos que são “transparentes” para as aplicações. Todo ambiente contém alguns desses recursos que serão descritos à seguir, pois sua função é proteger contra os mais diversos ataques e manter os negócios operando sem problemas.&lt;/p&gt;
&lt;h4 id=&quot;azure-ddos-protection&quot;&gt;Azure DDoS Protection&lt;/h4&gt;
&lt;p&gt;Habilitado com o plano &lt;em&gt;standard&lt;/em&gt; em todas as &lt;em&gt;subscriptions&lt;/em&gt; por padrão, o &lt;strong&gt;Azure DDoS Protection&lt;/strong&gt; tem a função de proteger seu ambiente de ataques &lt;em&gt;DoS&lt;/em&gt; (&lt;em&gt;Denial of Service&lt;/em&gt;) e &lt;em&gt;DDoS&lt;/em&gt; (&lt;em&gt;Distributed Denial of Service&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Fortalecido com o uso de Inteligência Artificial e &lt;em&gt;Machine Learning&lt;/em&gt;, o &lt;em&gt;Azure DDoS Protection&lt;/em&gt; é um componente robusto e eficiente, que análisa os padrões das requisições e consegue antecipar ataques com a inteligência presente no recurso.&lt;/p&gt;
&lt;h4 id=&quot;azure-waf&quot;&gt;Azure WAF&lt;/h4&gt;
&lt;p&gt;O &lt;em&gt;Web Application Firewall&lt;/em&gt; é o recurso responsável pela proteção das aplicações que funcionam na camada 7 do modelo OSI. Esse recurso tem a capacidade de proteger aplicações &lt;em&gt;web&lt;/em&gt; contra os mais variados ataques, como injeção SQL e &lt;em&gt;cross-site scripting&lt;/em&gt; (&lt;em&gt;XSS&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Azure WAF&lt;/strong&gt; não é criado como um recurso próprio, mas sim uma capacidade em outros recursos. Hoje os serviços que contém a capacidade de &lt;em&gt;WAF&lt;/em&gt; disponível na Azure são: &lt;strong&gt;Azure CDN&lt;/strong&gt; (&lt;em&gt;Content Delivery Network&lt;/em&gt;), &lt;strong&gt;Azure Application Gateway&lt;/strong&gt; e &lt;strong&gt;Azure Front Door&lt;/strong&gt;. Esses recursos foram “escolhidos” para terem essa funcionalidade de &lt;em&gt;WAF&lt;/em&gt; pois são recursos que em uma arquitetura empresarial de larga escala, ficam à frente dos componentes mais sensíveis (como bases de dados e servidores de aplicação). A presença em múltiplas zonas de disponibilidades (e até em múltiplas regiões como é o caso do &lt;em&gt;front door&lt;/em&gt;) faz com que a proteção do ambiente se estenda de acordo com a escala do recurso.&lt;/p&gt;
&lt;h4 id=&quot;azure-firewall&quot;&gt;Azure Firewall&lt;/h4&gt;
&lt;p&gt;Diferente do &lt;em&gt;WAF&lt;/em&gt;, o &lt;strong&gt;Azure Firewall&lt;/strong&gt; opera nas camadas 3 e 7 do modelo OSI. Com ele é possível construir diversas políticas de segurança de acordo com a origem e com o destino do tráfego. Podemos restringir acesso à sites, realizar análise nos pacotes trafegados nas requisições e bloquear requisições de origens classificadas pela Microsoft como perigosas.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/674ae989-65f5-433a-83d4-6c797aaca8d6.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;rede&quot;&gt;Rede&lt;/h1&gt;
&lt;p&gt;A rede na &lt;em&gt;cloud&lt;/em&gt; começa pela VNet (&lt;em&gt;Virtual Network&lt;/em&gt;), que conterá todos os recursos que forem criados. Em um ambiente empresarial, é comum ter centenas de redes diferentes, variando de acordo com o tamanho da empresa. As redes são segmentadas em &lt;em&gt;subnets&lt;/em&gt;, que são “pedaços” separados da rede, com &lt;em&gt;range&lt;/em&gt; de IPs próprio e com capacidades próprias.&lt;/p&gt;
&lt;p&gt;Para manter as &lt;em&gt;VNets&lt;/em&gt; e &lt;em&gt;subnets&lt;/em&gt; mais seguras, podemos utilizar esses 3 recursos:&lt;/p&gt;
&lt;h4 id=&quot;network-securitygroup&quot;&gt;Network Security Group&lt;/h4&gt;
&lt;p&gt;Os &lt;em&gt;NSGs&lt;/em&gt; são soluções que podem ser criadas e anexadas às &lt;em&gt;subnets&lt;/em&gt; e às interfaces de rede das máquinas virtuais.&lt;/p&gt;
&lt;p&gt;São regras que permitem/bloqueiam a entrada e saída de tráfego dentro daquele recurso onde está aplicada. As regras são “simples”, mas contém uma série de variáveis que permitem que você consiga deixar de forma explícita, o que deve ser liberado e o que deve ser bloqueado naquele NSG.&lt;/p&gt;
&lt;p&gt;As regras suportam IPs de origem e destino, portas, protocolos, FQDN (&lt;em&gt;fully qualified domain name&lt;/em&gt;), entre outras informações que podem ser visualizadas &lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/virtual-network/network-security-groups-overview&quot;&gt;aqui&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;application-securitygroup&quot;&gt;Application Security Group&lt;/h4&gt;
&lt;p&gt;Os &lt;em&gt;ASGs&lt;/em&gt; são mais peculiares do que os &lt;em&gt;NSGs&lt;/em&gt;. Apesar da semelhança no nome, os &lt;em&gt;ASGs&lt;/em&gt; e os &lt;em&gt;NSGs&lt;/em&gt; funcionam de maneira parecida mas para propósitos diferentes.&lt;/p&gt;
&lt;p&gt;Os &lt;em&gt;ASGs&lt;/em&gt; foram criados para incrementar a proteção de aplicações que foram hospedadas em máquinas virtuais. As interfaces de rede das &lt;em&gt;VMs&lt;/em&gt; são colocadas em um &lt;strong&gt;grupo lógico&lt;/strong&gt; que permite a criação de regras (como as do &lt;em&gt;NSG&lt;/em&gt;) para todas as interfaces de rede que estão presente no mesmo grupo.&lt;/p&gt;
&lt;h4 id=&quot;bonus-networkwatcher&quot;&gt;Bonus: Network Watcher&lt;/h4&gt;
&lt;p&gt;As soluções do &lt;em&gt;Network Watcher&lt;/em&gt; não são necessariamente de segurança, afinal de contas elas não agem em cima de uma ameaça ou regra criada. O NW fornece uma série de recursos que permitem analisar o tráfego de rede para visualização de logs, entender o funcionamento dos &lt;em&gt;NSGs&lt;/em&gt;, verificar o que entra e o que sai de uma &lt;em&gt;VM&lt;/em&gt;, entre outras ferramentas.&lt;/p&gt;
&lt;p&gt;O NW é muito útil no momento que precisamos entender o funcionamento do tráfego de rede em um ambiente grande com diversas camadas de segurança, componentes e cheio de segmentações de rede.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/4a715283-2310-42cc-9e64-b5b5f256343e.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;compute&quot;&gt;Compute&lt;/h1&gt;
&lt;p&gt;Entrando nas 3 camadas do meio, vamos falar sobre &lt;em&gt;compute&lt;/em&gt;. A camada de &lt;em&gt;compute&lt;/em&gt; (ou &lt;strong&gt;computação&lt;/strong&gt;), é responsável pela execução das aplicações da sua empresa. Nessa camada, temos máquinas virtuais, contêineres, oquestradores de contêiner (&lt;em&gt;azure kubernetes service&lt;/em&gt;, &lt;em&gt;azure red hat openshift&lt;/em&gt;, etc) entre outras soluções.&lt;/p&gt;
&lt;p&gt;Antes de apresentar as soluções dessa camada, um breve histórico:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Um grande problema encontrado em ambientes empresariais, é a exposição desnecessária de portas em máquinas virtuais. Portas como a 22 (SSH) são usadas para acessar o recurso diretamente, dando controle sobre o recurso ao usuário que está conectado. Outro problema comumente encontrado é a falta de segurança das credenciais de acesso à esses recursos (chaves SSH e arquivo de conexão RDP).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;azure-bastion&quot;&gt;Azure Bastion&lt;/h4&gt;
&lt;p&gt;O &lt;em&gt;&lt;strong&gt;Azure Bastion&lt;/strong&gt;&lt;/em&gt; tem o propósito de resolver um desses problemas. Uma vez criado, o recurso permite que o usuário se conecte à máquina virtual de maneira segura, utilizando o protocolo &lt;em&gt;HTTPS&lt;/em&gt; (porta 443). O usuário precisa conectar no portal azure e realizar o login para conseguir acesso à máquina, isso sem a preocupação de deixar suas credenciais “soltas” e inseguras, como é o caso de uma conexão direta ao servidor por meio de SSH ou RDP.&lt;/p&gt;
&lt;h4 id=&quot;jit-vm-access-just-in-time-vmaccess&quot;&gt;JIT VM Access (&lt;em&gt;Just In Time VM Access&lt;/em&gt;)&lt;/h4&gt;
&lt;p&gt;O segundo problema apontado, é resolvido por esse recurso. O JIT VM Access (traduzido ficaria algo como &lt;em&gt;Acesso à VM em tempo real&lt;/em&gt;) é parte do &lt;strong&gt;Defender for Cloud&lt;/strong&gt; e realiza a abertura de certas portas apenas quando se faz necessário.&lt;/p&gt;
&lt;p&gt;Uma VM tem um NSG atrelado à sua interface de rede e nesse NSG não há regras de liberação das portas 3389 (RDP) ou 22 (SSH). Caso seja necessário se conectar ao recurso, o &lt;em&gt;JIT&lt;/em&gt; realiza a abertura das portas por um tempo determinado, para que o usuário possa concluir suas tarefas e após encerrá-las, a porta será fechada novamente e o recurso estará seguro.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/1c210f44-151b-43b1-a78a-8fece12377bb.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;aplicação&quot;&gt;Aplicação&lt;/h1&gt;
&lt;p&gt;Chegando ao nível do código da aplicação, ainda temos que nos preocupar. É importante que saibamos que os códigos que estamos colocando em produção, são seguros e estão sendo monitorados constantemente pelas ferramentas adotadas.&lt;/p&gt;
&lt;p&gt;Mesmo com a inserção da segurança no ciclo &lt;em&gt;DevOps&lt;/em&gt; (&lt;em&gt;DevSecOps&lt;/em&gt;) e com todas as ferramentas de análise de código (SAST/DAST), não podemos simplesmente assumir que uma aplicação é/está segura, é importante a avaliação constante dos recursos que temos.&lt;/p&gt;
&lt;h4 id=&quot;defender-for-container&quot;&gt;Defender for Container&lt;/h4&gt;
&lt;p&gt;Mais um componente da suíte do &lt;em&gt;Defender for Cloud&lt;/em&gt;, o &lt;strong&gt;Defender for Containers&lt;/strong&gt; permite aumentar a segurança do seu ambiente que utiliza contêineres.&lt;/p&gt;
&lt;p&gt;A plataforma é habilitada por padrão para realizar &lt;em&gt;assessments&lt;/em&gt; de segurança em &lt;em&gt;clusters&lt;/em&gt; &lt;em&gt;AKS&lt;/em&gt; (&lt;em&gt;Azure Kubernetes Service&lt;/em&gt;), &lt;em&gt;EKS&lt;/em&gt; (&lt;em&gt;Elastic Kubernetes Service&lt;/em&gt; — AWS) e em plataformas &lt;em&gt;Kubernetes on-premise&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;A ferramenta oferece todas as funcionalidades “padrão” que as outras soluções do &lt;em&gt;defender for cloud&lt;/em&gt; disponibilizam (pontuação de segurança, alertas, recomendações, etc.).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/assets/defesa-em-profundidade-com-microsoft-azure-7629913c647a/6fba6c2d-a202-407a-a366-aa01f28be1da.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;dados&quot;&gt;Dados&lt;/h1&gt;
&lt;p&gt;Por último (e com certeza não menos importante) temos a camada central do ambiente. Os dados.&lt;/p&gt;
&lt;p&gt;A camada de dados é representada por todas as soluções que de alguma forma armazenam informações (bases de dados, discos, &lt;em&gt;storage accounts&lt;/em&gt;, etc.). Em uma era onde os dados são fundamentais em literalmente todos os aspectos, mantê-los seguros &lt;em&gt;at-rest&lt;/em&gt; (em descanso), &lt;em&gt;in transit&lt;/em&gt; (em trânsito/em movimento) e longe de atacantes é fundamental para a estratégia da empresa.&lt;/p&gt;
&lt;p&gt;Para cumprir com esses requisitos, alguns recursos contém funcionalidades nativas para garantir a segurança dessas informações. Aqui estão algumas:&lt;/p&gt;
&lt;h4 id=&quot;transparent-data-encryption-tde&quot;&gt;Transparent Data Encryption (TDE)&lt;/h4&gt;
&lt;p&gt;Funcionalidade disponível em bases de dados SQL (&lt;em&gt;Azure SQL Database&lt;/em&gt;, &lt;em&gt;SQL Server&lt;/em&gt; e &lt;em&gt;Synapse Analytics&lt;/em&gt;), o &lt;em&gt;TDE&lt;/em&gt; realiza a criptografia &lt;em&gt;at rest&lt;/em&gt; dos dados presentes nos recursos em que é aplicado.&lt;/p&gt;
&lt;h4 id=&quot;storage-service-encryption&quot;&gt;Storage Service Encryption&lt;/h4&gt;
&lt;p&gt;Recurso ativo por padrão nas &lt;em&gt;storage accounts&lt;/em&gt;, o &lt;em&gt;SSE&lt;/em&gt; realiza a criptografia e a descriptografia &lt;em&gt;at rest&lt;/em&gt;, sem afetar a performance do recurso e de forma completamente transparente ao usuário.&lt;/p&gt;
&lt;p&gt;Essa funcionalidade independe do tipo de &lt;em&gt;storage account&lt;/em&gt; que você criou, elas sempre estarão protegidas por esse recurso.&lt;/p&gt;
&lt;p&gt;Como mencionei no início do texto, é importante que a segurança de todas as camadas seja tratada de maneira séria. A segurança de uma camada se inicia pela segurança de sua camada mais externa, que tem o papel não só de proteger os recursos condizentes à aquele nível, mas também aos recursos que estão em camadas mais “profundas” que ela.&lt;/p&gt;
&lt;p&gt;Analise o ambiente da empresa onde você trabalha, seja um ambiente em nuvem ou &lt;em&gt;on-premise&lt;/em&gt;. As camadas costumam ser facilmente identificáveis. Veja quais soluções estão sendo utilizadas, se há algum tipo de cobertura diferente sendo feita na empresa, ou até mesmo se há algum gap de proteção que você identificou.&lt;/p&gt;
&lt;p&gt;Se você trabalha com ambientes Azure, esse texto é a sua referência para construção de uma arquitetura em camadas segura.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Caso tenha alguma dúvida, não deixe de comentar.&lt;/p&gt;
&lt;p&gt;Obrigado pela atenção ❤&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Entra MFA: guia completo!</title><link>https://pedroignacio.dev/post/entra-mfa-guia-completo/</link><guid isPermaLink="true">https://pedroignacio.dev/post/entra-mfa-guia-completo/</guid><description>As identidades são os principais insumos na defesa (e também no ataque) de um ambiente em nuvem. Com elas que realizamos nossas tarefas do dia a dia e acessamos os sistemas e aplicações da nossa organização. Garantir a integridade dos acessos e a gar...</description><pubDate>Tue, 14 May 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As identidades são os principais insumos na defesa (e também no ataque) de um ambiente em nuvem. Com elas que realizamos nossas tarefas do dia a dia e acessamos os sistemas e aplicações da nossa organização. Garantir a integridade dos acessos e a garantir da segurança de uma conta é fundamental para a boa operaçaõ do ambiente em nuvem. Por isso, hoje falaremos sobre MFA e as possibilidades disponibilizadas pelo Microsoft Entra ID.&lt;/p&gt;
&lt;hr&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Em adição ao primeiro artigo sobre MFA do blog (que você pode acessar clicando &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://pedroscloudsecurity.com/adocao-de-mfa-capacidades-do-entra-id&quot; style=&quot;pointer-events: none&quot;&gt;aqui&lt;/a&gt;) hoje vamos fazer um &lt;em&gt;deep dive&lt;/em&gt; nas soluções de MFA presentes no Microsoft Entra ID.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;a-importância-do-mfa&quot;&gt;A importância do MFA&lt;/h1&gt;
&lt;p&gt;Garantir a segurança nos acessos dos funcionários da sua organização é fundamental para a manutenção da boa operação dos ambientes em nuvem. O mercado vem aderindo à tendência de ambientes &lt;em&gt;passwordless&lt;/em&gt;, fugindo das credenciais tradicionais e combinando fatores de autenticação que façam uso de outros recursos. Independente do modelo de autenticação adotado pela sua organização, o &lt;strong&gt;MFA&lt;/strong&gt; é exigência para manter a tranquilidade e segurança do ambiente.&lt;/p&gt;
&lt;p&gt;A solução de MFA escolhida pela sua organização irá variar de acordo com os recursos disponíveis e também com os casos de uso apresentados pelos &lt;em&gt;stakeholders&lt;/em&gt;. As restrições que os ambientes impõem e os custos das soluções (compra, distribuição, operação, resolução de problemas) são pontos que podem rapidamente inviabilizar uma ferramenta escolhida para servir como solução de MFA corporativa.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Por isso é de extrema importância que antes de se definir às cegas qual solução deve ser utilizada na organização, os times técnicos e de negócio tenham ciência dos requisitos funcionais e não funcionais apresentados pelo negócio.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nas próximas seções, vamos discutir as possibilidades expostas pelo Entra, bem como suas aplicações e seus controles.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;mfa-no-entra-id&quot;&gt;MFA no Entra ID&lt;/h1&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/pt-br/entra/identity/authentication/media/concept-authentication-methods/authentication-methods.png&quot;&gt;https://learn.microsoft.com/pt-br/entra/identity/authentication/media/concept-authentication-methods/authentication-methods.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;O desenho acima nos fornece uma visão interessante sobre os diferentes tipos de MFA disponíveis no Entra ID, bem como seu posicionamento em uma escala que julga as soluções como &lt;strong&gt;não recomendadas&lt;/strong&gt; (soluções à esquerda) e &lt;strong&gt;recomendadas&lt;/strong&gt; (soluções mais à direita).&lt;/p&gt;
&lt;p&gt;Note que como qualquer recomendação, as menções sobre uma solução ser boa ou ruim, são apenas &lt;strong&gt;recomendações&lt;/strong&gt;. Apenas você pode avaliar uma solução como boa no contexto da sua organização, seja por capacidade de segurança ou puramente por restrições em relação ao ambiente/aplicação.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;insight&lt;/em&gt; que é importante tirar dessa imagem é a ida para as soluções &lt;em&gt;passwordless&lt;/em&gt;, soluções essas que já são uma realidade há anos. Para garantir a proteção de mais alto nível para os ambientes, sua organização deve caminhar para implementar esse modelo em um futuro próximo.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Cuidado para não pular etapas! Partir de uma solução de autenticação tradicional baseada em credenciais para soluções &lt;em&gt;passwordless&lt;/em&gt; pode ser uma catastrofe. É importante que os integrantes da organização passem por um período de adaptação, aprendendo a utilizar a ferramenta distribuída e ganhando confiança e conforto no modelo implementado.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Agora que interpretamos o diagrama, entraremos em mais detalhes sobre as soluções representadas acima, e em cada caso, comentaremos os motivos da colocação da ferramenta na posição onde se encontra.&lt;/p&gt;
&lt;h2 id=&quot;soluções-disponíveis&quot;&gt;Soluções disponíveis&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/c4b3b33c-2c45-499b-b741-e9d069b9e7a4.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Começando pelas &lt;strong&gt;senhas&lt;/strong&gt;, são cadeias de caracteres que foram previamente cadastradas pelo usuário. Estão sujeitas aos vetores de ataque mais comuns (&lt;em&gt;password spray&lt;/em&gt;, &lt;em&gt;engenharia social&lt;/em&gt;, &lt;em&gt;phishing&lt;/em&gt;, etc.). O usuário utiliza a credencial previamente cadastrada para acessar as aplicações e apenas esse primeiro fator de autenticação satisfaz a segurança do acesso.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/9ff3bc48-d059-41a1-a17d-fbceafeec40a.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Evoluindo a estratégia de segurança da nossa empresa, temos agora a configuração de um segundo fator de autenticação, podendo ser um OTP enviado via &lt;strong&gt;SMS&lt;/strong&gt; ou via &lt;strong&gt;chamada de voz&lt;/strong&gt;. O uso de qualquer um dos dois realmente eleva a segurança do acesso, mas ainda não deixa o ambiente da organização protegido da forma que deveria. Ambas as soluções são vulneráveis a ataques de &lt;strong&gt;engenharia social&lt;/strong&gt;, onde é possível que um atacante engane o usuário a fornecer o código repassado a ele.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/1d36d779-02e6-4fc1-a395-ca9c023d106d.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Melhorando ainda mais a segurança do nosso ambiente, temos a adoção de “2FAs” mais poderosos (porém ainda orquestrados com uma credencial). Aqui passamos a fazer uso de “&lt;strong&gt;algo que o usuário tem&lt;/strong&gt;” que permite que o acesso ao nosso ambiente seja mais reforçado. Esses métodos de MFA são resistentes aos vetores de ataque mencionados anteriormente, porém o elo frágil nesse modelo são as credenciais, que ainda tornam os usuários suscetíveis a esses ataques. As soluções representadas nesse modelo são o &lt;strong&gt;hardware OTP tokens&lt;/strong&gt;, os &lt;strong&gt;software OTP tokens&lt;/strong&gt; e o &lt;strong&gt;microsoft authenticator&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/a06612d4-8ad6-4c31-b4c1-99201aba0ad6.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PASSWORDLESS!&lt;/strong&gt; Chegamos ao suprassumo das formas de autenticação. Nesse modelo, esquecemos completamente das senhas, não serão mais utilizadas pelos usuários da nossa organização no acesso aos sistemas da empresa. Aqui podemos fazer uso de soluções extremamente seguras e recomendadas pelas principais referências de cibersegurança do mercado. O uso das chaves &lt;strong&gt;FIDO2 Key&lt;/strong&gt;, &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; (somado da digital ou biometria facial para confirmação do &lt;em&gt;login&lt;/em&gt;), &lt;strong&gt;certificados&lt;/strong&gt; e &lt;strong&gt;Windows Hello for Business&lt;/strong&gt; (fazendo uso da leitura biométrica ou da digital nos dispositivos que a tem disponível) possibilita uma experiência completamente sem senhas e sem os principais fardos que são gerados pelo uso delas.&lt;/p&gt;
&lt;h2 id=&quot;estratégias-de-adoção&quot;&gt;Estratégias de adoção&lt;/h2&gt;
&lt;p&gt;Antes de configurarmos qualquer recurso em nosso ambiente, devemos ter ciência do que será impactado com aquelas mudanças (e principalmente se algo der errado). É importante que decisões como essa, que afetam uma organização em toda sua escala, sejam comunicadas aos usuários finais e aos times de suporte, para que saibam como agir quando forem acionados.&lt;/p&gt;
&lt;p&gt;Outra boa prática é realizarmos o lançamento dessas funcionalidades de maneira faseada, isto é, iniciar com um grupo pequeno de usuários e com o passar das semanas incluir mais usuários nos grupos de teste, até o momento em que a organização estará madura para suportar uma migração total desses usuários.&lt;/p&gt;
&lt;h3 id=&quot;registration-campaign&quot;&gt;Registration Campaign&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;E&lt;/strong&gt;sse recurso do Entra permite configurar alguns controles que garantem que todos os usuários registrem seus dispositivos e habilitem o &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; para que possa ser utilizado em seus acessos posteriores.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/479ba083-0fd4-4da3-9d53-b29669eeecc5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nesse exemplo, estamos permitindo que os usuários adiem o registro do dispositivo no máximo 3 vezes, sendo obrigados a seguir o fluxo de registro após os 3 adiamentos.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Esse recurso hoje tem efeito apenas para o uso do Microsoft Authenticator, não podendo ser utilizado com nenhum dos outros recursos disponíveis no Entra.&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;policies&quot;&gt;Policies&lt;/h3&gt;
&lt;p&gt;Pensando em implementar controles de acordo com o método de autenticação escolhido, nessa &lt;em&gt;blade&lt;/em&gt; podemos configurar regras de uso e também controlar quem pode utilizar determinado recurso (extremamente útil quando estamos testando ao mesmo tempo diversos métodos e queremos garantir que um não tenha interferência no outro).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/c06b61a9-12c9-47b3-afd9-d1d68b9ac109.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Todos os métodos terão duas seções, “Enable and Target” e “Configure”. Em “Enable and Target” você poderá configurar quais usuários e grupos poderão utilizar aquele recurso (pelo menos até que seja ativo globalmente no &lt;em&gt;tenant&lt;/em&gt;), em “Configure” você entra em configurações mais específicas do método, variando de recurso para recurso.&lt;/p&gt;
&lt;h3 id=&quot;reporting-suspicious-activity&quot;&gt;Reporting Suspicious Activity&lt;/h3&gt;
&lt;p&gt;Um recurso interessante para incrementarmos a segurança das soluções de MFA são os alertas de atividade suspeita. Uma vez configurado, os usuários poderão notificar que estão recebendo tentativas de autenticação que não foram eles que iniciaram. Esse &lt;em&gt;report&lt;/em&gt; classifica o acesso do usuário como de &lt;strong&gt;alto risco&lt;/strong&gt;, o colocando como alvo de possíveis políticas de acesso condicional que podem estar configuradas em seu ambiente.&lt;/p&gt;
&lt;p&gt;Algumas ações das políticas de acesso condicional podem exigir que o usuário: altere a senha ou registre novamente o dispositivo no Entra.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/9ecd6622-457a-4691-8154-c40f4fa271cf.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Esse recurso tem impacto apenas para usuários que estejam utilizando o &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; ou as &lt;strong&gt;chamadas de voz&lt;/strong&gt; como segundo fator de autenticação.&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;weekly-digest&quot;&gt;Weekly Digest&lt;/h3&gt;
&lt;p&gt;Com a proposta de fornecer visibilidade das atividades do &lt;em&gt;tenant&lt;/em&gt; aos administradores, uma vez configurado, esse recurso envia e-mails semanais aos usuários e grupos cadastrados, contendo informações sobre os acessos considerados arriscados identificados pelo &lt;strong&gt;ID Protection&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;implementação&quot;&gt;Implementação&lt;/h2&gt;
&lt;p&gt;Indo além dos recursos mencionados anteriormente, uma peça fundamental para toda a estratégia de segurança da sua organização (não apenas para a implementação das soluções de MFA) são as &lt;strong&gt;Regras de Acesso Condicional&lt;/strong&gt;. Essas regras determinam qual controle deve ser aplicado, em quais aplicações essas regras devem ser implementadas e quais usuários e grupos sofrerão os impactos dessas regras.&lt;/p&gt;
&lt;p&gt;Com o &lt;em&gt;conditional access&lt;/em&gt; nós podemos personalizar as atividades que devem ser cumpridas pelos usuários de acordo com os cenários que são apresentados. Nós podemos interpretar os acessos baseados no nível de risco que eles apresentam e aí sim controlar de diferentes maneiras o que deve ser feito. Podemos também implementar proteção contra os ataques mais sofisticados, garantindo a integridade máxima dos nossos ativos.&lt;/p&gt;
&lt;p&gt;Estabeleça um padrão para criar e utilizar as políticas de acesso condicional, aplique-as de maneira faseada até que cubram todos os acessos da organização. Document corretamente o processo de montagem da política, bem como o que ela faz e quais públicos atinge. E acima de tudo, governe corretamente as políticas do seu ambiente, para evitar que políticas existentes sejam muito alteradas e percam seu propósito. Essas mudanças sem histórico podem gerar riscos sérios por não serem planejadas e deixarem alguma “porta aberta” no seu &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;arquitetura&quot;&gt;Arquitetura&lt;/h1&gt;
&lt;p&gt;Pensando em unificar todos os pontos que tratamos nesse artigo, trago esse desenho de alto nível que demonstra todas as capacidades que utilizariamos para implementar uma arquitetura que disponibiliza aos usuários uma série de soluções de MFA e ao mesmo tempo, implementa controles de segurança para garantir a integridade dos dispositivos e dos acessos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entra-mfa-guia-completo/d2ea05c5-23b9-4683-83ad-ca899d256981.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Todos os recursos devem ter seu uso bem planejado e configurado, sempre tendo em mente o usuário final.&lt;/p&gt;
&lt;p&gt;Sua empresa não terá ganhos se implementar controles e proteções que dificultam o dia a dia do usuário. Sistemas com usabilidade ruim (por excesso de controles ou aplicação errada dos mesmos) fará com que os usuários busquem caminhos alternativos para acessar aquela aplicação, não seguindo os &lt;em&gt;baselines&lt;/em&gt; determinados pelos times de segurança.&lt;/p&gt;
&lt;p&gt;Outro ponto que é importante destacar é a visibilidade do ambiente. Precisamos ter monitoramento constante por parte das ferramentas de SIEM da sua empresa nos eventos privilegiados gerados no seu tenant. Isso garantirá que as atividades consideradas suspeitas possam ser avaliadas pelo time de SOC da organização, garantindo um controle ainda mais granular e efetivo em cima dos acessos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Não é de um dia para outro que uma organização passa a adotar soluções de MFA de maneira corporativa, isso leva tempo. O importante é que caso sua organização ainda não tenha esses controles implementados, você comece levantar os riscos de ter o ambiente tão desprotegido.&lt;/p&gt;
&lt;p&gt;Esse artigo foi construído para te fornecer um ponto de partida para iniciar a implementação do MFA, sugerindo alguns controles e mencionando os principais recursos, utilizados em quase todas as arquiteturas.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado, nos vemos na semana que vem.&lt;/p&gt;
&lt;p&gt;Até logo”&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Criando políticas de acesso condicional</title><link>https://pedroignacio.dev/post/criando-politicas-acesso-condicional/</link><guid isPermaLink="true">https://pedroignacio.dev/post/criando-politicas-acesso-condicional/</guid><description>Sendo um dos recursos de maior valor do Entra ID (antigo Azure AD), as políticas de acesso condicional (conditional access policies) fornecem aos times uma maneira poderosa de proteger os recursos no Azure e as aplicações conectadas ao Entra ID. Vamo...</description><pubDate>Mon, 24 Jul 2023 03:00:00 GMT</pubDate><content:encoded>&lt;hr&gt;
&lt;p&gt;Sendo um dos recursos de maior valor do Entra ID (antigo Azure AD), as políticas de acesso condicional (&lt;em&gt;conditional access policies&lt;/em&gt;) fornecem aos times uma maneira poderosa de proteger os recursos no Azure e as aplicações conectadas ao Entra ID. Vamos mergulhar nesse recurso!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;OBS:&lt;/strong&gt; antes de começarmos a trabalhar com as políticas, é importante que você se atente ao licenciamento necessário para utilizá-las. A Microsoft exige que você tenha um &lt;em&gt;tenant&lt;/em&gt; do &lt;strong&gt;Entra ID&lt;/strong&gt; com qualquer uma das licenças (P1, P2, E3 ou E5). Tendo qualquer uma delas, você estará habilitado para começar a construir suas políticas e proteger seu ambiente.&lt;strong&gt;OBS2:&lt;/strong&gt; pode ser que ao entrar no portal do Entra na &lt;em&gt;blade&lt;/em&gt; de &lt;strong&gt;Acesso Condicional&lt;/strong&gt; (Proteção &gt; Acesso Condicional) você seja apresentado com o seguinte aviso:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/2c9ebfdf-bf93-48ea-8baa-cde00ca2be6e.png&quot; alt=&quot;“Parece que você está prestes a gerenciar as configurações de segurança da sua organização. Você precisa desabilitar os padrões de segurança antes de habilitar uma política de Acesso Condicional.”&quot;&gt;&lt;/p&gt;
&lt;p&gt;Os &lt;em&gt;tenants&lt;/em&gt; do Entra ID tem uma configuração chamada &lt;strong&gt;padrões de segurança&lt;/strong&gt; (&lt;em&gt;security defaults&lt;/em&gt;) que está habilitada por padrão em todos os novos &lt;em&gt;tenants&lt;/em&gt;. Para desativá-la basta clicar no texto clicável do aviso (“desabilitar os padrões de segurança”) e selecionar “Desabilitado”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Padrões de Segurança&lt;/strong&gt; (&lt;em&gt;&lt;strong&gt;Security Defaults&lt;/strong&gt;&lt;/em&gt;): a função dos padrões de segurança é fornecer alguns requisitos mínimos de proteção ao ambiente do Entra ID. Quando habilitado, os administradores não precisam realizar nenhum tipo de configuração adicional, visto que o &lt;em&gt;tenant&lt;/em&gt; como um todo será protegido pelos padrões. Os controles de segurança aplicados pelos &lt;em&gt;security defaults&lt;/em&gt; são os seguintes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autenticação multifator: exige que os usuários cadastrem alguma forma de autenticação multifator;&lt;/li&gt;
&lt;li&gt;Bloqueio de autenticações legado: com o objetivo de oferecer mais segurança ao ambiente, o bloqueio de protocolos legado não permite autenticações que utilizem protocolos legado;&lt;/li&gt;
&lt;li&gt;Proteção de atividades privilegiadas: para contas privilegiadas (alto nível de acesso e permissões), os usuários terão que realizar a autenticação multifator;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id=&quot;iniciando-com-as-políticas&quot;&gt;Iniciando com as políticas&lt;/h1&gt;
&lt;p&gt;Após desativar os padrões de segurança, podemos prosseguir com a criação da nossa primeira política de acesso condicional.&lt;/p&gt;
&lt;p&gt;Nesse tutorial, vamos criar uma política que exija autenticação multifator (&lt;em&gt;MFA&lt;/em&gt;) para determinados usuários do nosso &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/d324a7a1-d01b-4d38-8422-abe4ffa5a185.png&quot; alt=&quot;Painel do acesso condicional no portal do Entra&quot;&gt;&lt;/p&gt;
&lt;p&gt;O primeiro passo é criar um nome. É importante lembrar que sua organização provavelmente terá dezenas (se não centenas) de políticas de acesso condicional, então escolher um bom nome e que descreva corretamente o que a política fará é de extrema importância. Isso facilitará o trabalho dos profissionais que terão que modificar as políticas no futuro ou que desejam consultá-las para entender quais proteções estão sendo aplicadas no ambiente.&lt;/p&gt;
&lt;p&gt;Vamos seguir com o seguinte nome:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Exigir MFA para usuários específicos&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;usuários&quot;&gt;Usuários&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/308cd605-6b3e-46f8-b0d6-2b10da5b6f28.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Entrando efetivamente na construção das nossas políticas, o primeiro passo é selecionar quem será afetado por ela:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/821b0f09-e76e-4526-a83b-ac1f11faf295.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao selecionar o campo “usuários” você poderá escolher na aba “incluir”, usuários e grupos que serão afetados pela política. Na aba “excluir” você colocará as exceções para a política, ou seja, usuários e grupos que não deverão sofrer a aplicação das regras. Ao contrário da aba “incluir”, não é obrigatório preencher nenhum dos campos da aba “excluir”.&lt;/p&gt;
&lt;p&gt;Para este exemplo, vamos aplicar a política apenas à um usuário como mostra a imagem a seguir:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/1c54235d-7e02-4283-8a0c-aba32b2d2327.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Após escolher “selecionar usuários e grupos” você terá essas opções à cima para serem marcadas.&lt;/p&gt;
&lt;p&gt;“Usuários convidados ou externos” são contas que não são nativas do seu &lt;em&gt;tenant.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;“Funções do diretório” permite que você selecione algumas “roles”, assim os usuários que contenham qualquer uma delas sofrerão a aplicação da política.&lt;/p&gt;
&lt;p&gt;“Usuários e grupos” permite que você escolha qualquer um dos usuários e grupos presentes no seu &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;recursos-dedestino&quot;&gt;Recursos de destino&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/f761a97c-117d-45e2-beb5-788b61937ddb.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Após escolher quem será impactado pelas políticas, é hora de escolher &lt;strong&gt;O QUE&lt;/strong&gt; será impactado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/7f936f33-3a41-4c4e-80c7-e2618525c3c4.jpeg&quot; alt=&quot;Recursos de destino disponíveis&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nessa seção nós selecionaremos quais aplicativos o usuário utilizar e/ou quais ações o usuário realizar que serão impactadas pela política.&lt;/p&gt;
&lt;h2 id=&quot;aplicativos-denuvem&quot;&gt;Aplicativos de nuvem&lt;/h2&gt;
&lt;p&gt;Dentro dessa seção nós podemos escolher aplicações que estão “federadas” no Entra ID devem ter seu acesso controlado. Caso seu &lt;em&gt;tenant&lt;/em&gt; seja novo, você provavelmente não terá nenhuma aplicação federada, mas por padrão você poderá selecionar o &lt;em&gt;Office 365&lt;/em&gt; e o portal do Azure para terem o acesso controlado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/4f663394-9267-40a2-b38b-bc35d0e1de81.png&quot; alt=&quot;Painel dos aplicativos em nuvem&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;O aplicativo selecionado (portais de administração da Microsoft) contém um conjunto de aplicações (como o Portal do Entra e o Portal do Azure). Quando seu &lt;em&gt;tenant&lt;/em&gt; tiver mais aplicações federadas (SaaS, portais, aplicações próprias, etc) você poderá selecioná-los para serem impactados pelas políticas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nesse caso não faremos uso da funcionalidade de exclusão da política, mas para fins de conhecimento ela funciona da mesma forma que na seção de usuários.&lt;/p&gt;
&lt;p&gt;Esse campo “editar filtro” permite que você crie regras personalizadas baseadas em atributos das aplicações para selecioná-las de maneira dinâmica.&lt;/p&gt;
&lt;h2 id=&quot;ações-dousuário&quot;&gt;Ações do usuário&lt;/h2&gt;
&lt;p&gt;Essa seleção permite escolher duas ações que podem ser realizadas pelos usuários: inserir informações de segurança e entrar com um dispositivo no Entra ID (seja registrá-lo ou apenas realizar login no mesmo).&lt;/p&gt;
&lt;p&gt;Para esse tutorial não vamos utilizar essa capacidade da plataforma.&lt;/p&gt;
&lt;h2 id=&quot;contexto-de-autenticação&quot;&gt;Contexto de autenticação&lt;/h2&gt;
&lt;p&gt;Os contextos de autenticação fornecem uma maneira de proteger o acesso à áreas e informações sensíveis de aplicações.&lt;/p&gt;
&lt;p&gt;Essa funcionalidade habilita que os administradores dos sistemas controlem o acesso à informações personalizadas utilizando a força das políticas de acesso condicional.&lt;/p&gt;
&lt;p&gt;Esse recurso também oferece certa granularidade na proteção das aplicações. A usabilidade das plataformas é de extrema importância para os administradores, pois isso afeta a produtividade dos usuários no dia a dia. Apenas imagine, você precisando se re-autenticar o tempo todo enquanto utiliza uma aplicação crítica para suas atividades. Pensando na usabilidade, podemos restringir as re-autenticações apenas ao acesso a informações privilegiadas.&lt;/p&gt;
&lt;p&gt;Antes de configurar o contexto de autenticação na política, é necessário registrar o contexto. Se quiser ter mais detalhes, recomendo a leitura &lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/active-directory/develop/developer-guide-conditional-access-authentication-context&quot;&gt;dessa documentação&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;condições&quot;&gt;Condições&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/5f8daea6-87ae-4439-b791-c0e810da98d5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Após selecionarmos QUEM e o QUE terão seus acessos controlados, chegou a hora de selecionar outras informações que deverão ser levadas em conta quando estivermos construindo nossas políticas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Essa seção é enorme e cheia de variáveis, não entraremos a fundo em cada uma das possibilidades. Para melhor conhecimento, sugiro que faça seus testes em casa construindo as mais variáveis políticas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/66a6ed25-89a6-4f99-acac-46960d19a031.png&quot; alt=&quot;Painel das condições&quot;&gt;&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Entra ID Identity Protection&lt;/strong&gt; fornece diferentes capacidades de análise de segurança para os usuários da plataforma. Com ele, diversas informações dos usuários e de seus &lt;em&gt;logins&lt;/em&gt; são captadas e analisadas pela própria plataforma, identificando ameaças, invasões, atividades suspeitas e outros riscos às identidades e aos recursos da sua empresa. Os &lt;strong&gt;riscos de usuário&lt;/strong&gt; e &lt;strong&gt;riscos de entrada&lt;/strong&gt; são funcionalidades próprias do &lt;strong&gt;Entra ID Identity Protection&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A lista de riscos identificados pelo ID Protection é extensa, então para facilitar o seu entendimento, vou inserir um &lt;em&gt;print&lt;/em&gt; das capacidades de cada um deles, bem como o &lt;em&gt;link&lt;/em&gt; para a documentação oficial da Microsoft que trata dessas informações.&lt;/p&gt;
&lt;h2 id=&quot;risco-deusuário&quot;&gt;Risco de usuário&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/ecf03962-4abf-456d-b560-387d72fb99f2.png&quot; alt=&quot;Quais são os riscos do Azure AD Identity Protection — Microsoft Entra | Microsoft Learn&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro dessa área da política, você poderá selecionar qual a severidade de risco que deverá ser levada em conta para que a política seja aplicada.&lt;/p&gt;
&lt;p&gt;Os riscos de usuário podem ser classificados como &lt;strong&gt;baixo&lt;/strong&gt;, &lt;strong&gt;médio&lt;/strong&gt; e &lt;strong&gt;alto&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;risco-deentrada&quot;&gt;Risco de entrada&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/db3336cf-7a97-4520-a243-df61da2dff3a.png&quot; alt=&quot;Quais são os riscos do Azure AD Identity Protection — Microsoft Entra | Microsoft Learn&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com uma gama de riscos identificáveis muito maior, os riscos de entrada contém uma categoria a mais que os riscos de usuário. Elas são: &lt;strong&gt;sem riscos&lt;/strong&gt;, &lt;strong&gt;baixo&lt;/strong&gt;, &lt;strong&gt;médio&lt;/strong&gt; e &lt;strong&gt;alto&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plataforma-de-dispositivo&quot;&gt;Plataforma de dispositivo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/57caf495-2c0d-49d2-ab93-b091ad9263fe.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nessa seleção, você poderá escolher quais sistemas operacionais devem ser levados em conta quando o acesso for realizado.&lt;/p&gt;
&lt;p&gt;Essa seleção pode ser útil principalmente se a sua organização utilizar dispositivos de apenas um sistema operacional. Com essa política, podemos identificar acessos não autorizados vindo de dispositivos de fora da organização.&lt;/p&gt;
&lt;h2 id=&quot;locais&quot;&gt;Locais&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/f622429f-c7a0-43b4-ba77-3a6adaf38b9b.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Podemos levar em conta a localização física do usuário que está realizando o acesso. Essa capacidade é muito útil para restringir acesso à aplicações apenas de dentro da rede da empresa.&lt;/p&gt;
&lt;p&gt;Não é escopo desse artigo, mas com o Entra ID nós podemos registrar &lt;em&gt;ranges&lt;/em&gt; de IP que são confiáveis para a empresa e esses podem ser escolhidos dentro da política de acesso condicional.&lt;/p&gt;
&lt;h2 id=&quot;aplicativos-cliente&quot;&gt;Aplicativos cliente&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/701fe0df-9559-4056-b9f8-4f1cdd924e8a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Após escolher qual plataforma de dispositivo, é possível selecionar os diferentes locais onde as aplicações estão sendo executadas (aplicações web e/ou nativas do dispositivo).&lt;/p&gt;
&lt;h2 id=&quot;filtro-para-dispositivos&quot;&gt;Filtro para dispositivos&lt;/h2&gt;
&lt;p&gt;Essa capacidade permite criar regras personalizadas e baseadas em atributos dos dispositivos para aplicação das políticas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/b520fdb7-ab0f-4d7a-a223-19863b792a49.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Aqui está um exemplo de uma política com filtro. A &lt;em&gt;query&lt;/em&gt; acima seleciona dispositivos que NÃO estejam em &lt;em&gt;compliance&lt;/em&gt; com as regras definidas pela empresa. Essa capacidade oferece dezenas de propriedades que podem ser utilizadas e é uma funcionalidade extremamente potente para aumentar a cobertura das suas políticas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;controles-deacesso&quot;&gt;Controles de acesso&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/8439f3b6-5dcb-4d73-8396-c054f1776b40.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Entrando na seção final da nossa política, temos o controle de acesso. Nesse campo nós selecionaremos quais controles serão aplicados aos acessos que tiverem a política aplicada.&lt;/p&gt;
&lt;h2 id=&quot;conceder&quot;&gt;Conceder&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/386a3e6a-3a97-4c53-aeba-def5dd33a203.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Podemos escolher entre &lt;strong&gt;bloquear o acesso&lt;/strong&gt; do usuário ou &lt;strong&gt;permitir o acesso&lt;/strong&gt; e aplicar algum dos controles fornecidos logo em seguida. Você pode selecionar um ou mais controles e no final pode escolher se todos os controles selecionados devem ser aplicados ou se somente um deles é necessário.&lt;/p&gt;
&lt;p&gt;Caso você selecione a opção “requerer mudança de senha” não será possível escolher mais nenhuma outra opção e será requerido que você selecione a força de autenticação como mostra a imagem abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/8f30e3f1-2952-4db6-a170-cb19bf5c8dd9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Essa configuração exigirá que o usuário realize sua autenticação utilizando o método selecionado na lista acima.&lt;/p&gt;
&lt;h2 id=&quot;sessão&quot;&gt;Sessão&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/8bcfa448-c20d-44b6-b8d1-0682775ec41c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O controle de sessão permite impor restrições à usabilidade das aplicações por parte dos usuários.&lt;/p&gt;
&lt;p&gt;Dentre as opções existentes podemos exigir uma re-autenticação na aplicação, tempo de duração das sessões (quanto tempo um usuário pode ficar sem se re-autenticar) e muitas outras opções.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;habilitação-dapolítica&quot;&gt;Habilitação da política&lt;/h1&gt;
&lt;p&gt;Após ter construído sua política, podemos colocá-la em 3 estados possíveis:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/criando-politicas-acesso-condicional/215b80e9-5d22-41a9-8dfe-da67ffe94147.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Somente relatório&lt;/strong&gt;: a política não agirá de acordo com as regras determinadas, ou seja, o usuário não será impactado de forma alguma. Nesse caso, todos os logins e atividades dos usuários passam pela política e são feitos registros (&lt;em&gt;logs&lt;/em&gt;) que informam se a política foi aplicada e de que forma;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ativado&lt;/strong&gt;: a política entrará em ação e todos os seus controles serão aplicados quando necessário;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desativado&lt;/strong&gt;: sua política será criada mas não estará em funcionamento;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Resultado final:&lt;/strong&gt; essa política exigirá que o usuário (&lt;em&gt;User A&lt;/em&gt;) realize a autenticação multifator ao acessar qualquer um dos portais administrativos da Microsoft. O usuário que não tiver nenhum dispositivo de MFA cadastrado, será apresentado com uma página no navegador que conterá a jornada para &lt;em&gt;download&lt;/em&gt; do aplicativo &lt;em&gt;mobile&lt;/em&gt; &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; bem como seu registro para permitir a autenticação.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As políticas de acesso condicional são um grande aliado para você e para sua empresa na luta contra os ciberataques e contra os riscos relacionados às identidades. Utilize-as e proteja seu ambiente de maneira correta e eficiente.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado e que agora se sinta hábil para construir suas &lt;em&gt;policies&lt;/em&gt; sozinho.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Certificate-based Authentication</title><link>https://pedroignacio.dev/post/entraid-cba/</link><guid isPermaLink="true">https://pedroignacio.dev/post/entraid-cba/</guid><description>Em mais um artigo sobre segurança de identidades e acessos, vamos falar sobre o que é a autenticação baseada em certificados, quais os cenários em que pode ser utilizada e as características e peculiaridades de sua implementação. A solução base para ...</description><pubDate>Wed, 17 Jul 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Em mais um artigo sobre segurança de identidades e acessos, vamos falar sobre o que é a autenticação baseada em certificados, quais os cenários em que pode ser utilizada e as características e peculiaridades de sua implementação. A solução base para esse artigo técnico, como sempre, será o &lt;em&gt;IdP&lt;/em&gt; da &lt;em&gt;Microsoft&lt;/em&gt;, o &lt;strong&gt;Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;contexto&quot;&gt;Contexto&lt;/h1&gt;
&lt;p&gt;Temos notado hoje em dia que as senhas em texto plano tem entrado cada vez mais em desuso, com sua utilização desencorajada pelas principais empresas de tecnologia e orgãos reguladores. Com isso, a recomendação frequentemente vista nas empresas é do uso de &lt;em&gt;passwordless&lt;/em&gt;, ou seja, autenticações que não requerem senha.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Para mais informações sobre &lt;em&gt;passwordless&lt;/em&gt;, veja &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://pedroscloudsecurity.com/implementando-authn-passwordless&quot; style=&quot;pointer-events: none&quot;&gt;este artigo&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Dentro das organizações é comum termos uma série de contextos referentes às identidades dos usuários. Temos &lt;strong&gt;dispositivos gerenciados&lt;/strong&gt; (&lt;em&gt;mobile&lt;/em&gt;, &lt;em&gt;notebooks&lt;/em&gt;, &lt;em&gt;desktops&lt;/em&gt;, &lt;em&gt;tablets&lt;/em&gt;, etc.), &lt;strong&gt;redes internas&lt;/strong&gt; (&lt;em&gt;VPNs&lt;/em&gt;, &lt;em&gt;SASEs&lt;/em&gt;, etc.) e &lt;strong&gt;escritórios&lt;/strong&gt;, o que já nos possibilita personalizar o acesso de diferentes maneiras de acordo com o local onde o usuário está, com o dispositivo que está sendo utilizado e de acordo com outros “pontos” de informação que são retirados das suas interações com as aplicações corporativas.&lt;/p&gt;
&lt;p&gt;Organizações com essas características estão bem postadas para utilização de autenticação &lt;em&gt;passwordless&lt;/em&gt;, inclusive fazendo uso de certificados!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;por-quê-usar&quot;&gt;Por quê usar?&lt;/h1&gt;
&lt;p&gt;Habilitar diferentes maneiras de autenticação para seus usuários de acordo como cenário em que se encontram, deixará a jornada deles muito mais simples e agradável, permitindo que foquem na execução das atividades de negócio e trabalhem de maneira mais segura.&lt;/p&gt;
&lt;p&gt;Os diferentes métodos de autenticação disponíveis servem para o mesmo propósito, porém fornecem ganhos diferentes. Um certificado deve ser utilizado em junção a outro fator de autenticação (como por exemplo uma leitura biométrica ou até mesmo um PIN), garantindo que o usuário que está fazendo uso daquele “objeto”, é o &lt;em&gt;owner&lt;/em&gt; do mesmo. Com os certificados em especial devemos implementar um fator de autenticação adicional, visto que o detentor do dispositivo onde o certificado está instalado, o poderá utilizar para acesso aos sistemas da organização.&lt;/p&gt;
&lt;p&gt;Agora que entendemos a peculiaridade de utilizar um certificado como fator de autenticação, gostaria de esclarecer algo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Um certificado não é nada além de um “objeto” que contém informações sobre um ator/agente (não necessariamente humano) e que é utilizado para provar que quem o detém, é quem diz ser. Para as autenticações, o certificado será emitido para o usuário que planeja o utilizar, não sendo válido para outros usuários.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Após esclarermos esse entendimento, vamos falar brevemente sobre como um certificado pode ser utilizado em uma autenticação.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-cba/615e3044-192b-42a9-9665-171a0ff4240c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Um usuário acessa aplicações empresariais conectadas ao &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; através de dispositivos gerenciados (ou pelo menos conhecidos) pela organização. Esses dispositivos, confiáveis, contém certificados criados para o usuário e atribuídos aos dispositivos registrados em seu nome. Esse certificado, junto de outras informações de seu &lt;em&gt;login&lt;/em&gt;, sessão, dispositivo e contexto, é utilizado nas regras de &lt;strong&gt;acesso condicional&lt;/strong&gt; presentes do &lt;em&gt;Entra ID&lt;/em&gt; da empresa.&lt;/p&gt;
&lt;p&gt;É importante comentar que o certificado pode ser utilizado como único fator de autenticação e também como parte de uma autenticação mais rigorosa e forte, exigindo algo a mais para que consiga se autenticar corretamente na aplicação. Como você fará depende do contexto apresentado pela sua empresa, havendo a necessidade de se analisar os requisitos apresentados e de avaliar os possíveis impedimentos técnicos.&lt;/p&gt;
&lt;p&gt;Pensando na implementação dos processos e na habilitação da tecnologia, vamos falar um pouco sobre como o Entra permite esse integração e o que deve ser feito para disponibilizá-la para seus usuários.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-a-solução&quot;&gt;Entendendo a solução&lt;/h1&gt;
&lt;p&gt;Pensando em entender melhor como funciona o fluxo de autenticação de um usuário que utilizará um certificado, podemos ter como base a seguinte imagem:&lt;/p&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/en-us/entra/identity/authentication/media/concept-certificate-based-authentication-technical-deep-dive/how-it-works.png&quot;&gt;https://learn.microsoft.com/en-us/entra/identity/authentication/media/concept-certificate-based-authentication-technical-deep-dive/how-it-works.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;No momento da &lt;strong&gt;autenticação&lt;/strong&gt; do usuário no &lt;em&gt;Entra ID&lt;/em&gt;, o &lt;em&gt;browser&lt;/em&gt; disponibiliza uma caixa de seleção ao usuário para que o mesmo possa selecionar o certificado desejado dos presentes no dispositivo. Uma vez selecionado, certos campos do certificado são validados de acordo com as regras definidas no próprio &lt;em&gt;IdP&lt;/em&gt;. Essa validação faz o &lt;em&gt;match&lt;/em&gt; das informações da conta do usuário no &lt;em&gt;Entra&lt;/em&gt; e do certificado utilizado. Esse processo de &lt;em&gt;matching&lt;/em&gt; de atributos do certificado com a conta do usuário é chamado de &lt;em&gt;&lt;strong&gt;binding&lt;/strong&gt;&lt;/em&gt;. A imagem abaixo oferece uma visão de alguns &lt;em&gt;bindings&lt;/em&gt; pré-configurados:&lt;/p&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/en-us/entra/identity/authentication/media/how-to-certificate-based-authentication/issuer-and-serial-number.png&quot;&gt;https://learn.microsoft.com/en-us/entra/identity/authentication/media/how-to-certificate-based-authentication/issuer-and-serial-number.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Como podemos ver na imagem acima, na seção &lt;em&gt;username binding&lt;/em&gt; é onde devemos configurar o &lt;em&gt;Entra&lt;/em&gt; para referenciar alguns campos do certificado com alguns campos do usuário.&lt;/p&gt;
&lt;p&gt;A coluna “&lt;em&gt;Affinity binding&lt;/em&gt;” define a “força” do atributo que será utilizado no &lt;em&gt;binding&lt;/em&gt;, classificando alguns campos como “baixos” e alguns como “altos”.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-cba/a248f62a-28ce-4308-98be-0e706bffaa57.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Acima estão listados os campos do certificado que podem ser selecionados e qual a “força” de cada um deles. Entenda que por “&lt;em&gt;High affinity&lt;/em&gt; - alta afinidade” nós temos campos que são mais &lt;strong&gt;confiáveis&lt;/strong&gt; e por isso tem valor maior no momento de autenticação do usuário.&lt;/p&gt;
&lt;p&gt;Esses &lt;em&gt;bindings&lt;/em&gt; são importantes pois no momento de autenticação do usuário perante o &lt;em&gt;Entra&lt;/em&gt;, os valores cadastrados no &lt;em&gt;binding&lt;/em&gt; serão validados e levados em conta no momento da avaliação do processo de autenticação.&lt;/p&gt;
&lt;p&gt;A imagem abaixo mostra a visão de uma autenticação via certificado rejeitada pelo &lt;em&gt;Entra&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;![Microsoft Entra certificate-based authentication technical deep dive -  Microsoft Entra ID | Microsoft Learn](&lt;a href=&quot;https://learn.microsoft.com/en-us/entra/identity/authentication/media/concept-certificate-based-authentication-technical-deep-dive/validation-error.png&quot;&gt;https://learn.microsoft.com/en-us/entra/identity/authentication/media/concept-certificate-based-authentication-technical-deep-dive/validation-error.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Os problemas podem ser dos mais variados, &lt;em&gt;affinity bindings&lt;/em&gt; configurados de maneira errônea, certificado vencido, problemas com o certificado, entre outras. Ao receber um erro em seu processo de autenticação, valide o passo a passo realizado, conferindo todas as etapas do processo.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;pontos-de-preocupação&quot;&gt;Pontos de preocupação&lt;/h1&gt;
&lt;p&gt;Como qualquer solução, além de seus pontos positivos, é necessário jogar luz nos pontos negativos.&lt;/p&gt;
&lt;p&gt;Os certificados são extremamente úteis em diversos cenários, mas se implementados de maneira incorreta ou sem os devidos processos definidos, podem apresentar grande risco à sua organização.&lt;/p&gt;
&lt;p&gt;Para que sua implementação tenha sucesso, os &lt;strong&gt;processos&lt;/strong&gt; relacionados à gestão do ciclo de vida dos certificados devem estar maduros e eficientes. É importante que um certificado seja atualizado quando estiver próximo de seu vencimento, que um usuário desligado da organização tenha seu certificado invalidado (o proibindo de utilizá-lo em autenticações subsequentes), que os times de gestão tenham o histórico e as informações relacionadas aos certificados gerados e que todo o processo, desde a geração até a entrega do objeto seja automatizado e “limpo”. Por se tratar de algo que impactará diretamente no dia a dia de trabalho dos funcionários, interrupções no processo e demora nas entregas poderão ser os grandes culpados da improdutividade das equipes, tornando assim a solução inviável.&lt;/p&gt;
&lt;p&gt;Outro ponto importante e que foi mencionado anteriormente é a necessidade de se utilizar o certificado em junção a outra solução. Por estarem “presos” aos dispositivos, um usuário em posse daquela plataforma oferece grande risco aos ativos ali gerenciados. Combinar a autenticação baseada em certificado com uma leitura biométrica do &lt;em&gt;windows hello for business&lt;/em&gt; ou com uma chave &lt;em&gt;FIDO2&lt;/em&gt; ou até com um &lt;em&gt;push&lt;/em&gt; gerado pelo &lt;em&gt;Microsoft Authenticator&lt;/em&gt; no dispositivo móvel do usuário, reduzirá os riscos exponencialmente, mantendo a experiência agradável e tornando o ambiente mais seguro.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;O processo de autenticação da sua empresa não precisa ser moroso e complicado para ser seguro. Utilizando das tecnologias corretas e de processos bem implementados, a experiência dos usuários pode ser muito agradável e com segurança &lt;em&gt;end-to-end&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do artigo e que de alguma forma eu tenha contribuido para a melhora da postura de segurança em seu ambiente.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Azure AD — conceitos básicos</title><link>https://pedroignacio.dev/post/entraid-conceitos-basicos/</link><guid isPermaLink="true">https://pedroignacio.dev/post/entraid-conceitos-basicos/</guid><description>Conhecido como o “substituto” do Active Directory, o Azure AD é a solução de identidade cloud-native da Microsoft. Essa ferramenta é muito mais do que um simples provedor de identidade. Nela temos capacidades de segurança, gestão de dispositivos, aut...</description><pubDate>Mon, 10 Jul 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Conhecido como o “substituto” do &lt;em&gt;Active Directory&lt;/em&gt;, o Azure AD é a solução de identidade &lt;em&gt;cloud-native&lt;/em&gt; da Microsoft. Essa ferramenta é muito mais do que um simples provedor de identidade. Nela temos capacidades de segurança, gestão de dispositivos, autenticação híbrida, federação de aplicações e muito mais.&lt;/p&gt;
&lt;p&gt;Estamos tratando de uma ferramenta poderosíssima, não apenas dentro do escopo Azure mas também fora. Suas capacidades oferecem a possibilidade de gerir, controlar e proteger os recursos a ele conectados.&lt;/p&gt;
&lt;p&gt;Hoje falaremos de alguns conceitos básicos sobre identidades na nuvem pública, sobre algumas funcionalidades fornecidas pela ferramenta e como ela pode ajudar a garantir a boa operação e a segurança do seu ambiente Azure.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;controlando-e-protegendo-recursos-noazure&quot;&gt;Controlando e protegendo recursos no Azure&lt;/h1&gt;
&lt;p&gt;O Azure AD é a porta de entrada para os recursos do Azure. Com ele nós operamos a primeira &lt;a href=&quot;https://medium.com/@predoignacio/defesa-em-profundidade-com-microsoft-azure-7629913c647a&quot;&gt;camada de segurança&lt;/a&gt; dentro da nuvem pública. É nele que realizaremos a autenticação e a autorização de todos os usuários que acessam não somente o console do Azure mas também todas as aplicações federadas no &lt;em&gt;tenant&lt;/em&gt; (o conceito de &lt;em&gt;tenant&lt;/em&gt; será explicado mais pra frente neste mesmo artigo).&lt;/p&gt;
&lt;p&gt;Mas não estamos falando apenas de uma ferramenta de autenticação e autorização. Ele fornece as capacidades para gestão de bases de usuário gigantescas, permitindo às empresas uma melhor governança dos recursos existentes. Com ele podemos gerir usuários, aplicações e até dispositivos (cenário comum em empresas que fornecem aos funcionários dispositivos como laptops e celulares para trabalho).&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;observabilidade&lt;/strong&gt; nunca foi tão importante para as empresas quanto hoje. É essencial que os times de segurança e auditoria possam monitorar e consultar todas as ações realizadas no ambiente. Essas capacidades são entregues de maneira nativa pelo Azure AD. Com ele temos o registro completo dos &lt;em&gt;logins&lt;/em&gt; dos usuários (&lt;em&gt;sign-in logs&lt;/em&gt;)e também o registro das ações realizadas dentro da plataforma por eles (&lt;em&gt;audit logs&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;A ferramenta é extremamente poderosa e essas foram apenas algumas funcionalidades que estão disponíveis para serem utilizadas. Agora vamos falar um pouco sobre algumas funcionalidades e alguns conceitos da solução, para que você consiga entender o básico e para que fique confortável para os próximos artigos sobre o tema.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;tenant&quot;&gt;Tenant&lt;/h1&gt;
&lt;p&gt;Conhecido também como &lt;strong&gt;locatário&lt;/strong&gt; (se você visualiza os recursos em português), representa o Azure AD de uma organização. O &lt;em&gt;tenant&lt;/em&gt; é o “objeto” que centraliza todas as capacidades do Azure AD e é nele que faremos a criação dos usuários, dos grupos, das políticas de segurança, das aplicações federadas e de muitos outros recursos disponíveis.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Devemos entender que uma subscription SEMPRE estará conectada a 1 &lt;em&gt;tenant&lt;/em&gt; do Azure AD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Empresas podem ter mais de 1 &lt;em&gt;tenant&lt;/em&gt; de Azure AD em seu ambiente por diversos motivos (como por exemplo: para executar testes diversos no ambiente) mas não é interessante que exista mais de um &lt;em&gt;tenant&lt;/em&gt; produtivo, pois a operação se tornará muito mais complexa e isso consequentemente aumenta a superfície de ataques, visto que falhas de configuração serão mais comuns.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-conceitos-basicos/2537629f-82df-402b-8c7a-05e1fa1167cf.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O simples desenho acima representa a relação quantitativa entre uma &lt;em&gt;subsciption&lt;/em&gt; e o &lt;em&gt;azure ad tenant&lt;/em&gt;. Uma &lt;em&gt;subscription&lt;/em&gt; SEMPRE confiará em um &lt;em&gt;tenant&lt;/em&gt;, pois ele será o responsável por controlar o acesso à própria &lt;em&gt;subscription&lt;/em&gt; e a todos os recursos que estiverem dentro dela.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante comentar que um &lt;em&gt;tenant&lt;/em&gt; pode estar conectado à várias &lt;em&gt;subscriptions&lt;/em&gt; diferentes ao mesmo tempo, mas uma &lt;em&gt;subscription&lt;/em&gt; só pode estar conectada a um &lt;em&gt;tenant&lt;/em&gt; de cada vez.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-conceitos-basicos/1a2b9816-ccdf-4346-90fa-2c0dfa30ebd0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.devopsschool.com/blog/understanding-tenants-subscriptions-regions-and-geographies-in-azure/&quot;&gt;Understanding Tenants, Subscriptions, Regions and Geographies in Azure — DevOpsSchool.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Este desenho representa bem a relação entre o &lt;em&gt;tenant&lt;/em&gt; e os outros recursos do Azure. Um &lt;em&gt;tenant&lt;/em&gt; pode conter múltiplas &lt;em&gt;subscriptions&lt;/em&gt; (que são estruturas que ficam abaixo dos &lt;em&gt;management groups&lt;/em&gt;) e uma &lt;em&gt;subscription&lt;/em&gt; pode conter múltiplos &lt;em&gt;resource groups&lt;/em&gt; (que são as estruturas lógicas onde efetivamente criamos os recursos).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-conceitos-basicos/241432ac-1b51-4ff3-9bcb-2f1d6709545d.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Uma coisa que devemos deixar clara é: &lt;strong&gt;o &lt;em&gt;tenant&lt;/em&gt; do Azure AD é um recurso apartado das suas &lt;em&gt;subscritptions&lt;/em&gt;&lt;/strong&gt;. O &lt;em&gt;tenant&lt;/em&gt; não é criado e gerenciado como um banco de dados ou um cluster AKS por exemplo. Ele é uma estrutura segregada dos componentes hierárquicos do Azure (&lt;em&gt;root management group&lt;/em&gt;, &lt;em&gt;management group&lt;/em&gt; e &lt;em&gt;subscriptions&lt;/em&gt;).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Explicado o conceito de &lt;em&gt;tenant&lt;/em&gt; e a relação com algumas das outras estruturas do Azure, vamos falar sobre permissionamento na nuvem e explicar um conceito muito famoso chamado RBAC.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;rbac&quot;&gt;RBAC&lt;/h1&gt;
&lt;p&gt;O &lt;em&gt;role based access control&lt;/em&gt; (ou em português, &lt;strong&gt;controle de acesso baseado em função&lt;/strong&gt;) tem como propósito permitir o controle de acesso aos recursos do Azure (e Azure AD) baseado na função que o usuário exercerá.&lt;/p&gt;
&lt;p&gt;Esse modelo de controle garante maior flexibilidade no permissionamento, pois dessa forma os times de segurança podem criar funções que se adaptem aos cargos dos funcionários da empresa e delegar a eles as permissões necessárias para que possam realizar suas atividades.&lt;/p&gt;
&lt;p&gt;Para entendermos melhor o funcionamento das &lt;em&gt;RBACs&lt;/em&gt;, vamos ao exemplo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-conceitos-basicos/e7cb1092-c60a-477a-bfe6-d562253d29b8.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Temos 4 funcionários, como demonstra o desenho acima. O engenheiro é responsável pela criação dos recursos que serão utilizados pelos diversos times e também pela criação das policies de acesso para aumentar a segurança do ambiente. A desenvolvedora é responsável pela construção dos códigos das aplicações, então o acesso necessário para ela é apenas aos recursos da solução, que foram criados pelo engenheiro. A designer não precisa de nenhum acesso dentro da Azure, pois seu trabalho se dá fora dos recursos da plataforma, em ferramentas externas (como Adobe). O último funcionário é responsável por toda a gestão dos acessos, é ele quem criará os usuários, grupos e fará a reinicialização das senhas quando necessário.&lt;/p&gt;
&lt;p&gt;Esse exemplo nos permitiu entender como o &lt;strong&gt;controle de acesso baseado em função&lt;/strong&gt; capacita os times para que gerenciem e forneçam acesso aos recursos da nuvem pública com eficiência e para que adicionalmente, consigam aplicar o princípio do &lt;strong&gt;privilégio mínimo.&lt;/strong&gt; Aplicando esse princípio, diminuímos a chance de termos problemas causados por usuários mal intencionados.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Privilégio mínimo&lt;/strong&gt;: princípio da área de cibersegurança que busca garantir que os usuários detém apenas os acessos NECESSÁRIOS e nada mais.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;funções-do-azure-x-funções-do-azuread&quot;&gt;Funções do Azure x Funções do Azure AD&lt;/h4&gt;
&lt;p&gt;Agora que você entendeu como funcionam as funções (RBAC), é importante saber distinguir as funções do Azure AD e do Azure.&lt;/p&gt;
&lt;p&gt;Como comentado anteriormente, o &lt;em&gt;tenant&lt;/em&gt; do Azure AD e os recursos do Azure são duas coisas diferentes, consequentemente as funções para o controle de acesso também são diferentes entre eles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/active-directory/roles/permissions-reference&quot;&gt;Azure AD RBAC&lt;/a&gt;&lt;/strong&gt;: permissionamento para ações que os usuários poderão executar no &lt;em&gt;tenant&lt;/em&gt;. Essas ações englobam: gerenciar usuários e grupos, criação de políticas de acesso condicional, usuário de &lt;em&gt;helpdesk&lt;/em&gt;, administrador de aplicações, entre dezenas de outras funções;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/role-based-access-control/built-in-roles&quot;&gt;Azure RBAC&lt;/a&gt;&lt;/strong&gt;: as funções do Azure existem para permitir o controle de acesso aos recursos da plataforma, recursos esses como: bancos de dados, filas, tópicos de eventos, cofres de senha, máquinas virtuais, etc. Com as funções do Azure nós podemos controlar quais ações os usuários poderão executar e em qual escopo (recurso, &lt;em&gt;resource group&lt;/em&gt;, &lt;em&gt;subscription&lt;/em&gt; e até &lt;em&gt;management group&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses foram alguns conceitos gerais sobre Azure AD e sobre identidades, para que você pudesse começar a se ambientar com os termos e conceitos que giram em torno do Azure AD. Nos próximos artigos, entraremos no detalhe de algumas funcionalidades da plataforma e buscaremos sempre trazer uma visão de segurança para os apresentados.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha aproveitado a leitura e me coloco a disposição para responder suas dúvidas.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Utilizando a lib @Identity para autenticação no consumo de serviços no Azure</title><link>https://pedroignacio.dev/post/entraid-identity-lib-javascript-sdk/</link><guid isPermaLink="true">https://pedroignacio.dev/post/entraid-identity-lib-javascript-sdk/</guid><description>Com a proposta de facilitar a autenticação e autorização para consumo dos recursos no Azure, a Microsoft disponibiliza de uma library que permite implementar essas funcionalidades de uma maneira simples.

Entendendo a lib
Como comentado anteriormente...</description><pubDate>Tue, 21 Nov 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Com a proposta de facilitar a autenticação e autorização para consumo dos recursos no Azure, a Microsoft disponibiliza de uma &lt;em&gt;library&lt;/em&gt; que permite implementar essas funcionalidades de uma maneira simples.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-a-lib&quot;&gt;Entendendo a lib&lt;/h1&gt;
&lt;p&gt;Como comentado anteriormente, a proposta da &lt;em&gt;lib&lt;/em&gt; é disponibilizar uma maneira simples de &lt;strong&gt;autenticar&lt;/strong&gt; e &lt;strong&gt;autorizar&lt;/strong&gt; o consumo à partir de um serviço aos recursos do Azure.&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;lib&lt;/em&gt; foi construída de uma maneira onde a sua implementação e a promoção do &lt;em&gt;software&lt;/em&gt; para os estágios do desenvolvimento (desenvolvimento, homologação e produção, em sua maioria) é simples e escalável.&lt;/p&gt;
&lt;p&gt;Com ela, podemos autenticar a aplicação utilizando uma &lt;em&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt;&lt;/em&gt; ou também utilizando as credenciais de uma &lt;em&gt;&lt;strong&gt;Service Principal&lt;/strong&gt;&lt;/em&gt;. As classes existentes facilitam a integração com qualquer um dos tipos de identidade.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-identity-lib-javascript-sdk/86002666-5a8c-42d6-9e2e-9284bb9f4be8.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Acima, vemos um exemplo de alto nível sobre a integração dos diferentes tipos de identidade existentes na plataforma e o consumo de diferentes recursos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Os recursos no destino não se limitam apenas a esses. Todos os recursos da plataforma podem ter seu consumo controlado através da atribuição das roles no portal de IAM, na console do próprio recurso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Uma informação interessante de se mencionar é: as classes disponíveis implementam as interações com o &lt;em&gt;IdP&lt;/em&gt; (&lt;em&gt;Identity Provider&lt;/em&gt;) baseadas nos modelos dos protocolos &lt;strong&gt;OAuth 2.0&lt;/strong&gt; e &lt;strong&gt;OIDC&lt;/strong&gt; (&lt;em&gt;Open ID Connect&lt;/em&gt;), então ao estudar a documentação da &lt;em&gt;lib&lt;/em&gt;, você verá diversas menções a termos como “&lt;em&gt;public or confidential client&lt;/em&gt;”, que remeterão o desenvolvedor aos conceitos dos protocolos mencionados neste parágrafo. Ter um conhecimento mínimo de como esses protocolos funcionam, permitirá ao desenvolvedor compreender as interações entre aplicação de &lt;em&gt;IdP&lt;/em&gt; de maneira mais simples, porém nenhum conhecimento prévio é necessário para utilização da &lt;em&gt;lib&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;implementando-ao-código&quot;&gt;Implementando ao código&lt;/h1&gt;
&lt;p&gt;Já que falamos brevemente sobre o funcionamento da &lt;em&gt;lib&lt;/em&gt;, vamos aos exemplos em código.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Os exemplos deste artigo serão escritos utilizando Javascript, porém o conceito das classes e a utilização da lib se aplica a qualquer outra tecnologia que você desejar utilizar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;instalando-a-lib&quot;&gt;Instalando a lib&lt;/h2&gt;
&lt;p&gt;O primieiro passo para iniciarmos a utilização dos recursos, é a instalação da &lt;em&gt;lib&lt;/em&gt; em seu projeto. Isso pode ser feito utilizando o comando:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;npm install &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;azure&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;identity&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Para o comando acima funcionar, é necessário que você tenha inicializado seu projeto node antes de seguir com a instalação dos pacotes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;classes-para-autenticação&quot;&gt;Classes para autenticação&lt;/h2&gt;
&lt;p&gt;Após realizar a instalação da &lt;em&gt;lib&lt;/em&gt;, é hora de decidirmos qual tipo de classe iremos utilizar.&lt;/p&gt;
&lt;p&gt;A Microsoft disponibiliza uma “matriz” para a tomada de decisão sobre qual credencial utilizar. Para facilitar o vosso entendimento, materializei a matriz no diagrama abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/entraid-identity-lib-javascript-sdk/80e55903-6385-4e96-af8d-a57ab035c0af.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como podemos visualizar acima, apenas com duas perguntas é possível compreender qual classe deverá ser utilizada de acordo com o seu caso de uso.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A classe “DefaultAzureCredential” deve ser criada caso seu desejo seja de que o sistema interprete qual o melhor tipo de credencial a ser utilizada.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;importando-as-classes&quot;&gt;Importando as classes&lt;/h2&gt;
&lt;p&gt;Para importar as classes para o seu projeto, utilizamos a sintaxe padrão do &lt;em&gt;Javascript&lt;/em&gt; em projetos com &lt;em&gt;NodeJS&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;EnvironmentCredential&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;ManagedIdentityCredential&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;DefaultAzureCredential&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; }&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;@azure/identity&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As classes acima foram importadas apenas como exemplo, é necessário que você importe apenas as classes que serão utilizadas em seu projeto.&lt;/p&gt;
&lt;h2 id=&quot;implementando-as-classes-importadas-acima&quot;&gt;Implementando as classes importadas acima&lt;/h2&gt;
&lt;p&gt;Para fins de simplicidade no tutorial, utilizaremos apenas as classes que foram importadas no trecho de código acima. Caso você precise utilizar alguma das outras classes que não tiveram sua implementação tratada neste artigo, minha sugestão é a leitura da página oficial do &lt;em&gt;github&lt;/em&gt; para o SDK do &lt;strong&gt;Entra ID&lt;/strong&gt; para &lt;em&gt;Javacript&lt;/em&gt;: &lt;a href=&quot;https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md&quot;&gt;https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;environmentalcredential&quot;&gt;EnvironmentalCredential&lt;/h3&gt;
&lt;p&gt;Essa classe é completamente &lt;strong&gt;dependente&lt;/strong&gt; da criação de uma &lt;em&gt;&lt;strong&gt;Service Principal&lt;/strong&gt;&lt;/em&gt;. &lt;em&gt;Service Principals&lt;/em&gt; podem ser criadas através da linha de comando ou através dos portais adminstrativos (Portal do Entra ou Portal do Azure).&lt;/p&gt;
&lt;p&gt;Para criar uma &lt;em&gt;service principal&lt;/em&gt; pela linha de comando, utilize o seguinte &lt;em&gt;script&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;az&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; ad&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; sp&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; create-for-rbac&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; --name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;name for service principal&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A execução do comando acima gerará um retorno como o exemplo abaixo:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  &quot;&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;appId&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  &quot;&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;displayName&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;name for service principal&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  &quot;&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;password&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  &quot;&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;tenant&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A única propriedade que você não fará uso é o “&lt;em&gt;displayName&lt;/em&gt;”, todas as outras serão utilizadas como variáveis de ambiente.&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// Essa classe busca certas variáveis de ambiente para criação do objeto&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// AZURE_TENANT_ID e AZURE_CLIENT_ID são variáveis necessárias&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// AZURE_CLIENT_SECRET é a primeira variável que será buscada&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// AZURE_CLIENT_CERTIFICATE_PATH é a segunda variável buscada&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// AZURE_USERNAME e AZURE_PASSWORD será o par da última tentativa&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; envcred &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; EnvironmentCredential&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;O trecho de código acima mostra a simplicidade da implementação deste tipo de classe. Bastando inicializar o objeto, o SDK contém a inteligência necessária para buscar as informações necessárias.&lt;/p&gt;
&lt;p&gt;Em tempo de desenvolvimento, talvez seja necessário criar um arquivo “&lt;em&gt;.env&lt;/em&gt;” para armazenar as variáveis de ambiente. Caso o projeto esteja utilizando um serviço como o &lt;em&gt;Azure Functions&lt;/em&gt;, o recurso tem um próprio modelo de declaração de variáveis de ambiente (sendo nas &lt;em&gt;Azure Functions&lt;/em&gt;, o arquivo &lt;em&gt;&lt;strong&gt;local.settings.json&lt;/strong&gt;&lt;/em&gt;), então não se faz necessária a criação do arquivo de variáveis.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Utilizando NodeJS, para carregar as variáveis de ambiente para o seu código, é necessário utilizar um pacote como o “dotenv”, que buscará um arquivo de extensão “.env” e carregará as variáveis de ambiente no seu programa, podendo acessá-las diretamente através do objeto &lt;strong&gt;process.env&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Serviços recomendados para utilizar essa classe&lt;/strong&gt;: &lt;em&gt;Azure Functions&lt;/em&gt;, &lt;em&gt;Azure App Service&lt;/em&gt;, &lt;em&gt;Azure Virtual Machines&lt;/em&gt;, entre outros serviços disponíveis.&lt;/p&gt;
&lt;h3 id=&quot;managedidentitycredential&quot;&gt;ManagedIdentityCredential&lt;/h3&gt;
&lt;p&gt;Agora falando das identidades totalmente gerenciadas, temos as &lt;em&gt;Managed Identities&lt;/em&gt;. O interessante dessas credenciais é que não precisaremos criar nenhum tipo de segredo, muito menos de &lt;em&gt;Service Principal&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Quando falamos de &lt;em&gt;Managed Identities&lt;/em&gt; existem dois tipos: &lt;em&gt;&lt;strong&gt;System-Assigned&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;User-Assigned&lt;/strong&gt;&lt;/em&gt;. Os dois tipos compartilham o conceito, uma credencial completamente gerada pela plataforma, a diferença entre elas é o ciclo de vida, onde na &lt;em&gt;System-Assigned&lt;/em&gt; temos uma credencial que será excluída no fim do ciclo de vida do recurso enquanto com as &lt;em&gt;User-Assigned&lt;/em&gt; as credenciais devem ser excluídas de maneira explicita.&lt;/p&gt;
&lt;p&gt;Para utilizar uma &lt;em&gt;Managed Identity&lt;/em&gt; com a &lt;em&gt;lib&lt;/em&gt;, criamos uma instância da seguinte classe:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// Não é necessário a configuração de nenhum tipo de parâmetro&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; mngdcred &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; ManagedIdentityCredential&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Essa instância de classe funcionará apenas quando o desenvolvimento estiver sendo feito diretamente no recurso, possibilitando que o objeto recupere as informações da &lt;em&gt;Managed Identity&lt;/em&gt; atribuída.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Serviços recomendados para utilizar essa classe&lt;/strong&gt;: &lt;em&gt;Azure Functions&lt;/em&gt;, &lt;em&gt;Azure Virtual Machines&lt;/em&gt;, &lt;em&gt;Azure App Service&lt;/em&gt;, etc.&lt;/p&gt;
&lt;h3 id=&quot;defaultazurecredential&quot;&gt;DefaultAzureCredential&lt;/h3&gt;
&lt;p&gt;Com a proposta de deixar o modelo de autenticação mais flexível, temos a classe &lt;em&gt;DefaultAzureCredential&lt;/em&gt;. Essa classe não expõe nenhum modelo de autenticação de maneira explícita, ela abstrai o modelo de autenticação e autentica o as chamadas com as informações que tem disponível (a classe buscará informações na seguinte ordem: &lt;strong&gt;variáveis de ambiente&lt;/strong&gt;, &lt;strong&gt;service principal&lt;/strong&gt;, &lt;strong&gt;managed identity&lt;/strong&gt;, &lt;strong&gt;azure cli&lt;/strong&gt;, &lt;strong&gt;azure powershell&lt;/strong&gt; e &lt;strong&gt;azure developer cli&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;Para utilizar a classe, a instanciamos da seguinte forma:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; dfcred &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; DefaultAzureCredential&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A instância da classe criada, nos permitirá consumir os recursos da plataforma passando a variável onde a armazenamos como parâmetro na chamada dos métodos!&lt;/p&gt;
&lt;h2 id=&quot;utilizando-a-identidade-para-consumo-dos-recursos-ex-azure-service-bus&quot;&gt;Utilizando a identidade para consumo dos recursos (ex: Azure Service Bus)&lt;/h2&gt;
&lt;p&gt;Para exemplificarmos o funcionamento dessa &lt;em&gt;lib&lt;/em&gt;, vamos realizar um breve teste enviando mensagens para uma instância do &lt;em&gt;Azure Service Bus&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; DefaultAzureCredential&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; }&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;@azure/identity&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; ServiceBusClient&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; }&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;@azure/service-bus&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; messages &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  {&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; body&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Albert Einstein&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  {&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; body&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Werner Heisenberg&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  {&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; body&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Marie Curie&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; fullyQualifiedNamespace &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;&amp;#x3C;BUS NAMESPACE&gt;.servicebus.windows.net&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; credential &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; DefaultAzureCredential&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; queueName &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;&amp;#x3C;QUEUE NAME&gt;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; main&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sbClient&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; ServiceBusClient&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;fullyQualifiedNamespace&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; credential&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sbClient&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;createSender&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;queueName&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;  try&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;    let&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; batch&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;createMessageBatch&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; i&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F78C6C&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; i&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; messages&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; i&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;batch&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;tryAddMessage&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;messages&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;])) &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;        await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;sendMessages&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;batch&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;        batch&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;createMessageBatch&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;batch&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;tryAddMessage&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;messages&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;])) &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;          throw&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt; Error&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Message too big to fit in a batch&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;sendMessages&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;batch&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;    console&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Sent a batch of messages to the queue: &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;queueName&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sender&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  }&lt;/span&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt; finally&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; sbClient&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF;font-style:italic&quot;&gt;err&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt; =&gt;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;  console&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;Error occurred: &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; err&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;  process&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;exit&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#F78C6C&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;O código acima foi retirado do repositório oficial da Microsoft para a &lt;em&gt;SDK&lt;/em&gt; do &lt;em&gt;Service Bus&lt;/em&gt; para &lt;em&gt;Javascript&lt;/em&gt;. Ele contém apenas algumas modificações, para redução do tamanho do arquivo.&lt;/p&gt;
&lt;p&gt;Neste &lt;em&gt;snippet&lt;/em&gt; de código, utilizamos a classe “coringa” para realizar a autenticação da aplicação, porém de acordo com a sua necessidade, você pode utilizar qualquer uma das classes citadas anteriormente.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Repare que ao instânciar o objetdo do ServiceBusClient nós passamos como segundo parâmetro a instância da nossa autenticação. Esse modelo será utilizado para o consumo de qualquer outro serviço de plataforma e também para qualquer tipo de classe de autenticação escolhida.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;decidindo-entre-as-diferentes-classes&quot;&gt;Decidindo entre as diferentes classes&lt;/h1&gt;
&lt;p&gt;Neste texto abordamos apenas as classes que permitem a autenticação do consumo em recursos SEM interação com o usuário.&lt;/p&gt;
&lt;p&gt;Como definido no fluxo &lt;em&gt;OAuth 2.0&lt;/em&gt; e &lt;em&gt;OIDC&lt;/em&gt;, chamadas de API em nome do usuário devem ter o consentimento explícito do ator que está utilizando a aplicação, por isso que para aplicações executadas no &lt;em&gt;browser&lt;/em&gt;, as classes utilizadas são implementadas com o fluxo diferenciado.&lt;/p&gt;
&lt;p&gt;Agora, para as aplicações sem interação com o usuário, como é o caso deste exemplo que fizemos ao longo do artigo, as classes abordadas servirão muito bem.&lt;/p&gt;
&lt;p&gt;O ponto central para a tomada de decisão sobre qual classe utilizar deve ser: &lt;strong&gt;quanto controle você deseja ter sobre o objeto de autenticação&lt;/strong&gt;?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Utilizar uma classe que abstrai a implementação da autenticação, como é o caso da &lt;em&gt;DefaultAzureCredentials&lt;/em&gt;, também retira uma parcela do poder de personalização do desenvolvedor, em troca, o mesmo não precisa se preocupar com nenhum tipo de configuração adicional.Caso seja importante que você tenha acesso a certas informações fornecidas pela credencial, é recomendado que você siga com a implementação de alguma das outras classes abordadas no texto!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo! O consumo seguro dos recursos em nuvem é extremamente necessário e importante, e acima de tudo, simples e efetivo, quando é possível usufruir de uma &lt;em&gt;lib&lt;/em&gt; que permite a implementação dos métodos de maneira efetiva.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Evitando o compartilhamento de dados sensíveis com o Purview Communication Compliance</title><link>https://pedroignacio.dev/post/evitando-o-compartilhamento-de-dados-sensiveis-com-o-purview-communication-compliance/</link><guid isPermaLink="true">https://pedroignacio.dev/post/evitando-o-compartilhamento-de-dados-sensiveis-com-o-purview-communication-compliance/</guid><description>A lista de ferramentas de comunicação e produtividade corporativas cresce a cada dia nos chamados &quot;pacotes empresariais&quot;, como o Microsoft Office 365. Empresas centralizam as comunicações em soluções como o Microsoft Teams, que acaba sendo utilizado ...</description><pubDate>Wed, 07 Feb 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A lista de ferramentas de comunicação e produtividade corporativas cresce a cada dia nos chamados “pacotes empresariais”, como o &lt;em&gt;&lt;strong&gt;Microsoft Office 365&lt;/strong&gt;&lt;/em&gt;. Empresas centralizam as comunicações em soluções como o &lt;em&gt;&lt;strong&gt;Microsoft Teams&lt;/strong&gt;&lt;/em&gt;, que acaba sendo utilizado por funcionários, terceirizados, convidados e mais. Diante disso, um desafio é apresentado: como evitar o compartilhamento/vazamento de informações sensíveis entre os usuários? Para isso, nós utilizamos o &lt;em&gt;&lt;strong&gt;Communication Compliance&lt;/strong&gt;&lt;/em&gt;, solução parte do &lt;em&gt;&lt;strong&gt;Microsoft Purview&lt;/strong&gt;&lt;/em&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-o-purview&quot;&gt;O que é o Purview?&lt;/h1&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/pt-br/purview/media/purview-solution-areas.png&quot;&gt;https://learn.microsoft.com/pt-br/purview/media/purview-solution-areas.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Parte do &lt;strong&gt;Microsoft 365&lt;/strong&gt;, o &lt;strong&gt;Purview&lt;/strong&gt; é a solução que centraliza todas as atividades relacionadas a &lt;em&gt;compliance&lt;/em&gt;, risco e governança de dados. Com essa solução nós podemos implementar políticas e controles contra vazamento de dados, classificação de informações, restrições no compartilhamento de arquivos e muitos outros recursos. Tudo sempre atrelado aos &lt;strong&gt;dados&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Como agentes de segurança, o &lt;strong&gt;Purview&lt;/strong&gt; é um grande aliado dos nossos times pois permite que tenhamos uma visão centralizada e unificada de como os usuários das nossas sosluções estão compartilhando informações utilizando as ferramentas corporativas. Em mercados altamente regulados e com alta taxa de informações sensíveis (como o financeiro, saúde e governamental), é importante conseguirmos identificar o uso e compartilhamento de informações confidenciais com o intuito de reduzir possíveis danos (financeiros e de imagem) à nossa organização.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/evitando-o-compartilhamento-de-dados-sensiveis-com-o-purview-communication-compliance/07b667a2-475d-43bc-9dd7-9a7e09e9a966.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Somado às capacidades do &lt;strong&gt;Office 365&lt;/strong&gt;, o Purview também se integra com as &lt;em&gt;Subscriptions&lt;/em&gt; do seu &lt;em&gt;tenant&lt;/em&gt; do &lt;strong&gt;Azure&lt;/strong&gt; e com os &lt;em&gt;workspaces&lt;/em&gt; do &lt;strong&gt;Microsoft Fabric&lt;/strong&gt; (como mostra a imagem acima) para construir um catálogo dos dados contidos nesses espaços e permitir a visualização dos ambientes conectados.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-communication-compliance&quot;&gt;Entendendo o communication compliance&lt;/h1&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/pt-br/purview/media/communication-compliance-workflow.png&quot;&gt;https://learn.microsoft.com/pt-br/purview/media/communication-compliance-workflow.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Pensando no compartilhamento de informações, o &lt;strong&gt;Purview&lt;/strong&gt; nos disponibiliza uma solução preparada para executar as tarefas de identificação de dados sensíveis e compartilhamento de informações confidenciais entre usuários. Essa solução é o &lt;strong&gt;Communication Compliance&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Communication Compliance&lt;/strong&gt; funciona a base de &lt;strong&gt;políticas&lt;/strong&gt; que tem o intuito de identificar informações compartilhadas em diversas ferramentas, entre públicos diversos e com padrões cadastrados, para que a busca seja assertiva em seu retorno.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Podemos implementar políticas já existentes tal como criar nossas políticas personalizadas, visando identificar informações específicas no contexto da nossa organização.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Durante a configuração de uma política (seja ela pronta ou customizada), conseguimos direcionar o monitoramento para grupos específicos de usuários (recomendado para testes) ou para todos os usuários do &lt;em&gt;tenant&lt;/em&gt; (configuração produtiva), escolher revisores dos alertas gerados, selecionar em quais soluções do &lt;strong&gt;Office 365&lt;/strong&gt; essa política será aplicada e por fim a condição de detecção, onde definimos o que a nossa política identificará.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Nessa última sessão, nós podemos escolher entre uma série de categorias pré-existentes, que utilizarão os modelos de identificação treinados pela Microsoft para realizar o monitoramento e o &lt;em&gt;match&lt;/em&gt; das condições configuradas.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Com as políticas configuradas e ativadas, o monitoramento do ambiente será iniciado e caso haja um &lt;em&gt;match&lt;/em&gt; com as condições definidas, um alerta será criado e poderá ser revisado e solucionado pelos usuários indicados no momento de configuração da política.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;políticas-anti-vazamento-de-dados&quot;&gt;Políticas anti-vazamento de dados&lt;/h1&gt;
&lt;p&gt;Para podermos extrair o máximo do &lt;strong&gt;Communication Compliance&lt;/strong&gt; e protegermos nossa organização da melhor maneira possível, podemos utilizar algumas das políticas “prontas” para iniciarmos o controle contra o compartilhamento de informações sensíveis.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/evitando-o-compartilhamento-de-dados-sensiveis-com-o-purview-communication-compliance/138ccfaf-94a0-4ee2-a927-aae56a97d5a8.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima representa a lista de políticas padrão existentes no &lt;strong&gt;Communication Compliance&lt;/strong&gt;. Pensando em uma estratégia anti-vazamento de dados, nós devemos ativar as políticas de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detecção de dados sensíveis;&lt;/li&gt;
&lt;li&gt;Detecção de informações regulatórias (caso sua empresa seja do ramo financeiro);&lt;/li&gt;
&lt;li&gt;Detecção de conflito de interesses.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Somado à essas, temos também as políticas customizadas, que nos permitirão implementar as condições com maior flexibilidade (um bom caso de uso das políticas customizadas é quando temos uma série de palavras chave que precisamos monitorar, nesse caso nós podemos realizar o &lt;em&gt;upload&lt;/em&gt; de um arquivo que contenha essas informações para que sejam monitoradas).&lt;/p&gt;
&lt;p&gt;Com as políticas customizadas, podemos configurar uma série de condições que precisam ser atendidas para que o alerta seja disparado (todas as condições ou apenas algumas delas), além de termos a possibilidade de trabalharmos com &lt;strong&gt;análise de texto em imagens&lt;/strong&gt;, &lt;strong&gt;tamanho de arquivos&lt;/strong&gt;, &lt;strong&gt;domínios dos destinatários&lt;/strong&gt;, &lt;strong&gt;tipos de arquivos&lt;/strong&gt;, &lt;strong&gt;tamanho da mensagem&lt;/strong&gt;, entre outras condições!&lt;/p&gt;
&lt;p&gt;Pensando em uma estratégia corporativa para a criação e configuração das políticas, devemos configurar condições básicas de monitoramento, que visam a identificação de categorias de dados sensíveis “comuns” e também precisamos estrutar condições que estejam adequadas às operações da empresa em que trabalhamos, para que possamos identificar informações sensíveis das atividades de negócio que podem estar sendo compartilhadas de maneira &lt;em&gt;non-compliant&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Monitorar os canais de comunicação da sua empresa é extremamente importante. A grande quantidade de informações confidenciais e sensíveis que lidamos no dia a dia exige que políticas robustas de monitoramento e detecção estejam implementadas para evitar danos à imagem e ao resultado da empresa.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado e que eu tenha conseguido te mostrar as posssibilidades desse recurso e como podemos fortalecer nossa estratégia de segurança com ele.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Como é fazer uma prova de certificação em casa?</title><link>https://pedroignacio.dev/post/fazendo-certificacoes-em-casa/</link><guid isPermaLink="true">https://pedroignacio.dev/post/fazendo-certificacoes-em-casa/</guid><description>Todo o processo envolvendo certificações pode gerar estresse no candidato. Você precisa agendar a prova, se capacitar e se manter calmo no momento de realização do exame (que é a parte mais complicada). Para diminuir um pouco a tensão, você tem a opç...</description><pubDate>Mon, 07 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Todo o processo envolvendo certificações pode gerar estresse no candidato. Você precisa agendar a prova, se capacitar e se manter calmo no momento de realização do exame (que é a parte mais complicada). Para diminuir um pouco a tensão, você tem a opção de realizar a prova em um ambiente conhecido e confortável, mas nem tudo é o que parece.&lt;/p&gt;
&lt;p&gt;As certificações cumprem um papel importantíssimo na indústria de tecnologia. Elas são utilizadas para validar os conhecimentos e experiências dos aplicantes e são uma forma muito efetiva para empresas com vagas de emprego abertas que querem captar certos perfis de candidatos. E o primeiro passo para conquistar sua certificação e ficar em evidência no mercado é &lt;strong&gt;agendar a prova&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;agendando-a-certificação&quot;&gt;Agendando a certificação&lt;/h1&gt;
&lt;p&gt;O primeiro passo para realizar o exame de certificação é agendá-lo. Se pegarmos as certificações das empresas de tecnologia mais relevantes no mercado (como &lt;em&gt;Microsoft&lt;/em&gt; e &lt;em&gt;Amazon&lt;/em&gt;), elas utilizarão empresas terceiras (mediadoras) para realizar a aplicação do exame.&lt;/p&gt;
&lt;h2 id=&quot;primeiro-passo-selecionando-uma-empresa-certificadora&quot;&gt;Primeiro passo: selecionando uma empresa certificadora&lt;/h2&gt;
&lt;p&gt;À primeira vista as empresas certificadoras parecem não ter nenhuma diferença entre elas. Não existe uma lista que fale das diferentes empresas certificadoras e dos seus diferentes recursos disponíveis (até agora). Nesse texto vou comentar sobre as duas empresas mais populares no mercado (PearsonVUE e PSI) e te fornecer insumos para você decidir qual ferramenta escolher.&lt;/p&gt;
&lt;p&gt;Ao entrar na página oficial da certificação, você será apresentado com as empresas aplicadoras disponíveis, como mostra a imagem abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/fazendo-certificacoes-em-casa/845710a3-edc7-4fd7-ac7e-b08dc3646dbc.png&quot; alt=&quot;Página de agendamento da certificação SC-100 da Microsoft&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Neste caso, a Microsoft dispõe apenas de uma empresa certificadora, porém pode ser que a certificação de sua escolha tenha mais de uma opção disponível.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dentro do site das empresas, pode ser que você seja apresentado com duas (ou mais) opções para aplicação do seu teste. Isso vai depender da empresa escolhida: você pode fazer o teste &lt;strong&gt;online&lt;/strong&gt; ou em um &lt;strong&gt;centro de testes&lt;/strong&gt;. A imagem abaixo mostra isso:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/fazendo-certificacoes-em-casa/4693916a-ea72-4a3d-82f1-9132d96e8d44.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Caso selecione a opção do &lt;strong&gt;centro de testes&lt;/strong&gt;, você deverá selecionar uma localização oficial disponível próxima de você. O teste feito de maneira presencial é aplicado em um ambiente controlado pela empresa certificadora, então você não precisará seguir todos os “protocolos” mencionados mais pra frente quando falarmos sobre as provas online.&lt;/p&gt;
&lt;p&gt;Uma outra vantagem é o idioma falado pelos instrutores. Nos testes online você precisa escolher entre a lista de idiomas disponíveis, já no centro de testes não.&lt;/p&gt;
&lt;h2 id=&quot;segundo-passo-escolher-uma-data-ehorário&quot;&gt;Segundo passo: escolher uma data e horário&lt;/h2&gt;
&lt;p&gt;Após selecionar a forma de aplicação da prova, chegou a hora de decidir uma data e um horário.&lt;/p&gt;
&lt;p&gt;Você pode escolher de que forma os horários são apresentados para você e pode selecionar também o fuso horário no qual você se encontra.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Não se preocupe! Caso precise ou queria trocar de dia e horário, posteriormente você poderá, contanto que seja dentro do tempo determinado pela empresa. Por isso, fique atento às informações apresentadas à você durante o agendamento da prova. Algumas empresas permitem que você troque a data do teste até 24 horas antes, porém algumas exigem que seja feito em até 48 horas precedentes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;terceiro-e-último-passo-confirmar-oteste&quot;&gt;Terceiro (e último) passo: confirmar o teste&lt;/h2&gt;
&lt;p&gt;Após escolher como fará a prova, a data e o horário, você poderá confirmar seu registro.&lt;/p&gt;
&lt;p&gt;Esse último passo normalmente envolve aceitar uma série de condições e termos da empresa certificadora, então &lt;strong&gt;leia com bastante cuidado&lt;/strong&gt; qualquer campo que requeira seu consentimento.&lt;/p&gt;
&lt;p&gt;Também faz parte da última etapa o pagamento. Se você estiver utilizando um voucher de desconto, você poderá inseri-lo no final do processo, antes de proceder para o &lt;em&gt;checkout&lt;/em&gt; da compra.&lt;/p&gt;
&lt;p&gt;Ao finalizar o agendamento de seu exame, você receberá em seu e-mail cadastrado, informações de confirmação da compra. São informações sobre o exame, data e hora, entre outros avisos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;requisitos-básicos&quot;&gt;Requisitos básicos&lt;/h1&gt;
&lt;p&gt;Os requisitos para se fazer uma prova online não são todos técnicos. Você precisará basicamente de um &lt;strong&gt;computador com câmera&lt;/strong&gt;, &lt;strong&gt;microfone&lt;/strong&gt; e &lt;strong&gt;auto falantes&lt;/strong&gt; e talvez de um celular para realizar uma das etapas de verificação.&lt;/p&gt;
&lt;p&gt;Fora os requisitos de dispositivos que foram mencionados a cima, você também deve ter em mãos um &lt;strong&gt;documento oficial com foto&lt;/strong&gt;. Esse é a única coisa além dos requisitos da sua máquina que você PRECISA TER em mãos para fazer o teste. Não será possível iniciar o teste sem um documento.&lt;/p&gt;
&lt;p&gt;Os outros requisitos dizem respeito ao ambiente onde você realizará o teste. Aqui estão eles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Você deve estar em uma mesa que não tenha nada além do computador e do documento sobre ela;&lt;/li&gt;
&lt;li&gt;Não é permitido que você tenha televisores externos próximos ao local do exame;&lt;/li&gt;
&lt;li&gt;Não é permitido o uso de fones de ouvido;&lt;/li&gt;
&lt;li&gt;O ambiente onde está realizando o teste deve ser isento de sons externos;&lt;/li&gt;
&lt;li&gt;No momento de início da prova, seu aparelho de celular deve estar fora do alcance das mãos;&lt;/li&gt;
&lt;li&gt;Você deve encerrar todas as aplicações que estão abertas em seu computador, deixando apenas o essencial para a realização do teste;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Você deve manter sua câmera sempre aberta, estando sempre ao centro da imagem;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Você não pode em momento algum gesticular, ler em voz alta ou tampar a visão da sua boca.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses dois últimos requisitos podem ter gerado certa surpresa. Se você está fazendo pela primeira vez uma prova online, saiba que o motivo de você precisar ter a câmera aberta e manter sua boca e rosto desobstruídos, é porque durante todo o exame, você terá um instrutor da empresa o monitorando, garantindo que você não tente fraudar a prova.&lt;/p&gt;
&lt;p&gt;O não cumprimento de algum desses requisitos gera motivos para cancelar sua prova, então respeite-os e fique atento com possíveis problemas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;fazendo-a-provaonline&quot;&gt;Fazendo a prova online&lt;/h1&gt;
&lt;p&gt;Após ter agendado seu exame e estar certo de que está cumprindo todos os requisitos acima mencionados, chegou a hora de falarmos sobre a experiência de fazer o teste online.&lt;/p&gt;
&lt;p&gt;Como comentei anteriormente, existem diferentes empresas certificadoras e cada uma delas tem sua peculiaridade. Em minha experiência com certificações, utilizei duas das plataformas mais comuns: &lt;strong&gt;PearsonVUE&lt;/strong&gt; e &lt;strong&gt;PSI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/fazendo-certificacoes-em-casa/a246b08f-7797-4d79-9c80-5dc16a968b17.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;pearsonvue&quot;&gt;PearsonVUE&lt;/h2&gt;
&lt;p&gt;Ao escolher a PearsonVUE você precisará baixar em seu computador uma aplicação chamada &lt;em&gt;&lt;strong&gt;OnVUE&lt;/strong&gt;&lt;/em&gt;. Essa aplicação será utilizada por você para fazer o teste. Quando chegar o momento de fazer a prova, você executará essa aplicação e fará toda a jornada necessária indicada nele. Logo após finalizar o agendamento, será sugerido que você realize um teste para confirmar se o seu computador é compatível com os requisitos da empresa para a realização da prova. Nesse momento, caso não tenha o aplicativo instalado, você será levado à tela de download.&lt;/p&gt;
&lt;p&gt;Após finalizar o download da aplicação, você pode executá-la e realizar o teste, que consiste de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Teste de microfone&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teste de câmera&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teste de alto-falantes&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Próximo do inicio da prova, você poderá entrar na aplicação e iniciar os preparativos 30 minutos antes do horário de agendamento (são realmente os 30 minutos que precedem o início do seu teste).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/fazendo-certificacoes-em-casa/b1c5ad58-2f79-40dd-b42d-a5d36335346b.jpeg&quot; alt=&quot;Print do e-mail enviado automaticamente após agendamento da prova.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Note na imagem acima o foco nos dois links “Test your system” e “Check in to start exam”. Ambos os links executarão automaticamente o &lt;em&gt;OnVUE&lt;/em&gt; em seu computador, o primeiro permitirá executar os testes mencionados anteriormente e o segundo deve ser utilizado no momento de iniciar a prova.&lt;/p&gt;
&lt;p&gt;A etapa anterior ao início do exame é a de verificação do ambiente. Você verificará uma parte dos pontos tratados no capítulo anterior (&lt;em&gt;requisitos básicos&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Será mostrado na sua tela um QR code para você acessar o site da PearsonVUE pelo seu celular e seguir com as verificações. Dentro do site será solicitado que você &lt;strong&gt;tire uma foto do seu rosto&lt;/strong&gt;, &lt;strong&gt;foto de frente e verso do documento oficial com foto&lt;/strong&gt; e por fim &lt;strong&gt;tire foto dos 4 lados do quarto onde fará o teste&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Após concluído o processo no site, será sinalizado que você pode retornar para o computador e aguardar o último passo.&lt;/p&gt;
&lt;p&gt;Você será colocado em uma fila antes de começar a prova. Talvez um agente da empresa entre em contato com você pelo chat, disponível na plataforma. Não é sempre que isso vai ocorrer, mas fique atento ao chat.&lt;/p&gt;
&lt;p&gt;Após esse processo, você estará apto para iniciar seu exame!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/fazendo-certificacoes-em-casa/2656c534-7b16-4139-ab79-ea61a22913b2.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;psi&quot;&gt;PSI&lt;/h2&gt;
&lt;p&gt;O que diferencia a &lt;em&gt;PSI&lt;/em&gt; da &lt;em&gt;PearsonVue&lt;/em&gt; é o ambiente onde o teste vai ser executado e a forma de verificação.&lt;/p&gt;
&lt;p&gt;Diferente do &lt;em&gt;OnVUE&lt;/em&gt; que é uma aplicação para desktop, a &lt;em&gt;PSI&lt;/em&gt; opta pela utilização de um &lt;em&gt;secure browser&lt;/em&gt;. O &lt;em&gt;secure browser&lt;/em&gt; funciona nos modelos do &lt;em&gt;OnVUE&lt;/em&gt;, fazendo toda a segurança antifraude para o exame.&lt;/p&gt;
&lt;p&gt;A maior diferença que notei entre as duas empresas é a forma de verificação. Enquanto a &lt;em&gt;PearsonVUE&lt;/em&gt; adota uma estratégia mais simples e cômoda para o usuário, fazendo tudo através de um &lt;em&gt;smartphone&lt;/em&gt;, a &lt;em&gt;PSI&lt;/em&gt; exige que todas as verificações sejam feitas através da câmera do computador.&lt;/p&gt;
&lt;p&gt;Ao iniciar o processo, você fará as seguintes verificações (algumas se repetem em relação ao processo da &lt;em&gt;PearsonVUE&lt;/em&gt;, se atente as diferenças):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mostrará para a câmera seu documento oficial com foto, frente e verso;&lt;/li&gt;
&lt;li&gt;Colocará o documento ao lado de seu rosto e mostrará para a câmera;&lt;/li&gt;
&lt;li&gt;Será necessário mostrar seu rosto, suas orelhas (para garantir que não está utilizando fones de ouvido) e seus pulsos (garantindo a não utilização de relógios e pulseiras inteligentes);&lt;/li&gt;
&lt;li&gt;Por fim, a parte mais trabalhosa, você precisará mostrar através da câmera o ambiente em que está fazendo os testes. Mostrará as paredes, o teto e o chão, a mesa onde está realizando a prova e até embaixo dela (garantindo que não há nenhum tipo de “cola”).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;É um processo muito mais trabalhoso e demorado como você pode perceber, mas uma vez encerrado, você poderá iniciar seu exame.&lt;/p&gt;
&lt;p&gt;/divider&lt;/p&gt;
&lt;h1 id=&quot;durante-aprova&quot;&gt;Durante a prova&lt;/h1&gt;
&lt;p&gt;As duas plataformas que comentei são diferentes, mas contém recursos em comum.&lt;/p&gt;
&lt;p&gt;Você terá disponível:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A capacidade de marcar uma questão para ser revisada posteriormente;&lt;/li&gt;
&lt;li&gt;Botões interativos para passar para avançar para as próximas questões;&lt;/li&gt;
&lt;li&gt;Chat disponível para contatar o instrutor que está acompanhando seu exame. Esse chat pode ser utilizado para solicitar ajuda para solução de algum problema que você está enfrentando durante a prova e nunca para questões relacionadas ao conteúdo do exame.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses recursos estarão disponíveis para uso em qualquer momento durante o seu exame!&lt;/p&gt;
&lt;h2 id=&quot;quero-reforçar-umacoisa&quot;&gt;Quero reforçar uma coisa&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Mantenha SEMPRE seu rosto visível e sua boca desobstruída. É obrigatório que o instrutor consiga confirmar que você não está interagindo com outra pessoa no momento do exame.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;Cada modelo e cada ferramenta tem suas características. Analise-as bem antes de decidir em qual você fará sua prova.&lt;/p&gt;
&lt;p&gt;Se atente aos requisitos e faça uma prova tranquila.&lt;/p&gt;
&lt;p&gt;Muito obrigado! E boa sorte!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Graph API</title><link>https://pedroignacio.dev/post/graph-api/</link><guid isPermaLink="true">https://pedroignacio.dev/post/graph-api/</guid><description>Já se deparou com a necessidade de desenvolver uma aplicação que precisaria recolher informações do perfil do usuário, talvez da sua lista de contatos, das aplicações que tem acesso ou até mesmo das tarefas que o mesmo tem para executar? Hoje nós tem...</description><pubDate>Tue, 20 Feb 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Já se deparou com a necessidade de desenvolver uma aplicação que precisaria recolher informações do perfil do usuário, talvez da sua lista de contatos, das aplicações que tem acesso ou até mesmo das tarefas que o mesmo tem para executar? Hoje nós temos isso de maneira extremamente fácil com a &lt;strong&gt;Microsoft Graph API&lt;/strong&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é&quot;&gt;O que é?&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://www.google.com/url?sa=i&amp;#x26;url=https%3A%2F%2Flearn.microsoft.com%2Fpt-br%2Fgraph%2Foverview&amp;#x26;psig=AOvVaw1BKIefDqGwDakA8w02sGR7&amp;#x26;ust=1708555658147000&amp;#x26;source=images&amp;#x26;cd=vfe&amp;#x26;opi=89978449&amp;#x26;ved=0CBIQjRxqFwoTCLjhjvr_uoQDFQAAAAAdAAAAABAa&quot;&gt;![Visão geral do Microsoft Graph - Microsoft Graph | Microsoft Learn](https://learn.microsoft.com/pt-br/graph/images/microsoft-graph-dataconnect-connectors-enhance.png align=“left”)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Você já parou para pensar que todas as soluções que são parte do &lt;strong&gt;Microsoft 365&lt;/strong&gt; e do &lt;strong&gt;Entra&lt;/strong&gt; são acessíveis de alguma forma? Quando estamos utilizando os portais administrativos e as aplicações para &lt;em&gt;mobile&lt;/em&gt;, &lt;em&gt;web&lt;/em&gt; e &lt;em&gt;desktop&lt;/em&gt;, podemos não parar para pensar nisso, porém “por trás dos panos” essas funcionalidades são expostas de alguma forma que as aplicações consigam consumi-las.&lt;/p&gt;
&lt;p&gt;Essas funcionalidades são expostas para as aplicações através de APIs e o conjunto de APIs do Microsoft 365 é chamado de &lt;strong&gt;Graph&lt;/strong&gt;. Com essas APIs, nós podemos consumir informações como as mencionadas na introdução do texto e construir aplicações que potencializarão as equipes a produzirem mais e de maneira mais efetiva.&lt;/p&gt;
&lt;p&gt;Não apenas podemos conectar nas soluções do &lt;strong&gt;Microsoft 365&lt;/strong&gt; e do &lt;strong&gt;Entra&lt;/strong&gt;, mas como parte da prateleira de recursos, podemos integrar nossas aplicações com o &lt;strong&gt;Dynamics 365&lt;/strong&gt; e também com certos recursos do &lt;strong&gt;Windows&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-podemos-fazer&quot;&gt;O que podemos fazer?&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://www.google.com/url?sa=i&amp;#x26;url=https%3A%2F%2Fdevblogs.microsoft.com%2Fmicrosoft365dev%2Fmicrosoft-graph-at-build-2017%2F&amp;#x26;psig=AOvVaw0GQIVY5cutk7iBF0X9Nmou&amp;#x26;ust=1708562985259000&amp;#x26;source=images&amp;#x26;cd=vfe&amp;#x26;opi=89978449&amp;#x26;ved=0CBIQjRxqFwoTCPj5g6Cbu4QDFQAAAAAdAAAAABAJ&quot;&gt;![What’s new for Microsoft Graph Developers at Build 2017 - Microsoft 365  Developer Blog](https://devblogs.microsoft.com/microsoft365dev/wp-content/uploads/sites/73/2018/05/Microsoft20Graph20Image.png align=“center”)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Como comentado no capítulo anterior, a &lt;em&gt;Graph API&lt;/em&gt; nos permite consumir uma gigantesca variedade de informações provindas das soluções do &lt;strong&gt;Microsoft 365&lt;/strong&gt; e &lt;strong&gt;Entra&lt;/strong&gt;, mas pensando de maneira mais prática, o que exatamente podemos fazer com elas?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;TUDO!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Quando falamos de criatividade, o céu é o limite. Nós podemos ter uma aplicação que consuma informações sobre os funcionários de uma determinada equipe, liste algumas informações de contato (como e-mail e telefone), forneça ao gestor da equipe uma visão temporal do que seus funcionários tem realizado de atividades e permita que as pessoas entrem em contato com os recursos via &lt;em&gt;teams&lt;/em&gt; ou via &lt;em&gt;outlook&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Podemos seguir na linha também de uma aplicação de segurança, como por exemplo um “monitorador” de acessos privilegiados. Podemos criar uma solução que monitore a ativação de &lt;em&gt;roles&lt;/em&gt; privilegiadas no &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; e que notifique um grupo de administradores quando essas &lt;em&gt;roles&lt;/em&gt; forem ativadas.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;O exemplo acima pode ser utilizado como uma solução auxiliar no monitoramento de contas &lt;em&gt;break the glass&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As possibilidades do que podemos fazer com as APIs expostas pelo &lt;em&gt;Graph&lt;/em&gt; são infinitas. Com os recursos expostos, os produtos que compõem as APIs e as diferentes tecnologias que podemos utilizar, fica complicado pensar em algo que não pode ser construído.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;testando&quot;&gt;Testando…&lt;/h1&gt;
&lt;p&gt;Para entendermos melhor algumas das capacidades expostas pela &lt;em&gt;Graph API&lt;/em&gt;, temos uma plataforma que nos permite testar alguns dos endpoints mais conhecidos com as informações da nossa própria conta.&lt;/p&gt;
&lt;p&gt;O &lt;a href=&quot;https://developer.microsoft.com/en-us/graph/graph-explorer&quot;&gt;Graph Explorer&lt;/a&gt; fornece uma série de chamadas de API prontas para serem realizadas, chamadas essas como “recuperar meu perfil”, “recuperar tarefas”, “criar grupo”, entre outras chamadas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/graph-api/e0925f0a-5751-4dd5-b947-02074fb56902.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao acessar o site você se deparará com uma tela parecida com essa acima. É aqui que você irá executar todos os seus testes e validará as respostas da API.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Caso você não tenha uma sessão nativa no seu &lt;em&gt;tenant&lt;/em&gt; você precisará se autenticar antes de conseguir realizar qualquer chamada para a API visando recuperar suas informações.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;No menu esquerdo, você tem a divisão dos endpoints por categoria, dessa forma fica mais fácil de entender os recursos que estão sendo expostos e o que você poderá usar para criar sua &lt;em&gt;applicação&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;É possível que ao executar uma chamada, você receba uma mensagem de &lt;strong&gt;&lt;em&gt;autorização insuficiente&lt;/em&gt;&lt;/strong&gt;. Para solucionar isso, navegue até &quot;&lt;em&gt;Modify Permissions&lt;/em&gt;&quot; e aceite as sugestões existentes.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;segurança-com-a-graph-api&quot;&gt;Segurança com a Graph API&lt;/h1&gt;
&lt;p&gt;Para os times de segurança, a &lt;em&gt;Graph API&lt;/em&gt; pode ser utilizada como origem de informações sensíveis para potencializar aplicações desenvolvidas por eles.&lt;/p&gt;
&lt;h2 id=&quot;aplicações-de-segurança&quot;&gt;Aplicações de segurança&lt;/h2&gt;
&lt;p&gt;Como mencionamos anteriormente, podemos construir uma aplicação de monitoramento de ativação de &lt;em&gt;roles&lt;/em&gt; privilegiadas do Entra. Podemos também construir fluxos utilizando o &lt;strong&gt;Azure Logic Apps&lt;/strong&gt;, &lt;strong&gt;Power Apps&lt;/strong&gt; e &lt;strong&gt;Power Automate&lt;/strong&gt; que simplificarão as atividades dessas equipes, realizando operações automatizadas, simplificando a interação com clientes internos (equipes de negócio) e também podemos criar aplicações em cima das APIs que apliquem os controles impostos por essas equipes.&lt;/p&gt;
&lt;h2 id=&quot;segurança-nas-informações&quot;&gt;Segurança nas informações&lt;/h2&gt;
&lt;p&gt;No consumo às APIs, os usuários que ainda não forneceram as permissões necessárias precisarão concedê-las. Isso é necessário para que os serviços possam consumir as informações daquele usuário em nome da aplicação.&lt;/p&gt;
&lt;p&gt;Para aplicações que acessarão informações dos usuários (de perfil e outros segmentos) é possível fornecer o consentimento de administrador, não havendo a necessidade de que o usuário acesse a aplicação para aprovar o acesso à esses dados.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Os recursos disponibilizados pela &lt;em&gt;Graph&lt;/em&gt; vão habilitar suas equipes a desenvolverem aplicações e automações que facilitem o dia a dia na sua empresa. Incentivar o uso desses recursos permitirá o crescimento da cultura de colaboração e automação da sua organização!&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha conseguido te passar os benefícios de utilizar esse recurso no dia a dia da sua organização e dos seus times.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Gateway API: o passo além do k8s Ingress</title><link>https://pedroignacio.dev/post/gateway-api-o-passo-alem-do-k8s-ingress/</link><guid isPermaLink="true">https://pedroignacio.dev/post/gateway-api-o-passo-alem-do-k8s-ingress/</guid><description>Pensando na evolução da arquitetura do seu cluster Kubernetes, o Gateway API é um daqueles recursos que você não deve deixar de considerar. Sendo uma solução robusta e elegante, o Gateway API vem se tornando um novo padrão para o controle do roteamen...</description><pubDate>Tue, 03 Dec 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Pensando na evolução da arquitetura do seu cluster &lt;strong&gt;Kubernetes&lt;/strong&gt;, o &lt;strong&gt;Gateway API&lt;/strong&gt; é um daqueles recursos que você não deve deixar de considerar. Sendo uma solução robusta e elegante, o &lt;strong&gt;Gateway API&lt;/strong&gt; vem se tornando um novo padrão para o controle do roteamento dos serviços expostos pelo &lt;em&gt;cluster&lt;/em&gt;. Dito isso, hoje iremos explorar brevemente o que é o recurso, suas diferenças para o tradicional &lt;strong&gt;Ingress&lt;/strong&gt; e algumas de suas principais características.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-recurso&quot;&gt;Entendendo o recurso&lt;/h1&gt;
&lt;p&gt;Toda funcionalidade que será utilizada pelo cliente deve ser exposta de alguma forma para a &lt;em&gt;internet&lt;/em&gt;, tornando-a acessível para o consumidor final. Se as suas aplicações são executadas em &lt;em&gt;clusters&lt;/em&gt; &lt;strong&gt;Kubernetes&lt;/strong&gt;, você com certeza já fez uso de algum dos “&lt;em&gt;flavors&lt;/em&gt;” do &lt;strong&gt;Kubernetes Ingress&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;O propósito do &lt;strong&gt;Ingress&lt;/strong&gt; (e agora do &lt;strong&gt;Gateway API&lt;/strong&gt;) é de fornecer uma forma de acesso externo às aplicações que são executadas dentro de um &lt;em&gt;cluster&lt;/em&gt;, aplicações essas expostas internamente através de &lt;em&gt;services&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Imagine que você tem dentro do seu &lt;em&gt;cluster&lt;/em&gt; os produtos A, B e C. Esses produtos fazem parte da mesma linha de negócio, ou seja, estão todos relacionados, mesmo que façam parte de jornadas diferentes. O que você deve fazer para que as plataformas e canais utilizados pelos clientes possam acessar essas funcionalidades expostas pelas suas aplicações?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/gateway-api-o-passo-alem-do-k8s-ingress/8a9c8490-2c9c-48d0-8b39-bbdb04a1086f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como vemos na arquitetura acima, o &lt;strong&gt;Gateway API&lt;/strong&gt; realiza a exposição das aplicações (que estão representadas “atrás” dos &lt;em&gt;services&lt;/em&gt;) através do próprio &lt;em&gt;gateway&lt;/em&gt; e de seu recurso auxiliar, a &lt;strong&gt;HTTP Route&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gateway API - recurso “primário”, que realiza a exposição das aplicações.&lt;/li&gt;
&lt;li&gt;HTTP Route - objeto que declara a rota que será exposta pelo &lt;strong&gt;Gateway API&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;TLS Route - parecido com o &lt;strong&gt;HTTP Route&lt;/strong&gt;, porém sua exposição ocorre com o acréscimo de certificados, garantindo a criptografia &lt;em&gt;in-transit&lt;/em&gt; na comunicação.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essa separação das rotas que serão publicadas em um objeto próprio garante maior dinamismo e um &lt;em&gt;design&lt;/em&gt; mais limpo e escalável para seu &lt;em&gt;cluster&lt;/em&gt;. Se for um desejo do seu time de engenharia migrar o provedor do &lt;strong&gt;Gateway API&lt;/strong&gt; (para o &lt;strong&gt;Cilium&lt;/strong&gt;, por exemplo), essa separação das rotas facilitará o processo, visto que apenas o objeto principal deverá ser modificado, mantendo as rotas e suas regras intactas.&lt;/p&gt;
&lt;p&gt;Exploraremos mais sobre algumas &lt;em&gt;features&lt;/em&gt; interessantes do recurso nas próximas seções. Agora falaremos brevemente sobre as diferenças para o &lt;strong&gt;Ingress&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-a-mudança-do-ingress&quot;&gt;Qual a mudança do Ingress?&lt;/h1&gt;
&lt;p&gt;Falando do “legado”, o &lt;strong&gt;Ingress&lt;/strong&gt; e seus &lt;em&gt;flavors&lt;/em&gt; foram utilizados por muitos anos como o padrão para exposição de &lt;em&gt;services&lt;/em&gt; no &lt;strong&gt;Kubernetes&lt;/strong&gt;. As alterações e evoluções do &lt;strong&gt;Ingress&lt;/strong&gt; ao &lt;strong&gt;Gateway API&lt;/strong&gt; são majoritariamente funcionalidades diferentes, suporte a outros protocolos e alteração na arquitetura do componente.&lt;/p&gt;
&lt;p&gt;Abaixo uma breve lista com algumas das principais diferenças de um recurso para outro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Protocolos suportados - agora podemos criar recursos que fazem uso de protocolos como gRPC, TCP, UDP e os já suportados HTTP/S.&lt;/li&gt;
&lt;li&gt;Modularização - como comentado anteriormente, com a nova versão, temos completa separação dos recursos, habilitando a troca do provedor e reutilização das rotas declaradas.&lt;/li&gt;
&lt;li&gt;Granularidade das rotas - a declaração das rotas se tornou muito mais detalhada, permitindo a construção de regras mais complexas e habilitando a criação de testes como A/B e blue green com mais facilidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/assets/gateway-api-o-passo-alem-do-k8s-ingress/caa62b41-cf7a-4656-bcb8-7cc0ecfc5eb2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Acima temos uma arquitetura simples sobre como o recurso funciona. Podemos notar algumas diferenças para a arquitetura do &lt;strong&gt;Gateway API&lt;/strong&gt;, como mencionado anteriormente.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Vale ressaltar que a evolução do &lt;strong&gt;Ingress&lt;/strong&gt; foi travada, com os esforços concentrados 100% no &lt;strong&gt;Gateway API.&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;coisas-legais-do-recurso&quot;&gt;Coisas legais do recurso&lt;/h1&gt;
&lt;p&gt;Agora que entendemos de fato as diferenças entre um e outro, vamos nos concentrar nos recursos interessantes que a nova versão do objeto nos traz.&lt;/p&gt;
&lt;p&gt;Acho importante reforçar o valor que a “modularização” do recurso traz para os ambientes &lt;strong&gt;Cloud Native&lt;/strong&gt;. Estamos sempre buscando tornar nossas soluções escaláveis, sustentáveis no longo prazo e acima de tudo, &lt;em&gt;vendor-neutral&lt;/em&gt;. A separação dos componentes que compõem o &lt;strong&gt;Gateway API&lt;/strong&gt; facilitará na utilização de novos recursos e até na migração para outras plataformas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TLS&lt;/strong&gt; era algo já existente no &lt;strong&gt;Ingress Controller&lt;/strong&gt;, porém agora podemos ter de maneira organizada nossas rotas que devem ser expostas de maneira segura e seus certificados, que são &lt;em&gt;binded&lt;/em&gt; diretamente na rota. Para os times de segurança e &lt;em&gt;DevOps&lt;/em&gt; isso trará um ganho extremo no momento de &lt;em&gt;troubleshooting&lt;/em&gt;, visto que será possível identificar os recursos conectados com mais rapidez.&lt;/p&gt;
&lt;p&gt;Por último, gostaria de falar sobre o modelo de criação do recurso, através de &lt;em&gt;CRDs&lt;/em&gt; (&lt;em&gt;Custom Resource Definitions&lt;/em&gt;). Os &lt;em&gt;CRDs&lt;/em&gt; tornam as &lt;em&gt;pipelines&lt;/em&gt; de execução mais limpas e organizadas, visto que são manifestos iguais aos &lt;em&gt;default&lt;/em&gt; do &lt;strong&gt;Kubernetes&lt;/strong&gt;. Criar recursos utilizando esse modelo torna a arquitetura mais modular, garantindo mais uma vez escalabilidade na sua plataforma!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;O &lt;strong&gt;Gateway API&lt;/strong&gt; traz uma série de benefícios para seu ambiente e sua equipe. Como qualquer outra tecnologia, não é uma bala de prata. Você deve avaliar se o serviço cumpre com os seus requisitos antes de adotá-lo em larga escala.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do artigo, não deixe de me contatar caso tenha alguma dúvida ou queira conversar mais sobre o recurso.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Identidades para aplicações</title><link>https://pedroignacio.dev/post/identidades-para-aplicacoes/</link><guid isPermaLink="true">https://pedroignacio.dev/post/identidades-para-aplicacoes/</guid><description>Um conceito vindo do on-premise e potencializado com o uso da nuvem pública, as identidades para aplicações (workload IDs) existem para que possamos aplicar permissões no consumo dos recursos e controlar o acesso aos insumos da organização. Elas nos ...</description><pubDate>Tue, 23 Apr 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Um conceito vindo do on-premise e potencializado com o uso da nuvem pública, as identidades para aplicações (&lt;em&gt;workload IDs&lt;/em&gt;) existem para que possamos aplicar permissões no consumo dos recursos e controlar o acesso aos insumos da organização. Elas nos permitem identificar o consumidor (aplicação) e funcionam como se fossem credenciais de usuários humanos. Hoje falaremos sobre essas identidades, suas características técnicas e aplicações dentro do &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-conceito&quot;&gt;Entendendo o Conceito&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/identidades-para-aplicacoes/7279c5ab-4591-441c-b8f8-6a74bdce9885.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro do seu ambiente de nuvem pública (independente do provedor), os diversos &lt;em&gt;workloads&lt;/em&gt; que estarão sendo executados precisarão de uma forma para autenticar e autorizar o consumo dos seus serviços e dos recursos de plataforma. Esses dois processos se dão por meio das chamadas &lt;strong&gt;Identidades de Aplicação&lt;/strong&gt; (ou &lt;em&gt;&lt;strong&gt;Workload IDs&lt;/strong&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Ter bem estabelecida uma boa estratégia de autorização na sua organização é essencial para a boa manutenção do seu ambiente e para a aplicação do &lt;em&gt;&lt;strong&gt;Zero Trust&lt;/strong&gt;&lt;/em&gt;, por isso é de extrema importância que os times de segurança e arquitetura definam os &lt;em&gt;baselines&lt;/em&gt; para uso dessas identidades e as melhores práticas de acordo com o fornecedor e com a empresa.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;estratégias-para-a-proteção-das-identidades&quot;&gt;Estratégias para a proteção das identidades&lt;/h1&gt;
&lt;p&gt;Como qualquer identidade, o &lt;em&gt;IdP&lt;/em&gt; (&lt;em&gt;Identity Provider&lt;/em&gt;) necessita de algumas informações para validar a veracidade daquele recurso. Se tratando do &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; (&lt;em&gt;Identity Provider&lt;/em&gt; da &lt;em&gt;Microsoft&lt;/em&gt;), nós temos duas maneiras de identificar o nosso &lt;em&gt;workload id&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Object ID + Secret&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Object ID + Certificate&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As duas formas tem seus pontos positivos e negativos, vamos comentar sobre eles agora e entender melhor esses pontos e as características de cada um dos métodos.&lt;/p&gt;
&lt;h2 id=&quot;secret&quot;&gt;Secret&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/identidades-para-aplicacoes/af166691-c727-464b-9e23-d6a0a1d9bb34.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Os segredos (também conhecidos como “senhas”) são utilizados pela aplicação em questão para autenticar a chamada frente ao &lt;em&gt;Identity Provider&lt;/em&gt;. Em todas as requisições, tanto o &lt;strong&gt;Object ID&lt;/strong&gt; (que representa a aplicação perante do &lt;em&gt;IdP&lt;/em&gt;) quando o &lt;strong&gt;Secret&lt;/strong&gt;, devem ser transmitidos, para que o provedor de identidade consiga validar a veracidade daquela chamada.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;secrets&lt;/em&gt; são &lt;em&gt;strings&lt;/em&gt; que apenas através da visualização a olho nu, não representam nada, porém devem ser guardadas a “sete chaves” pelos times de segurança da organização, visto que são valores sensíveis e que se expostos, poderão representar alto risco ao ambiente.&lt;/p&gt;
&lt;p&gt;Por serem geradas diretamente no &lt;em&gt;Identity Provider&lt;/em&gt;, a gestão das &lt;em&gt;secrets&lt;/em&gt; pode ser considerada mais complicada pelo time de segurança, visto que novos processos e controles deverão ser implementados para identificar a expiração de uma &lt;em&gt;secret&lt;/em&gt;, sendo necessário renová-la antes da expiração para evitar a interrupção nos serviços que utilizam aquelas credenciais.&lt;/p&gt;
&lt;p&gt;Outro problema frequentemente enfrentado é o envio das &lt;em&gt;secrets&lt;/em&gt; para os repositórios de código. Por serem utilizadas direto no código, é possível que algumas &lt;em&gt;secrets&lt;/em&gt; sejam enviadas para o repositório de código da sua organização. Isso é especialmente perigoso caso o repositório seja público, expondo a &lt;em&gt;secret&lt;/em&gt; para qualquer um que acessar o &lt;em&gt;repo&lt;/em&gt;. Para evitar esse problema, é importante termos dentro da pipeline de desenvolvimento, controles para identificar essas &lt;em&gt;secrets&lt;/em&gt; que foram enviadas de maneira errônea, reduzindo ainda mais a chance de termos problemas de segurança.&lt;/p&gt;
&lt;h2 id=&quot;certificate&quot;&gt;Certificate&lt;/h2&gt;
&lt;p&gt;![Screenshot of PEM file](&lt;a href=&quot;https://learn.microsoft.com/en-us/cli/azure/media/sp-tutorial/pem-file.png&quot;&gt;https://learn.microsoft.com/en-us/cli/azure/media/sp-tutorial/pem-file.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Os certificados são “objetos” de segurança utilizados de diversas maneiras. Nesse caso, o utilizariamos para identificar uma identidade e garantir que a mesma é valida dentro do nosso &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Diferente dos segredos, um certificado não é apenas uma &lt;em&gt;string&lt;/em&gt;, ele tem uma série de outras informações e atributos próprios, que permitem qualquer uma das partes possa identificar o certificado em questão e validar sua veracidade.&lt;/p&gt;
&lt;p&gt;Os certificados devem ser gerados por uma &lt;strong&gt;autoridade certificadora&lt;/strong&gt; confiável e devem ser carregados dentro do &lt;em&gt;Microsoft Entra ID&lt;/em&gt;, sendo referenciados diretamente na identidade criada. Dessa forma, o &lt;em&gt;identity provider&lt;/em&gt; consegue validar o certificado e garantir que o mesmo não tenha sido revogado.&lt;/p&gt;
&lt;p&gt;Ainda fazendo referência aos certificados, seu uso é mais recomendado que o das &lt;em&gt;secrets&lt;/em&gt; pois não só porque não são passados diretamente no código, mas também por conta dos processos de gestão de certificados já existentes na sua empresa. Por ser uma solução utilizada de diversas maneiras nas organizações, é costume que as empresas já tenham uma boa gestão desses objetos, pois a má gestão pode levar a interrupções nos serviços fornecidos pela organização, impactando não apenas clientes internos mas também os clientes finais.&lt;/p&gt;
&lt;h2 id=&quot;estratégias-de-proteção&quot;&gt;Estratégias de proteção&lt;/h2&gt;
&lt;p&gt;Não importa se estivermos falando sobre &lt;em&gt;secrets&lt;/em&gt; ou &lt;em&gt;certificates&lt;/em&gt;, algo imprescindível é a boa gestão de expiração e distribuição desses objetos. Visando manter seus serviços disponíveis e sem interrupções, identificar quando um objeto estiver próximo da expiração permitirá que os times de segurança e engenharia atualizem o recurso em questão (manualmente ou via automação). O envio de alertas quando o objeto estiver próximo do vencimento facilitará esse trabalho.&lt;/p&gt;
&lt;p&gt;Aplicar regras de acesso condicional pode reduzir drasticamente a possibilidade de uso de uma credencial comprometida. Criar regras referêntes à localização de onde vem a requisição possibilitará a recusa de conexões vindas de localidades não reconhecidas. Isso pode ser feito utilizando as &lt;em&gt;&lt;strong&gt;Named Locations&lt;/strong&gt;&lt;/em&gt; do &lt;em&gt;Entra&lt;/em&gt;, que permitem o cadastro de &lt;em&gt;ranges&lt;/em&gt; de IP para que possam ser utilizados posteriormente dentro das políticas de acesso condicional.&lt;/p&gt;
&lt;p&gt;Como qualquer identidade dentro do &lt;em&gt;Entra&lt;/em&gt;, as &lt;em&gt;workload IDs&lt;/em&gt; também geram logs. Esses logs são objetos extremamente valiosos para o reforço da postura de identidade da organização, pois permitem validar para o que a identidade foi utilizada.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;explorando-o-workload-ids-do-microsoft-entra-id&quot;&gt;Explorando o Workload IDs do Microsoft Entra ID&lt;/h1&gt;
&lt;p&gt;Dentro do &lt;em&gt;Microsoft Entra ID&lt;/em&gt;, as &lt;em&gt;workload IDs&lt;/em&gt; podem ser visualizadas em um painel centralizado, parecido com esse:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/identidades-para-aplicacoes/24c55d86-1f52-421f-a9b7-b1a424f54c34.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Podemos visualizar a quantidade de identidades que temos dentro do nosso &lt;em&gt;tenant&lt;/em&gt;, também separado pelo tipo de identidade.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Essa seção dentro do Portal do Entra é relativamente nova, então tome seu tempo para explorá-la dentro do seu &lt;em&gt;tenant&lt;/em&gt; e avalie tudo que ela há de oferecer.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ter visibilidade e controle do que é criado no seu &lt;em&gt;tenant&lt;/em&gt; é de extrema importância, para que os recursos possam ser bem governados e terem seu ciclo de vida gerenciado e acompanhado pelos times responsáveis.&lt;/p&gt;
&lt;p&gt;Além disso, ao rolar a página para baixo, temos uma série de recomendações de melhores práticas fornecidas pela &lt;em&gt;Microsoft&lt;/em&gt;, que podem ser acessadas e implementadas para incrementar os controles do seu ambiente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/identidades-para-aplicacoes/6fb94151-86f0-4cf9-bafe-a1d839189ff5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Essa visão do &lt;em&gt;workload IDs&lt;/em&gt; é oferecida no plano &lt;em&gt;free&lt;/em&gt;. A versão &lt;em&gt;premium&lt;/em&gt; será tratada posteriormente em outro texto.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;As identidades são o objeto central dentro da estratégia &lt;em&gt;&lt;strong&gt;Zero Trust&lt;/strong&gt;&lt;/em&gt; de todas as empresas, porém não podemos pensar que identidades são apenas de usuários humanos. Negligenciar as contas sistêmicas pode se tornar um problema de forma repentina caso sua empresa não tenha controles bem estabelecidos e ajustados.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha conseguido contribuir com o seu planejamento de segurança.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Implementando revisões de acesso no Azure e Entra ID</title><link>https://pedroignacio.dev/post/implementando-access-reviews-no-entraid/</link><guid isPermaLink="true">https://pedroignacio.dev/post/implementando-access-reviews-no-entraid/</guid><description>What are Access Reviews in Azure AD — Windows Active Directory (windows-active-directory.com)
Conforme sua empresa cresce, o acúmulo de acessos dos usuários será uma consequência. Se quiser proteger seu ambiente do acúmulo de acessos e de possíveis p...</description><pubDate>Wed, 23 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.windows-active-directory.com/what-are-access-reviews-in-azure-ad.html&quot;&gt;What are Access Reviews in Azure AD — Windows Active Directory (windows-active-directory.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Conforme sua empresa cresce, o acúmulo de acessos dos usuários será uma consequência. Se quiser proteger seu ambiente do acúmulo de acessos e de possíveis problemas que pode vir a ter com o comprometimento de uma identidade, esse artigo é para você!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-melhor-oproblema&quot;&gt;Entendendo melhor o problema&lt;/h1&gt;
&lt;p&gt;Como foi comentado brevemente no início do texto, o crescimento de uma organização traz consigo diversos desafios para os time de segurança. Operacionalizar um ambiente em nuvem pode se tornar complicado de acordo com a quantidade de funcionários dedicados para essa tarefa.&lt;/p&gt;
&lt;p&gt;Conforme sua empresa realiza novas contratações, novos times vão surgindo, times vão se desfazendo e se transformando em novas equipes, pessoas encerram seus vínculos com a empresa, as coisas mudam e é importante que os times de tecnologia (engenharia, operações, segurança, etc.) consigam controlar o ciclo de vida dos “objetos” vinculados à essas partes (equipes, pessoas, etc.).&lt;/p&gt;
&lt;p&gt;O crescimento das equipes também leva ao problema mencionado na abertura do tutorial, o &lt;strong&gt;acúmulo de acessos&lt;/strong&gt;. Esse problema se deve à má gestão do ciclo de vida das permissões fornecidas aos usuários e aos times (grupos). O acúmulo de acessos acrescido do comprometimento das identidades pode parecer não apresentar tanto risco, então vamos deixar claro alguns problemas que podem ser causados por esses fenômenos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exposição de informações sensíveis&lt;/strong&gt;: esse é um problema causado pelo comprometimento das credenciais do usuário. Uma identidade comprometida fornece grande risco aos ambientes se não for remediada automaticamente, principalmente se essa identidade em questão tiver acesso à múltiplos ambientes. O usuário por trás do acesso ilegítimo poderá realizar o conhecimento dos ambientes e executar a extração de informações valiosas e confidenciais;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acesso a recursos indevidos&lt;/strong&gt;: também potencializado pelo comprometimento das credenciais mas não causado exclusivamente por isso, o acúmulo de acessos habilita que o usuário tenha acessos a recursos que não são mais necessários. Isso pode, por displicência do usuário, impactar outras equipes, que podem ter seus recursos modificados;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Descumprimento do princípio do privilégio mínimo&lt;/strong&gt;: um dos pilares da estratégia &lt;em&gt;&lt;strong&gt;zero trust&lt;/strong&gt;&lt;/em&gt; é o princípio do privilégio mínimo, que consiste em fornecer aos usuários apenas o acesso necessário para suas atividades de trabalho. É importante que as organizações se atentem a esse princípio pois uma vez garantido e aplicado, os danos causados pelo comprometimento de uma credencial podem ser reduzidos drasticamente;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comprometimento de recursos&lt;/strong&gt;: mais um ponto atrelado ao comprometimento das credenciais, usuários que contém acúmulo de acessos e acabam tendo suas credenciais comprometidas, potencializam o comprometimento dos recursos aos quais tem acessos. Tendo uma gama ampla de acessos, aumenta-se o escopo de ataques aos recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses são alguns perigos existentes quando falamos de acessos acumulados. Pudemos perceber que os danos à organização podem ser severos e possivelmente irreversíveis.&lt;/p&gt;
&lt;p&gt;Dito isso, termos uma estratégia eficiente de revisão de acessos pode nos poupar muita dor de cabeça no futuro e trazer mais confiança para os times de segurança e operação.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-asolução&quot;&gt;Qual a solução?&lt;/h1&gt;
&lt;p&gt;O &lt;em&gt;Entra ID Governance&lt;/em&gt; oferece um recurso chamado &lt;strong&gt;Revisão de Acessos&lt;/strong&gt; (&lt;em&gt;Access Reviews&lt;/em&gt;). Com esse recurso é possível implementar um processo de revisões de acesso periódicas para &lt;strong&gt;usuários&lt;/strong&gt;, &lt;strong&gt;grupos&lt;/strong&gt; e &lt;strong&gt;aplicações&lt;/strong&gt;. Essa funcionalidade habilita os administradores a selecionarem os objetos de destino, os objetos aprovadores, a frequência da revisão, as ações que devem ser tomadas de acordo com a aprovação do acesso, e mais alguns operações existentes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/bd3c1aa6-77af-4d1e-aadb-7459e30df6b9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro do portal do &lt;em&gt;ID Governance&lt;/em&gt;, nós temos a possibilidade de gerenciar todos os acessos existentes na plataforma. O &lt;em&gt;ID Governance&lt;/em&gt; centraliza as atividades de gerenciamento relacionadas às identidades e às permissões existentes no Entra ID.&lt;/p&gt;
&lt;p&gt;Dentre os recursos que podem ter seus acessos revisados, temos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grupos e equipes — grupos de segurança e do &lt;em&gt;Office 365&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Aplicações — acesso à aplicações, controlado pela atribuição de grupos para gestão do acesso;&lt;/li&gt;
&lt;li&gt;Atribuições do PIM (Funções do Azure e do Azure AD) —usuários e grupos que tenham funções privilegiadas atribuídas.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Com essas capacidades fornecidas pelo &lt;em&gt;ID Governance&lt;/em&gt;, as empresas poderão realizar períodos recorrente de revisão de acesso, com o objetivo de garantir a segurança constante de seu ambiente e para setores onde isso se aplica, garantir a conformidade com os orgãos reguladores (nacionais e internacionais).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Uma funcionalidade, possível com o uso das Revisões de Acesso do &lt;em&gt;ID Governance&lt;/em&gt; e visando a gestão ágil dos acessos, é a implementação do &lt;em&gt;self-review&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Self-review&lt;/strong&gt;: podemos permitir que o próprio usuário revise seus acessos e julgue os que são realmente necessários. Esse recurso pode ser interessante quando se tem uma organização com dezenas de milhares (ou até mais) de funcionários e acessos a aplicações que não são consideradas críticas. Essas aplicações não devem apresentar risco a sua organização, possibilitando que a revisão seja feita individualmente.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;OBS: é necessário que os usuários que farão as revisões de acesso tenham atribuído à suas contas uma licença mínima do &lt;strong&gt;Entra ID P2&lt;/strong&gt;. Caso os seja configurado um &lt;em&gt;self-review&lt;/em&gt;, os usuários também precisarão da licença.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;implementando-a-revisão-deacessos&quot;&gt;Implementando a revisão de acessos&lt;/h1&gt;
&lt;p&gt;Podemos iniciar a configuração através do Portal do Azure ou do Portal do Entra. Toda a experiência fornecida através do Portal do Entra, também é apresentada pelo Portal do Azure, com todos os recursos à sua disposição.&lt;/p&gt;
&lt;p&gt;Ao acessarmos a aba do &lt;em&gt;Identity Governance&lt;/em&gt; em qualquer um dos portais, devemos selecionar a seção “Revisões de acesso”, representadas pelo ícone abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/34c94410-cf2b-4e88-8ff3-b8f9a3ad68c7.png&quot; alt=&quot;Ícone do menu que nos permite acesso à seção de revisões de acesso&quot;&gt;&lt;/p&gt;
&lt;p&gt;Logo após acessar a seção das revisões de acesso, você será apresentado com a tela que nos permite gerenciar as revisões existentes e criar novas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/ef7b35a6-1506-4e24-b09d-f2b09ed1a63c.png&quot; alt=&quot;Portal das revisões de acesso&quot;&gt;&lt;/p&gt;
&lt;p&gt;Caso seja seu primeiro acesso, não haverão revisões criadas, então sua página estará igual à apresentada acima.&lt;/p&gt;
&lt;p&gt;Para criação das revisões de acesso para as &lt;strong&gt;Funções do Azure e do Azure AD no PIM&lt;/strong&gt;, devemos acessar diretamente o &lt;em&gt;Portal do PIM&lt;/em&gt;, ou podemos acessar mais abaixo na barra de rolagem do menu à esquerda, as opções “Funções do Azure AD” e “Recursos do Azure”. Acessando qualquer uma delas, seremos levados ao &lt;em&gt;Portal do PIM&lt;/em&gt; onde podemos configurar as revisões para funções do PIM.&lt;/p&gt;
&lt;p&gt;Para este exemplo, vamos clicar em “Nova revisão de acesso” e partir para nossa primeira configuração, que será a configuração da revisão de acesso de um grupo do Azure AD.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;OBS: caso você não tenha nenhum grupo criado, crie alguns usuários, crie um grupo e os insira no grupo apenas para fins de teste. Não é necessário ter um ambiente muito populado para conseguir construir as primeiras revisões de acesso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;tipo-derevisão&quot;&gt;Tipo de revisão&lt;/h2&gt;
&lt;p&gt;A primeira configuração nos habilita selecionar quais os destinos da nossa revisão. Aqui podemos escolher entre &lt;strong&gt;Usuários e Grupos&lt;/strong&gt; ou &lt;strong&gt;Aplicações&lt;/strong&gt;, visando controlar quem tem acesso à elas.&lt;/p&gt;
&lt;p&gt;Para conseguir revisar aplicações, é necessário que previamente tenhas criado algum registro utilizando o &lt;em&gt;Application Registration&lt;/em&gt; ou o &lt;em&gt;Enterprise Application&lt;/em&gt;, caso contrário apenas a aplicação “Graph API” estará disponível para seleção.&lt;/p&gt;
&lt;p&gt;Para este exemplo, selecionaremos a opção “Grupos e Equipes” e escolheremos um grupo qualquer existente no &lt;em&gt;tenant.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Outra configuração disponível nesta etapa é a escolha de &lt;strong&gt;quais tipos de usuários&lt;/strong&gt; que terão o acesso revisado. Podemos restringir a revisão à usuários convidados (&lt;em&gt;guest users&lt;/em&gt;) ou a todos os integrantes do grupo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/55a180e8-a9df-46a8-abbc-39210a1995ca.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao final da configuração, seu formulário estará semelhante a este. Executaremos a revisão de acesso em grupos específicos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;No final do formulário temos a opção de restringir o escopo apenas à usuários que estão inativos. Isso é uma boa prática nas empresas, além de ser uma configuração muito comum.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;revisões&quot;&gt;Revisões&lt;/h2&gt;
&lt;p&gt;A segunda etapa é a configuração de frequência das revisões e dos aprovadores. Aqui selecionaremos quais os responsáveis por fazer a revisão de acesso e com que frequência deve ser disparado a solicitação de revisão.&lt;/p&gt;
&lt;p&gt;Para acessos de alta criticidade e de alto risco, é recomendado a criação de uma revisão em estágios (“cascata”). Com esse método, selecionamos dois revisores que obrigatoriamente deverão realizar as atividades de verificação. Visto que estamos implementando um exemplo básico e de uso geral (não crítico), a revisão ser realizada por apenas um agente supre nossa necessidade, então na seção de “Selecionar revisores” escolha a opção “Usuários ou grupos selecionados” e selecione um usuário (ou grupo) para realizarmos a revisão do acesso posteriormente.&lt;/p&gt;
&lt;p&gt;Dentre os aprovadores podemos selecionar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proprietários do grupo — um cenário muito comum em organizações, é a configuração de um “dono” do grupo. Grande parte das vezes essa pessoa é o gerente ou &lt;em&gt;head&lt;/em&gt; da área. Em uma organização que cria seus grupos baseados em equipes, faz sentido permitir que a revisão de acesso seja feita pelo responsável pelo grupo em questão;&lt;/li&gt;
&lt;li&gt;Usuários e grupos selecionados — essa seleção pode ser escolhida para cenários mais críticos, onde devemos delegar à uma equipe de segurança a responsabilidade pela revisão dos acessos. Caso em sua organização, tenha usuários e grupos que contenham acessos altamente privilegiados, é uma recomendação deliberar a gestão do acesso para o time responsável pela segurança dos ambientes;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Self-review —&lt;/em&gt; caso seja um desejo permitir que os usuários tenham mais autonomia para escolher o que precisam acessar e o que não, o &lt;em&gt;self-review&lt;/em&gt; nos fornece essa possibilidade;&lt;/li&gt;
&lt;li&gt;Gerentes dos usuários — um dos atributos padrão de um usuário no Entra ID são as informações de seu gerente. Com essa funcionalidade, podemos delegar para o responsável direto pelo funcionário a capacidade de revisão de acesso, deixando o fluxo de gestão mais “limpo” e sem dependências com times externos.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;As opções “Proprietários do grupo” e “Gerentes de usuário” permitem a configuração de um &lt;strong&gt;fallback&lt;/strong&gt; de aprovação, garantindo que caso o aprovador principal não possa realizar a revisão, um aprovador secundário seja acionado e tenha as permissões de avaliador.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Para finalizar essa sessão devemos configurar o &lt;strong&gt;tempo de duração&lt;/strong&gt; da revisão, &lt;strong&gt;a recorrência&lt;/strong&gt; (de quanto em quanto tempo ela será disparada) e por último a &lt;strong&gt;data de início&lt;/strong&gt;. As revisões costumam ser rotineiras (trimestralmente, semestralmente, etc.), apenas em casos específicos seu agendamento de revisão deverá ser encerrado, então podemos manter selecionado a opção “Nunca”, que determina o período de encerramento da revisão.&lt;/p&gt;
&lt;p&gt;No final das configurações, o seu formulário se parecerá com o seguinte:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/7906ec2d-ae1c-4ee9-8107-b66dac7ec8d9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;*A data inicial representa o dia que escrevi esse tutorial, só é possível configurar a revisão à partir do mesmo dia*&lt;/p&gt;
&lt;h2 id=&quot;configurações&quot;&gt;Configurações&lt;/h2&gt;
&lt;p&gt;Para finalizar a configuração vamos agora às propriedades opcionais.&lt;/p&gt;
&lt;p&gt;Dentro dessa seção você poderá tomar uma ação caso os revisores não respondam a avaliação de acesso e enviar notificação ao encerrar uma revisão.&lt;/p&gt;
&lt;p&gt;Vamos manter a configuração da forma que está e prosseguir com a criação da nossa revisão.&lt;/p&gt;
&lt;h4 id=&quot;examinar-criar&quot;&gt;Examinar + criar&lt;/h4&gt;
&lt;p&gt;Por fim você deve criar um nome para sua revisão e caso queira, uma descrição que permita compreender os controles que ali estão sendo aplicados.&lt;/p&gt;
&lt;p&gt;Essa é a última das etapas, após isso teremos a primeira revisão de acesso criada.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;revisando-oacesso&quot;&gt;Revisando o acesso&lt;/h1&gt;
&lt;p&gt;Para iniciar a revisão dos acessos é importante saber duas coisas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Após a criação, devemos esperar alguns minutos até que o &lt;em&gt;status&lt;/em&gt; da revisão esteja atualizado para &lt;strong&gt;Ativo&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;Os revisores (sejam dedicados ou &lt;em&gt;self-reviewers&lt;/em&gt;) receberão um e-mail quando chegar a data inicial prevista para a revisão. Não será necessário que os mesmos acessem o Portal do Azure ou o do Entra. Para fins de simplicidade, a Microsoft disponibiliza um portal próprio para revisão de acessos, o &lt;a href=&quot;https://myaccess.microsoft.com/&quot;&gt;My Access&lt;/a&gt;. Esse portal contém todas as ações de revisão que deverão ser feitas pelo usuário em questão.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;O uso de um portal específico para a revisão dos acessos retira a necessidade de que todos os usuários tenham acesso aos portais administrativos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Abaixo temos uma imagem da página principal do portal My Access:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/21ab5e4f-6c1b-45cf-ac10-25d7ae1f5dfa.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Você deverá clicar sobre o acesso pendente e será direcionado para a página que permitirá realizar a revisão.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-access-reviews-no-entraid/c13bf09e-5732-49aa-9b5a-aa8683c840e5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Clicando em “Detalhes” ao final de cada linha, temos acesso a um formulário unificado que nos permite &lt;strong&gt;Aprovar&lt;/strong&gt;, &lt;strong&gt;Negar&lt;/strong&gt; ou responder que &lt;strong&gt;não conseguimos avaliar&lt;/strong&gt; a necessidade do acesso (opção “Não sei”). Junto da avaliação do acesso, também temos a necessidade de inserir uma justificativa (configurada na fase de “Configuração” da revisão). A avaliação de acesso pode ser alterada até a data final de duração (nesse caso, nossa revisão dura 3 dias, então você poderá alterar os resultados até 3 dias após o início da revisão).&lt;/p&gt;
&lt;p&gt;Para executar essa tarefa mais rápido, temos a opção “Aceitar recomendações”. Essa opção responderá as avaliações com as recomendações fornecidas pela Microsoft, recomendações que podem ser visualizadas na coluna do meio da lista de usuários para revisão.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Agora você já sabe como gerenciar todo o ciclo de vida de um acesso, desde a deliberação desse acesso até a revisão do mesmo (e possivelmente o cancelamento). Esse recurso é muito útil para manter seu ambiente seguro e em conformidade com as regulamentações existentes que se apliquem à sua empresa.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado e que agora se sinta confortável com essa funcionalidade.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Implementando arquitetura Zero Trust no Azure</title><link>https://pedroignacio.dev/post/implementando-arquitetura-zero-trust-no-azure/</link><guid isPermaLink="true">https://pedroignacio.dev/post/implementando-arquitetura-zero-trust-no-azure/</guid><description>Um dos conceitos mais importantes quando falamos de cibersegurança é o Zero Trust. Esse &quot;padrão&quot; estabelece controles que devem ser implementados com o objetivo de deixar seu ambiente mais seguro e protegido contra os vetores de ataque mais comuns. H...</description><pubDate>Sun, 31 Mar 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Um dos conceitos mais importantes quando falamos de cibersegurança é o &lt;strong&gt;Zero Trust&lt;/strong&gt;. Esse “padrão” estabelece controles que devem ser implementados com o objetivo de deixar seu ambiente mais seguro e protegido contra os vetores de ataque mais comuns. Hoje vamos falar sobre como podemos aplicar a estratégia &lt;em&gt;zero trust&lt;/em&gt; no seu ambiente Azure e quais serviços utilizar para cada um dos princípios!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-zero-trust&quot;&gt;Entendendo o Zero Trust&lt;/h1&gt;
&lt;p&gt;O &lt;strong&gt;Zero Trust&lt;/strong&gt; é um &lt;em&gt;framework&lt;/em&gt; de cibersegurança criado para direcionar a construção de ambientes seguros independente da plataforma. Permitiu direcionar as equipes de segurança das empresas na construção de soluções mais seguras e resilientes, declarando as preocupações que devem ser levadas em conta e como devem ser tratadas.&lt;/p&gt;
&lt;p&gt;![Diagram of elements of visibility, automation, and orchestration in Zero Trust.](&lt;a href=&quot;https://learn.microsoft.com/en-us/security/zero-trust/media/diagram-zero-trust-security-elements.png&quot;&gt;https://learn.microsoft.com/en-us/security/zero-trust/media/diagram-zero-trust-security-elements.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;Acima temos as &lt;strong&gt;camadas&lt;/strong&gt; protegidas pelo &lt;strong&gt;Zero Trust&lt;/strong&gt;. Os pilares que vamos tratar na próxima seção devem ser aplicados a cada uma dessas camadas descritas acima.&lt;/p&gt;
&lt;p&gt;Nesse texto falaremos sobre a aplicação do &lt;em&gt;zero trust&lt;/em&gt; em nuvem pública (especificamente no Azure), porém o modelo é agnóstico à tecnologia e ambientes, permitindo sua aplicação nos espaços mais variados e com as mais diferentes soluções.&lt;/p&gt;
&lt;h2 id=&quot;pilares-do-zero-trust&quot;&gt;Pilares do Zero Trust&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-arquitetura-zero-trust-no-azure/5d27a6e8-091c-466c-ac11-efe4cf27e42b.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;A imagem acima mostra apenas alguns tópicos que são tratados dentro dos pilares. Ao expandirmos a metodologia &lt;em&gt;zero trust&lt;/em&gt;, veremos que muitas outras coisas devem ser consideradas.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Nosso ambiente está aderente ao &lt;em&gt;zero trust&lt;/em&gt; uma vez que respeitamos os 3 pilares determinantes desse princípio: &lt;em&gt;&lt;strong&gt;verify explicitly&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;minimum privilege&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;assume breach&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Verify Explicitly&lt;/strong&gt; (&lt;em&gt;verificar de maneira explícita&lt;/em&gt;): esse princípio guia a implementação de modo que todo e qualquer tipo de interação/consumo do seu ambiente deve ser verificado. Entraremos em detalhes mais para frente, porém serviços como o &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; e o &lt;strong&gt;Microsoft Intune&lt;/strong&gt; são utilizados amplamente para garantir a aplicação do princípio;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimum Privilege&lt;/strong&gt; (&lt;em&gt;privilégio mínimo&lt;/em&gt;): consiste em fornecer apenas o mínimo de acesso necessário à identidade. O modelo de &lt;em&gt;&lt;strong&gt;RBAC&lt;/strong&gt;&lt;/em&gt; (&lt;em&gt;Role-Based Access Control&lt;/em&gt;) disponível no Azure facilita a aplicação deste princípio e permite que os administradores forneçam apenas o acesso necessário aos usuários;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assume Breach&lt;/strong&gt; (&lt;em&gt;assuma brechas&lt;/em&gt;): não devemos em momento algum assumir que nosso ambiente é seguro, por esse motivo, devemos implementar segurança nas comunicações e nos dados, do começo ao final do nosso ambiente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Os “pilares” declaram o que deve ser feito, os meios para se atingir aquele estado ficam completamente à critério dos times de segurança, arquitetura, sistemas e infraestrutura.&lt;/p&gt;
&lt;h2 id=&quot;por-quê-implementar-o-zero-trust-no-seu-ambiente&quot;&gt;Por quê implementar o Zero Trust no seu ambiente?&lt;/h2&gt;
&lt;p&gt;Quando estamos criando novas soluções, é comum que os arquitetos e engenheiros se preocupem com os mais diversos pontos de segurança do projeto. Em quase todos os projetos nós temos: tráfego de dados, exposição de endpoints, interação de usuários, armazenamento de informações, entre outros pontos. Todos esses “tópicos” geram discussões em torno da segurança da solução, por exemplo: “meus dados em repouso devem estar criptografados?”, “minha aplicação pode ser exposta para todos sem autenticação?” ou até “posso liberar acesso total aos meus recursos para os usuários?”.&lt;/p&gt;
&lt;p&gt;Como no &lt;strong&gt;Zero Trust&lt;/strong&gt; nós criamos uma série de políticas para garantir que o nosso ambiente siga as melhores práticas de mercado e os padrões de &lt;em&gt;compliance&lt;/em&gt; da nossa empresa, essas perguntas citadas no parágrafo anterior são respondidas rapidamente.&lt;/p&gt;
&lt;p&gt;A aplicação do &lt;strong&gt;Zero Trust&lt;/strong&gt; no seu ambiente fará com que o mesmo esteja preparado para possíveis falhas de segurança, que não comprometerão seus &lt;em&gt;workloads&lt;/em&gt; pois os mesmos estarão resguardados por conta da aplicação dos princípios!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;zero-trust-no-azure&quot;&gt;Zero Trust no Azure&lt;/h1&gt;
&lt;p&gt;Quando começamos a pensar na segurança do nosso ambiente &lt;strong&gt;Azure&lt;/strong&gt; (ou qualquer outra nuvem) é importante pensarmos nas “camadas” existentes. Em cima dessas camadas é que nós aplicaremos os nossos controles e as validações de segurança necessárias para manter nosso ambiente protegido.&lt;/p&gt;
&lt;p&gt;Vamos começar falando sobre o que devemos fazer para garantir a aplicação dos 3 pilares que comentamos anteriormente. Resolvendo cada um deles, teremos um ambiente bem estruturado e seguro, oferecendo mais tranquilidade para o desenvolvimento das soluções de negócio.&lt;/p&gt;
&lt;h2 id=&quot;minimum-privilege&quot;&gt;Minimum Privilege&lt;/h2&gt;
&lt;p&gt;Expandindo nosso entendimento desse princípio, o privilégio mínimo exige que o acesso fornecido aos recursos do nosso ambiente tenham o escopo estritamente necessário, nem mais, nem menos.&lt;/p&gt;
&lt;p&gt;A correta aplicação desse princípio reduz a chance de problemas catastróficos aconteçam devido o vazamento de uma identidade super-privilegiada.&lt;/p&gt;
&lt;p&gt;Não apenas relacionado ao comprometimento de credenciais, mas o privilégio mínimo também resguarda a organização de agentes mal intencionados e que querem causar algum prejuízo, seja financeiro ou a imagem da empresa.&lt;/p&gt;
&lt;p&gt;Veja abaixo uma arquitetura que demonstra como o privilégio mínimo pode ser aplicado e quais serviços podem ser utilizados:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-arquitetura-zero-trust-no-azure/d0c11982-9dbe-4570-8e8e-99ce7d445a50.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O vazamento de informações também é tratado quando aplicamos o privilégio mínimo, já que os acessos são fornecidos apenas no escopo necessário para desenvolvimento de certa atividade. Os níveis de aplicação do acesso costumam ser apenas ao recurso que o usuário em questão precisa acessar e as ações que podem ser realizadas são restritas às atividades que ele necessita realizar, não permitindo que o mesmo realize operações que não sejam as necessárias para a execução daquela tarefa.&lt;/p&gt;
&lt;p&gt;No desenho acima nós temos ao lado esquerdo uma estrutura de ambiente Azure e do lado direito o nosso &lt;strong&gt;Microsoft Entra ID Tenant&lt;/strong&gt;, responsável por controlar todo o acesso ao ambiente. Utilizando o &lt;strong&gt;Entra&lt;/strong&gt;, nós conseguimos gerir nossas identidades e aplicar de maneira granular o acesso aos recursos, também representados nas setas vindas do &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Acesso aos recursos&lt;/strong&gt; é o melhor dos cenários, pois podemos controlar qual instância do recurso o usuário estará acessando e o que estará fazendo. &lt;strong&gt;Acesso ao resource group&lt;/strong&gt; não é tão recomendado pois expõe a identidade à múltiplos recursos, as vezes sem a necessidade de acesso. &lt;strong&gt;Acesso a subscription&lt;/strong&gt; é definitivamente o pior dos cenários e o mais desencorajado, pois habilita uma identidade comprometida a acessar tudo que está sendo executado ali.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Quando estivermos falando de &lt;strong&gt;privilégio mínimo&lt;/strong&gt; devemos nos concentrar no &lt;strong&gt;escopo do acesso&lt;/strong&gt; e nas &lt;strong&gt;permissões&lt;/strong&gt; fornecidas, garantindo que o usuário poderá ver e executar apenas o necessário.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;O &lt;strong&gt;Microsoft Intune&lt;/strong&gt; (solução de &lt;em&gt;MDM&lt;/em&gt; - &lt;em&gt;Mobile Device Management&lt;/em&gt;) permite avaliarmos os dispositivos que estão acessando nossas soluções, garantindo que estão em &lt;em&gt;compliance&lt;/em&gt; com as regras da empresa e que tem todas as garantias de segurança aplicadas.&lt;/p&gt;
&lt;p&gt;Abaixo do desenho também temos o &lt;strong&gt;Microsoft Defender for Identity&lt;/strong&gt;, que nos permite ter visibilidade do nosso ambiente de identidade e fornece &lt;em&gt;insights&lt;/em&gt; em identidades “superpoderosas”, isso é, identidades com acesso a nível de administrador (que apresentam alto risco ao ambiente).&lt;/p&gt;
&lt;h2 id=&quot;verify-explicitly&quot;&gt;Verify Explicitly&lt;/h2&gt;
&lt;p&gt;Nesse princípio enxergamos a necessidade de garantir a avaliação da interação a qualquer momento. Nenhuma requisição é feita sem ser devidamente autenticada e autorizada.&lt;/p&gt;
&lt;p&gt;A devida aplicação desse princípio garante a integridade de todas as requisições e interações realizadas no nosso ambiente, dando certeza de que o ator realizando as operações é confiável e reconhecido e não houve nenhum tipo de comprometimento de informações e credenciais.&lt;/p&gt;
&lt;p&gt;Abaixo temos uma representação dos serviços que podem ser utilizados para aplicação desse princípio:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-arquitetura-zero-trust-no-azure/e7b62ce8-fc81-4b4a-acc5-f23ad19d2cf0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Assim como no &lt;strong&gt;princípio do privilégio mínimo&lt;/strong&gt;, o componente central da adoção desse princípio são as &lt;strong&gt;identidades&lt;/strong&gt;, representadas pelo &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;. TODA interação dentro do nosso ambiente &lt;strong&gt;Azure&lt;/strong&gt; deve ser devidamente autenticada e autorizada, levando em consideração as diferente informações capturadas pelo &lt;strong&gt;Entra&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Para componentes de plataforma, a autenticação e autorização será feita utilizando as capacidades das &lt;strong&gt;Managed identities&lt;/strong&gt;, gerenciadas pelo &lt;strong&gt;Entra&lt;/strong&gt; e que garantem a autenticidade do requisitor sem a necessidade de se passar credenciais de acesso.&lt;/p&gt;
&lt;p&gt;Nossas aplicações serão representadas pelas &lt;strong&gt;Service Principals&lt;/strong&gt; (ou &lt;strong&gt;Workload IDs&lt;/strong&gt;), também governadas pelo &lt;strong&gt;Entra&lt;/strong&gt;, mas que trafegam informações da identidade para autorizar a chamada aos recursos.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Intune&lt;/strong&gt; assim como no princípio anterior fornece uma camaada adicional de análise para permitir que as políticas implementadas no &lt;strong&gt;Entra&lt;/strong&gt; consigam com mais assertividade avaliar o acesso e a tomada de decisão da requisição.&lt;/p&gt;
&lt;p&gt;Do lado do &lt;strong&gt;Azure&lt;/strong&gt; temos alguns componentes de rede que podem ser utilizados para proteção do nosso perímetro. &lt;strong&gt;Firewalls&lt;/strong&gt;, &lt;strong&gt;WAF&lt;/strong&gt; e &lt;strong&gt;NSGs&lt;/strong&gt; são exemplos de recursos que nos permitem proteger nossos &lt;em&gt;workloads&lt;/em&gt; e garantir a eficácia contra ataques cibernéticos.&lt;/p&gt;
&lt;h2 id=&quot;assume-breach&quot;&gt;Assume Breach&lt;/h2&gt;
&lt;p&gt;Falamos muito sobre identidade nos outros dois princípios, agora chegou a vez dos &lt;strong&gt;dados&lt;/strong&gt; e da &lt;strong&gt;rede&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Para a implementação desse princípio é essencial termos nosso perímetro de rede bem configurado para evitar acessos indesejados e também criptografia de ponta a ponta em relação aos nosso dados.&lt;/p&gt;
&lt;p&gt;Na camada de rede, utilizaremos recursos para garantir que o tráfego será roteado para o destino correto, manteremos abertas apenas as portas necessárias para o funcionamento das soluções e aplicaremos todos os &lt;em&gt;gates&lt;/em&gt; de segurança de redes, independente da origem da chamada.&lt;/p&gt;
&lt;p&gt;Com nossos dados o importante será mantê-los seguros. Para isso devemos aplicar criptografia nas informações trafegadas e armazenadas (&lt;em&gt;at-rest&lt;/em&gt;). Os dados, independentemente de onde estiverem armazenados, deverão estar protegidos contra vazamentos acidentais, garantindo a confidencialidade das informações.&lt;/p&gt;
&lt;p&gt;Na junção da camada de dados e de redes temos o “canal” de comunicação, que deverá implementar criptografia &lt;em&gt;&lt;strong&gt;in-transit&lt;/strong&gt;&lt;/em&gt;, garantindo assim que nenhum agente mal-intencionado tenha acesso às informações ali trafegadas. Essa necessidade pode ser cumprida com a apliação de &lt;em&gt;&lt;strong&gt;mTLS&lt;/strong&gt;&lt;/em&gt;, que não há um serviço próprio para sua configuração, mas fazemos uso do &lt;strong&gt;Azure Key Vault&lt;/strong&gt;, que nos permite armazenar nossos certificados privados, necessários para estabelecimento da comunicação segura.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-arquitetura-zero-trust-no-azure/b40fd2ae-b8fc-432f-ac98-0e83f1f260c3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Uma etapa importante para cumprimento desse princípio é o monitoramento. É essencial que nosso ambiente esteja “visível” para os times de segurança, podendo tomar decisões apoiadas por informações verdadeiras sobre o estado da infraestrutura.&lt;/p&gt;
&lt;p&gt;Para captarmos &lt;em&gt;insights&lt;/em&gt; mais apurados e precisos, podemos fazer uso do &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt; e suas diferentes capacidades. &lt;strong&gt;Infrastructure&lt;/strong&gt;, &lt;strong&gt;Data&lt;/strong&gt;, &lt;strong&gt;Applications&lt;/strong&gt; e &lt;strong&gt;Identity&lt;/strong&gt; são algumas das áreas que o &lt;strong&gt;Defender&lt;/strong&gt; pode nos ajudar aumentar a cobertura do ambiente.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;A criptografia em repouso (&lt;strong&gt;at rest&lt;/strong&gt;) não foi abordada no desenho pois é muito particular de cada recurso. Cada base de dados no Azure tem um recurso próprio de criptografia, devendo ser configurado em cada instância do recurso.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id=&quot;evolução-do-seu-ambiente&quot;&gt;Evolução do seu ambiente&lt;/h2&gt;
&lt;p&gt;Nada na tecnologia dura pra sempre e é claro que a nossa estratégia de &lt;strong&gt;Zero Trust&lt;/strong&gt; também sofre desse “problema”.&lt;/p&gt;
&lt;p&gt;Os times de segurança deverão aprender com os problemas captados no ambiente e atualizar toda sua postura e estratégia de políticas. As &lt;strong&gt;políticas de acesso condicional&lt;/strong&gt; e as &lt;strong&gt;Azure Policies&lt;/strong&gt; deverão ser “vivas” e sempre mantidas atualizadas com as principais recomendações de mercado e lições aprendidas com os incidentes gerados.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Zero Trust&lt;/strong&gt; é um assunto denso mas extremamente importante. É essencial para a boa operação das empresas e desenvolvimento dos produtos que os ambientes estejam protegidos fim a fim, trazendo confiança para os times de desenvolvimento e &lt;em&gt;stakeholders&lt;/em&gt; da organização.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto, estou à disposição para responder quaisquer dúvidas que tiver.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Otimizando custos no Azure Blob Storage</title><link>https://pedroignacio.dev/post/otimizando-custos-no-azure-blob-storage/</link><guid isPermaLink="true">https://pedroignacio.dev/post/otimizando-custos-no-azure-blob-storage/</guid><description>Sempre ouvimos falar sobre como funcionam os object storages e sua capacidade de armazenar os documentos em diferentes “temperaturas”, visando otimizar custos e evitar gastos desnecessários, mas são poucas documentações que mostram como configurar es...</description><pubDate>Mon, 04 Sep 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sempre ouvimos falar sobre como funcionam os &lt;em&gt;object storages&lt;/em&gt; e sua capacidade de armazenar os documentos em diferentes “temperaturas”, visando otimizar custos e evitar gastos desnecessários, mas são poucas documentações que mostram como configurar essa funcionalidade. É isso que faremos hoje!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;O cronograma do tutorial de hoje será o seguinte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Criar uma &lt;em&gt;storage account&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Criar um container na &lt;em&gt;storage account&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Realizar upload de um &lt;em&gt;blob&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Criar a &lt;em&gt;&lt;strong&gt;lifecycle management rule&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Como o propósito do artigo é ensinar a criação da &lt;em&gt;lifecycle management rule&lt;/em&gt;, para as outras tarefas vamos utilizar comandos do Azure CLI.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;introdução&quot;&gt;Introdução&lt;/h1&gt;
&lt;p&gt;Quando estamos aprendendo sobre &lt;em&gt;storage&lt;/em&gt;, é garantido que o material que estamos utilizando contém uma seção que fala sobre as vantagens de se utilizar um &lt;em&gt;object storage&lt;/em&gt;, como os diferentes tipos de tiers/níveis/temperaturas funcionam e como os seus custos podem ser otimizados caso sua empresa tenha uma política de arquivamento de dados definida.&lt;/p&gt;
&lt;p&gt;Os materiais também comentam que as plataformas em nuvem fornecem os meios para você realizar essas operações nos seus objetos. Esses meios costumam ser templates &lt;em&gt;json&lt;/em&gt;, gerados através de formulários (ou digitados em um editor de texto) e que indicam onde as operações devem ocorrer e quais operações devem ser realizadas.&lt;/p&gt;
&lt;p&gt;Com o objetivo de te ensinar a otimizar seus custos de armazenamento em cloud de uma maneira simples e automatizada, vamos aprender como deletar os objetos após certo tempo que foram criados, e o mesmo método pode ser utilizado para alterar o &lt;em&gt;tier&lt;/em&gt; dos arquivos!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;pré-requisitos&quot;&gt;Pré-requisitos&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Uma &lt;em&gt;subscription&lt;/em&gt; ativa do Azure;&lt;/li&gt;
&lt;li&gt;Privilégios para criar e operar os recursos na plataforma (caso esteja utilizando sua conta pessoal, não se preocupe com isso);&lt;/li&gt;
&lt;li&gt;Acesso à linha de comando (podendo ser o Cloud Shell que já contém os pacotes do Azure CLI ou um terminal da sua máquina local com os pacotes instalados);&lt;/li&gt;
&lt;li&gt;Acesso ao Portal do Azure para criação da &lt;em&gt;Lifecycle Management Rule&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Um &lt;em&gt;resource group&lt;/em&gt; (na próxima sessão, antes de realizar a criação da &lt;em&gt;storage account&lt;/em&gt; e do &lt;em&gt;container&lt;/em&gt;, fornecerei um comando para você criar o &lt;em&gt;resource group&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id=&quot;criando-a-storage-account-e-um-container&quot;&gt;Criando a Storage Account e um Container&lt;/h1&gt;
&lt;p&gt;Como mencionado no cronograma, o primeiro passo é a criação dos recursos que serão necessários para prosseguimento do tutorial.&lt;/p&gt;
&lt;h2 id=&quot;opcional-criando-um-resourcegroup&quot;&gt;(opcional) Criando um resource group&lt;/h2&gt;
&lt;p&gt;Caso tenha um &lt;em&gt;resource group&lt;/em&gt; disponível desconsidere esse comando.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az group create --location &amp;#x3C;REGIÃO&gt; --name &amp;#x3C;NOME-ÚNICO&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;REGIÃO (obrigatório) — qual região o recurso deverá ser criado.&lt;/p&gt;
&lt;p&gt;NOME-ÚNICO (obrigatório) — o nome do &lt;em&gt;resource group&lt;/em&gt; deverá ser único dentro da sua &lt;em&gt;subscription&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;criando-a-storageaccount&quot;&gt;Criando a storage account&lt;/h2&gt;
&lt;p&gt;Para realizar a criação da &lt;em&gt;storage account&lt;/em&gt;, você deverá executar o seguinte comando:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az storage account create --name --resource-group&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;NOME (obrigatório) — o nome da &lt;em&gt;storage account&lt;/em&gt; deverá ser único globalmente.&lt;/p&gt;
&lt;p&gt;RESOURCE-GROUP (obrigatório) — nome do &lt;em&gt;resource group&lt;/em&gt; onde a &lt;em&gt;storage account&lt;/em&gt; deverá ser criada. Se você criou o &lt;em&gt;rg&lt;/em&gt; utilizando o script passado anteriormente, apenas copie o nome escolhido.&lt;/p&gt;
&lt;p&gt;É importante comentar que o comando acima não específica qual tipo de &lt;em&gt;storage account&lt;/em&gt; será criada. Quando o atributo que indica o tipo da conta é omitido, a conta criada será do tipo &lt;strong&gt;StorageV2&lt;/strong&gt; (General Purpose V2).&lt;/p&gt;
&lt;h2 id=&quot;criando-o-container&quot;&gt;Criando o container&lt;/h2&gt;
&lt;p&gt;Para a criação do container, utilizaremos o seguinte comando:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az storage container create --name --account-name&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;NOME (obrigatório) — o nome do container deverá ser único dentro da &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;STORAGE ACCOUNT (obrigatório) — nome da &lt;em&gt;storage account&lt;/em&gt; onde estaremos criando o container.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;realizando-upload-doblob&quot;&gt;Realizando upload do blob&lt;/h1&gt;
&lt;p&gt;Agora que temos todos as estruturas necessárias criadas, o próximo passo será realizar o upload de um ou mais &lt;em&gt;blobs&lt;/em&gt; para o nosso container.&lt;/p&gt;
&lt;p&gt;Caso você esteja utilizando o Cloud Shell para executar seus scripts, o método mais simples para realizar o upload de um arquivo é através do próprio Portal do Azure. Navegue até a &lt;em&gt;storage account&lt;/em&gt;, selecione o container, clique em “Upload” e selecione alguns arquivos existentes na sua máquina. Não se preocupe com o tipo dos arquivos, imagens, pdfs, vídeos, slides, todos são tipos válidos.&lt;/p&gt;
&lt;p&gt;Agora, caso você esteja executando os scripts de maneira local no seu terminal, para realizar o upload de um arquivo, execute o comando a seguir:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az storage blob upload --account-name --container-name --name --file&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;STORAGE ACCOUNT (obrigatório) — nome da &lt;em&gt;storage account&lt;/em&gt; que criamos.&lt;/p&gt;
&lt;p&gt;CONTAINER (obrigatório) — nome do container.&lt;/p&gt;
&lt;p&gt;NOME-ARQUIVO (obrigatório) — nome que será utilizado no momento de &lt;em&gt;upload&lt;/em&gt; do arquivo. Independente do nome original do arquivo, esse valor será utilizado quando o upload for realizado.&lt;/p&gt;
&lt;p&gt;ARQUIVO (obrigatório) — &lt;em&gt;path&lt;/em&gt; até o arquivo desejado.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;criando-a-lifecycle-management-rule&quot;&gt;Criando a Lifecycle Management Rule&lt;/h1&gt;
&lt;p&gt;Agora que você tem todos os recursos que são necessários para a realização do tutorial, chegou a hora de criarmos a configuração que realizará a troca do &lt;em&gt;tier&lt;/em&gt; dos objetos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As &lt;strong&gt;Lifecycle Management Rules&lt;/strong&gt; são puramente templates json que nos permitem criar regras que modificarão os blobs automaticamente. Podemos criar uma regra para alterar o tier do blob ou até para excluí-lo!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Para essa atividade, recomendo fortemente a utilização do Portal do Azure, pois as interações para criação da regra serão mais simples e intuitivas.&lt;/p&gt;
&lt;h2 id=&quot;criando-a-rule-através-do-portal-doazure&quot;&gt;Criando a rule através do Portal do Azure&lt;/h2&gt;
&lt;p&gt;Ao acessar a &lt;em&gt;dashboard&lt;/em&gt; da sua &lt;em&gt;storage account&lt;/em&gt;, navegue pelo menu à esquerda até a opção “Gerenciamento de Ciclo de Vida”. Nesse menu, selecione a opção “Add rule” e vamos iniciar a criação da nossa política.&lt;/p&gt;
&lt;p&gt;Para esse tutorial, vamos realizar a exclusão dos blobs do container após 1 dia criado. Esse cenário não é comum, mas para conseguirmos notar os resultados mais rápido, vamos implementar a política dessa forma.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Os cenários mais comuns que você encontrará, serão as mudanças de tier de acordo com a data de criação do blob com o objetivo de otimizar os custos e atender demandas regulatórias e também a deleção dos objetos quando não eles não forem mais úteis para o negócio.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/otimizando-custos-no-azure-blob-storage/342edc47-b15e-4418-9db5-4c5e29905758.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A primeira parte da configuração deverá ficar dessa maneira. Vamos aplicar a regra para todos os &lt;em&gt;blobs&lt;/em&gt; dentro da &lt;em&gt;storage account&lt;/em&gt; e limitaremos a aplicação da regra apenas aos &lt;em&gt;block blobs&lt;/em&gt;, que são objetos “simples”, que não sofrerão operações complexas.&lt;/p&gt;
&lt;p&gt;A opção “Limitar blobs com filtros” permite que você crie &lt;em&gt;queries&lt;/em&gt; para selecionar apenas alguns blobs na &lt;em&gt;storage account&lt;/em&gt;. Ex: você quer aplicar a política para todos os arquivos em que o nome comece com a letra T.&lt;/p&gt;
&lt;p&gt;O próximo passo é realizar a configuração da operação. No formulário, configuraremos que os blobs que foram criados a mais de 1 dia deverão ser excluídos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/otimizando-custos-no-azure-blob-storage/6349b6c8-b03c-44be-a851-36f2b5d001e3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Pronto, agora é só confirmar a aplicação da sua regra clicando em “Adicionar”.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Após a criação da política, pode ser que a primeira execução demore de 24 a 48 horas. Então por via das dúvidas, acesse sua storage account 2 dias após a configuração da política.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;resultado&quot;&gt;Resultado&lt;/h1&gt;
&lt;p&gt;2 dias se passaram e nós voltamos para visualizar os resultados da aplicação da nossa política.&lt;/p&gt;
&lt;p&gt;Visualizando o resultado…&lt;/p&gt;
&lt;h2 id=&quot;no-portal-doazure&quot;&gt;No portal do Azure&lt;/h2&gt;
&lt;p&gt;Acessando o &lt;a href=&quot;http://portal.azure.com&quot;&gt;Portal do Azure&lt;/a&gt;, navegue até a &lt;em&gt;storage account&lt;/em&gt; criada nos passos anteriores, acesse o container e &lt;em&gt;voilá&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/otimizando-custos-no-azure-blob-storage/47a8ec1c-3adc-4e67-8e32-a43e12f27463.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sua política foi executada com sucesso e todos os blobs em seu container foram excluídos!&lt;/p&gt;
&lt;h2 id=&quot;no-cloudshell&quot;&gt;No Cloud Shell&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;az storage blob list --account-name --container-name&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;STORAGE-ACCOUNT (obrigatório) — nome da &lt;em&gt;storage account&lt;/em&gt; que criamos.&lt;/p&gt;
&lt;p&gt;CONTAINER (obrigatório) — nome do container.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/otimizando-custos-no-azure-blob-storage/156610ad-ecef-46cb-b868-ba6b8c8ac32d.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Caso a execução do comando retorne um &lt;strong&gt;&lt;em&gt;array&lt;/em&gt; vazio&lt;/strong&gt;, temos a certeza que todos os objetos da &lt;em&gt;storage account&lt;/em&gt; foram excluídos, resultado a aplicação da política criada.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Chegando ao final do tutorial, você aprendeu como otimizar os custos da sua &lt;em&gt;storage account&lt;/em&gt; de maneira simples e eficiente.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;lifecycle management rules&lt;/em&gt; oferecem grande benefício para seu ambiente cloud, além de serem simples de configurar.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Passkeys: o presente do MFA</title><link>https://pedroignacio.dev/post/passkeys/</link><guid isPermaLink="true">https://pedroignacio.dev/post/passkeys/</guid><description>Deixando de ser apenas uma tendência, o uso do passwordless passou a ser expandido nas organizações e empresas ao redor do mundo. Sua chegada trouxe como benefícios não apenas a segurança do ambiente, mas também a melhora na experiência do usuário, q...</description><pubDate>Tue, 07 May 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Deixando de ser apenas uma tendência, o uso do &lt;em&gt;passwordless&lt;/em&gt; passou a ser expandido nas organizações e empresas ao redor do mundo. Sua chegada trouxe como benefícios não apenas a segurança do ambiente, mas também a melhora na experiência do usuário, que não precisa recordar senhas complexas. Apresentando uma outra opção para uma autenticação &lt;em&gt;passwordless&lt;/em&gt; temos as &lt;strong&gt;Passkeys&lt;/strong&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-são-passkeys&quot;&gt;O que são Passkeys?&lt;/h1&gt;
&lt;p&gt;Com a tendência de desativação das tradicionais senhas por problemas de segurança e usabilidade, os métodos de autenticação &lt;em&gt;passwordless&lt;/em&gt; surgem como principais opções para a autenticação dos usuários.&lt;/p&gt;
&lt;p&gt;Dentro desse grupo, temos como novo integrante as &lt;em&gt;&lt;strong&gt;Passkeys&lt;/strong&gt;&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;passkeys&lt;/em&gt; foram criadas e divulgadas pela &lt;strong&gt;FIDO Alliance&lt;/strong&gt;, uma das principais referências quando o tema é &lt;strong&gt;identity security&lt;/strong&gt;. A proposta cumprida pela criação das &lt;em&gt;passkeys&lt;/em&gt; foi: deixar os acessos mais seguros, ao mesmo tempo fornecendo para o usuário maior conforto em seu uso.&lt;/p&gt;
&lt;p&gt;Com o uso de uma &lt;em&gt;passkey&lt;/em&gt; para se autenticar na aplicação, o usuário se beneficia do uso de um dos fatores de autenticação configurados para acessar aquele dispositivo (sendo um &lt;em&gt;&lt;strong&gt;PIN&lt;/strong&gt;&lt;/em&gt; ou sua &lt;em&gt;&lt;strong&gt;biometria&lt;/strong&gt;&lt;/em&gt;) para confirmar o acesso a aplicação. O “cumprimento” dessa etapa de autenticação permitirá que o processo de interação com a aplicação seja concluído.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Em dispositivos &lt;em&gt;windows&lt;/em&gt; que contenham as capacidades do &lt;em&gt;windows hello for business&lt;/em&gt;, podemos fazer uso da biometria facial para desbloqueio da máquina, bem como para autenticação na aplicação.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;como-elas-funcionam&quot;&gt;Como elas funcionam?&lt;/h1&gt;
&lt;p&gt;Antes de entrarmos no detalhe sobre como as &lt;em&gt;passkeys&lt;/em&gt; funcionam, é importante deixar claro que o pré-requisito para as utilizarmos é: a plataforma que estamos acessando deve fornecer suporte a esse método de autenticação. Isso se dá por conta das interações que serão feitas entre &lt;em&gt;&lt;strong&gt;cliente&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;servidor&lt;/strong&gt;&lt;/em&gt;, sendo necessário validar o “desafio” gerado pelo evento de autenticação.&lt;/p&gt;
&lt;p&gt;Após garantirmos que a plataforma que será utilizada suporta o uso desse método de autenticação, chegou a hora de entrarmos no detalhe sobre o que mais é necessário e como ocorrem as interações.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;passkeys&lt;/em&gt; contém 2 componentes principais utilizados em suas interações:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chave Privada&lt;/strong&gt; - armazenado no cliente (dispositivo do usuário)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chave Pública&lt;/strong&gt; - armazenada no servidor da aplicação&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A chave pública será gerada à partir da chave privada e enviada ao servidor de aplicação, onde será armazenada. Quando um fluxo de autenticação for executado, um “desafio” será enviado para o dispositivo do usuário. Será solicitado que o usuário desbloqueie o dispositivo, “assinando” o desafio e retornando para o servidor, que validará o resultado da assinatura, garantindo que o usuário autenticado é o detentor daquela &lt;em&gt;passkey&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Esse é de maneira simplificada, o processo de uso de uma &lt;em&gt;passkey&lt;/em&gt;. Antes do uso, temos seu cadastro, que se dá dessa forma:&lt;/p&gt;
&lt;p&gt;![](&lt;a href=&quot;https://web.dev/static/articles/passkey-registration/image/passkey-registration-diagram_856.png&quot;&gt;https://web.dev/static/articles/passkey-registration/image/passkey-registration-diagram_856.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;O usuário inicia a interação na aplicação &lt;em&gt;web&lt;/em&gt; selecionando a opção de “criar uma &lt;em&gt;passkey&lt;/em&gt;”. A partir dessa interação, o &lt;em&gt;back-end&lt;/em&gt; iniciará o processo de criação da &lt;em&gt;passkey&lt;/em&gt;, enviando ao dispositivo a solicitação para criação da chave privada e chave pública e recebendo a própria chave pública, gerada após o desbloqueio do dispositivo pelo usuário.&lt;/p&gt;
&lt;p&gt;Após a criação da &lt;em&gt;passkey&lt;/em&gt;, toda vez que for se autenticar na aplicação em questão, o usuário poderá selecionar a opção “&lt;em&gt;login with passkey&lt;/em&gt;”. Receberá uma solicitação para selecionar a &lt;em&gt;passkey&lt;/em&gt; e se autenticará utilizando um PIN ou uma biometria.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E é isso!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/passkeys/bb083820-6b65-4e6d-87c2-0b4157d8e1c7.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Um exemplo de aplicação que tem o uso das &lt;em&gt;passkeys&lt;/em&gt; habilitado é o &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;. Logo na primeira página (formulário de &lt;em&gt;login&lt;/em&gt;) você será questionado se deseja acessar sua conta utilizando uma &lt;em&gt;passkey&lt;/em&gt; ou seu conjunto de credenciais padrão (usuário + senha + 2FA).&lt;/p&gt;
&lt;p&gt;Ao clicar em “&lt;em&gt;sign in with a passkey&lt;/em&gt;” você receberá uma tela parecida com essa:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/passkeys/14e0a320-1014-4b5d-baaf-b841b3e06fc2.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Esse &lt;em&gt;prompt&lt;/em&gt; é do Windows Hello e permite que você selecione com qual &lt;em&gt;passkey&lt;/em&gt; deseja autenticar na aplicação.&lt;/p&gt;
&lt;p&gt;Você também tem a opção de utilizar uma &lt;em&gt;passkey&lt;/em&gt; diferente, como por exemplo uma existente em outro dispositivo.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;benefícios&quot;&gt;Benefícios&lt;/h1&gt;
&lt;p&gt;Sendo um método de autenticação &lt;em&gt;phishing resistant&lt;/em&gt;, temos bem claro que a segurança contra &lt;strong&gt;vazamentos de dados&lt;/strong&gt; e &lt;strong&gt;roubo de credenciais&lt;/strong&gt; são benefícios herdados quando utilizamos esse método de autenticação.&lt;/p&gt;
&lt;p&gt;Do ponto de vista do usuário, o fato de não ser mais necessário recordar as credenciais para todos os acessos traz conforto e confiança no momento de acesso à aplicação. Do lado da aplicação, não se preocupar com armazenar informações sensíveis e protegê-las contra o vazamento de dados retira uma significativa carga de trabalho dos administradores.&lt;/p&gt;
&lt;p&gt;Outro benefício das &lt;em&gt;passkeys&lt;/em&gt; que nenhum outro método de autenticação tem é o “link” com informações que não podem ser utilizadas por outros usuários. Em dispositivos que contém o &lt;em&gt;windows hello for business&lt;/em&gt;, você pode utilizar sua biometria facial para acessar sua conta. Esse recurso garante que você (e apenas você) possa acessar aquela conta com a &lt;em&gt;passkey&lt;/em&gt; selecionada.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Se a sua organização fizer uso do &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;, é possível configurar o uso das &lt;em&gt;passkeys&lt;/em&gt; junto do aplicativo &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; para permitir a autenticação nas aplicações que estão conectadas ao Entra.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;O futuro é &lt;em&gt;passwordless&lt;/em&gt; e o quanto antes as organizações implementarem esse novo modelo de acesso, mais rápido os times de segurança e os usuários poderão usufruir dos benefícios gerados pela sua adoção.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e nos veremos em breve.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Private Endpoints</title><link>https://pedroignacio.dev/post/private-endpoints/</link><guid isPermaLink="true">https://pedroignacio.dev/post/private-endpoints/</guid><description>Fazendo referência ao modelo de defesa em profundidade (defense in-depth), uma das camadas que devemos considerar quando estivermos montando nossa arquitetura é a camada de rede (networking). É nessa camada que todos os nossos dados passarão, então é...</description><pubDate>Tue, 19 Mar 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Fazendo referência ao modelo de defesa em profundidade (&lt;em&gt;&lt;strong&gt;defense in-depth&lt;/strong&gt;&lt;/em&gt;), uma das camadas que devemos considerar quando estivermos montando nossa arquitetura é a camada de rede (&lt;em&gt;&lt;strong&gt;networking&lt;/strong&gt;&lt;/em&gt;). É nessa camada que todos os nossos dados passarão, então é essencial que no momento de projeção da solução, sua segurança seja levada em conta e tratada com cautela. Hoje vamos falar sobre os &lt;em&gt;&lt;strong&gt;Private Endpoints&lt;/strong&gt;&lt;/em&gt;, solução do &lt;strong&gt;Azure&lt;/strong&gt; que nos permite manter a comunicação com os recursos da plataforma segura.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-são&quot;&gt;O que são?&lt;/h1&gt;
&lt;p&gt;Manter as comunicações entre recursos privadas é um desejo de quase todas as empresas em praticamente todos os cenários, porém isso nem sempre é possível devido a uma série de fatores - o recurso utilizado não suporta comunicação 100% privada, o custo de utilização e implementação é muito alto e não irá gerar ganhos substanciais ao projeto.&lt;/p&gt;
&lt;p&gt;Nos casos onde as necessidades de negócio permitem e justificam esse modelo de comunicação, podemos sugerir o uso dos &lt;strong&gt;private endpoints&lt;/strong&gt; (quando técnicamente possível/viável).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/private-endpoints/13176469-0403-43fb-b090-2c8057531d9e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Um &lt;strong&gt;Private Endpoint&lt;/strong&gt; é um tipo de recurso do Azure que permite que suas soluções se comuniquem com recursos da plataforma de maneira segura e privada, não passando pela internet.&lt;/p&gt;
&lt;p&gt;São usados em larga escala em ambientes empresariais, que precisam manter suas comunicações privadas por motivos de segurança, performance e até mesmo de &lt;em&gt;compliance&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Os &lt;strong&gt;private endpoints&lt;/strong&gt; estão disponíveis de maneira nativa apenas para soluções &lt;strong&gt;&lt;em&gt;PaaS&lt;/em&gt;&lt;/strong&gt; (&lt;em&gt;Platform as a Service&lt;/em&gt;) disponíveis no Azure.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;É importante compreendermos essas “limitações”, pois no momento de montagem da sua arquitetura, em que estivermos estudando os recursos que deverão ser utilizados, nos depararemos com cenários como esses.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;como-funcionam&quot;&gt;Como funcionam?&lt;/h1&gt;
&lt;p&gt;Como mencionado anteriormente, os &lt;strong&gt;private endpoints&lt;/strong&gt; funcionam na camada de &lt;em&gt;networking&lt;/em&gt; do nosso ambiente &lt;strong&gt;Azure&lt;/strong&gt;, devendo ser implementados dentro das nossas estruturas de &lt;strong&gt;VNet&lt;/strong&gt; (&lt;em&gt;Virtual Network&lt;/em&gt; - Rede Virtual).&lt;/p&gt;
&lt;p&gt;Por trás dos panos, esse recurso funciona sob o &lt;strong&gt;Azure Private Link&lt;/strong&gt;, serviço que permite estabeler uma comunicação segura com qualquer recurso da plataforma. A diferença é que com os &lt;strong&gt;private endpoints&lt;/strong&gt; a configuração dos recursos já vem pronta, não havendo a necessidade de se entrar em tantos detalhes como é feito com o &lt;strong&gt;private link&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Ao criar um &lt;strong&gt;private endpoint&lt;/strong&gt; o que está sendo criado é um &lt;strong&gt;IP privado&lt;/strong&gt; para aquele recurso dentro da sua &lt;em&gt;subnet&lt;/em&gt;. Como sabemos, os recursos &lt;em&gt;PaaS&lt;/em&gt; não requerem a seleção de uma &lt;em&gt;VNet&lt;/em&gt; para serem criados, portanto a criação de um &lt;strong&gt;private endpoint&lt;/strong&gt; para aquele recurso em questão, faz com que ele seja representado dentro da sua própria &lt;em&gt;VPC&lt;/em&gt;, podendo então ser referenciado internamente.&lt;/p&gt;
&lt;p&gt;Quando uma solução é configurada para utilizar os &lt;strong&gt;private endpoints&lt;/strong&gt; todos os acessos a esses recursos serão roteados através do &lt;em&gt;&lt;strong&gt;backbone&lt;/strong&gt;&lt;/em&gt; global da &lt;strong&gt;Microsoft&lt;/strong&gt;, não passando em momento algum pela internet. Isso garante à solução velocidade, segurança e privacidade, alcançando os objetivos anteriormente listados.&lt;/p&gt;
&lt;p&gt;Após o estabelecimento de um &lt;strong&gt;IP privado&lt;/strong&gt; para o seu recurso &lt;em&gt;PaaS&lt;/em&gt;, um passo importante é termos a configuração da &lt;strong&gt;zona de DNS privado&lt;/strong&gt; para o seu recurso, criando um &lt;em&gt;endpoint&lt;/em&gt; legível, compreensível e que faça muito mais sentido do que se especificar um IP dentro da sua aplicação.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;arquitetura&quot;&gt;Arquitetura&lt;/h1&gt;
&lt;p&gt;Pensando na simples implementação de um &lt;strong&gt;Azure Key Vault&lt;/strong&gt; com &lt;strong&gt;private endpoints&lt;/strong&gt;, teremos uma arquitetura parecida com a representada abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/private-endpoints/48c2b07a-2013-41ba-a086-d98b9c370dfc.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nossos &lt;em&gt;workloads&lt;/em&gt; (aplicações) estão sendo executadas na VNet representada, que também contém uma &lt;em&gt;subnet&lt;/em&gt; dedicada para os &lt;strong&gt;private endpoints&lt;/strong&gt;. A aplicação executada consome o &lt;strong&gt;key vault&lt;/strong&gt; pelo seu &lt;em&gt;endpoint&lt;/em&gt; privado, ou seja, o &lt;em&gt;endpoint&lt;/em&gt; configurado utilizando a zona privada de DNS, que faz uma referência ao IP privado do recurso (representado pelo &lt;em&gt;NIC&lt;/em&gt; - &lt;em&gt;Network Interface Card&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Com essa arquitetura montada, tods os &lt;em&gt;workloads&lt;/em&gt; que estiverem sendo executado na VNet em questão e nas VNets conectadas poderão consumir o &lt;strong&gt;key vault&lt;/strong&gt; através do seu &lt;strong&gt;private endpoint&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;quando-usar&quot;&gt;Quando usar?&lt;/h1&gt;
&lt;p&gt;Pergunta frequente no dia a dia de um arquiteto, &lt;em&gt;&lt;strong&gt;“quando devemos utilizar esse recurso?”&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Os principais motivos foram mencionados ao longo do texto, esses sendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Privacidade&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segurança&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Velocidade/Performance&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compliance&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Manter uma comunicação entre recursos privada gera benefícios de pequena e de larga escala nas soluções. Para grandes organizações, é provavel a definição de uso dos &lt;strong&gt;private endpoints&lt;/strong&gt; seja à nível corporativo, devido a redução da superfície de ataque (já que os recursos não estarão expostos à internet) gerada pela implementação desse recurso e também pela simplificação das análises dos projetos.&lt;/p&gt;
&lt;p&gt;Como não só de &lt;strong&gt;segurança&lt;/strong&gt; e &lt;strong&gt;performance&lt;/strong&gt; vivem as empresas, uma outra preocupação para uso de novos recursos são os &lt;strong&gt;custos&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;pricing&quot;&gt;Pricing&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/private-endpoints/9cd082ba-0252-4d6f-a10e-5b547c56687d.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima (retirada da documentação oficial da Microsoft) representa o modelo de cobrança e &lt;em&gt;pricing&lt;/em&gt; dos &lt;strong&gt;private endpoints&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Note que temos 3 pontos de preocupação:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Custo base&lt;/strong&gt; - custo gerado pela solução apenas por ser implementada, nesse caso, $0.01/hora;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inbound Data Processed&lt;/strong&gt; - ingestão de dados através dos &lt;strong&gt;private endpoints&lt;/strong&gt;, sendo cobrada de acordo com a quantidade de dados transmitida;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outbound Data Processed&lt;/strong&gt; - saída de dados através dos &lt;strong&gt;private endpoints&lt;/strong&gt;, como o modelo anterior, cobrada de acordo com a quantidade de dados trafegados através do recurso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essas serão as cobranças realizadas quando seus &lt;strong&gt;private endpoints&lt;/strong&gt; estiverem implementados. Não esqueça de levar esses valores em conta quando for apresentar aos &lt;em&gt;stakeholders&lt;/em&gt; do projeto os custos referentes à solução.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Os preços irão variar de acordo com a região que estiver sendo utilizada e também com a cotação da moeda referênciada.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;Por hoje é isso, espero que tenha gostado do texto e que eu tenha conseguido contribuir para o seu entendimento de como esse recurso funciona e os motivos que levam os arquitetos a recomendar seu uso.&lt;/p&gt;
&lt;p&gt;Estou à disposição para responder quaisquer dúvidas pelo meu Linkedin ou pelo próprio blog.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>SC-900 - Microsoft Security, Compliance and Identity Fundamentals</title><link>https://pedroignacio.dev/post/sc900-thoughts/</link><guid isPermaLink="true">https://pedroignacio.dev/post/sc900-thoughts/</guid><description>Em mais um episódio falando sobre certificações, vamos conversar sobre a porta de entrada para o mundo de cibersegurança na Azure.

Em um mundo onde tudo está conectado, com acesso à internet e com a velocidade que os negócios vem evoluindo, a segura...</description><pubDate>Tue, 27 Jun 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Em mais um episódio falando sobre certificações, vamos conversar sobre a porta de entrada para o mundo de cibersegurança na Azure.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Em um mundo onde tudo está conectado, com acesso à internet e com a velocidade que os negócios vem evoluindo, &lt;strong&gt;a segurança é importância no D0 (&lt;em&gt;day zero&lt;/em&gt; = início)&lt;/strong&gt;. Não existem empresas que estão na cloud e que não tem nenhum tipo de preocupação com a &lt;strong&gt;segurança&lt;/strong&gt;, &lt;strong&gt;confidencialidade&lt;/strong&gt;, &lt;strong&gt;disponibilidade&lt;/strong&gt; e &lt;strong&gt;integridade&lt;/strong&gt; dos seus dados e serviços.&lt;/p&gt;
&lt;p&gt;Agora que você entendeu que a segurança cibernética é realmente um assunto importante e que está “na boca do povo”, hoje falaremos da prova SC-900: &lt;strong&gt;Fundamentos de Segurança, Conformidade e Integridade da Microsoft&lt;/strong&gt;. Vou te contar um pouco sobre a prova, passar dicas de materiais que você pode utilizar para se preparar e no final do texto compartilhar alguns macetes para que a sua experiência no exame seja a mais prazerosa possível.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;sobre-oexame&quot;&gt;Sobre o exame&lt;/h1&gt;
&lt;p&gt;Como todas as provas *-900, essa não é uma prova de especialidades mas sim uma prova de fundamentos, então tenha isso em mente. Não se cobre de entender todos os recursos de fim a fim e saber todas as especificações técnicas e peculiaridades de cada um deles, você está só começando no mundo de cibersegurança em nuvem, então lembre que essa prova é para que você possa dar seu primeiro passo. As provas mais técnicas e profundas serão abordadas nos próximos artigos (AZ-500 e SC-100).&lt;/p&gt;
&lt;p&gt;As perguntas do teste não terão profundidade técnica, então não é necessário saber exatamente a fundo como o serviço funciona. O importante é que você saiba quais são os serviços e o que eles fazem, mantendo-se em um alto nível de conhecimento. Ter um conhecimento da plataforma como um todo e talvez brincar um pouco com alguns dos serviços fará com que você se sinta confortável para encarar o teste.&lt;/p&gt;
&lt;p&gt;A prova é relativamente simples e contém próximo de 40 questões que poderão ser feitas com tranquilidade.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;dicas&quot;&gt;Dicas&lt;/h1&gt;
&lt;h2 id=&quot;da-prova&quot;&gt;Da prova&lt;/h2&gt;
&lt;p&gt;Conforme escrevo esse texto, vou deixando algumas opiniões sobre o exame, porém nessa seção vou falar um pouco sobre onde senti mais dificuldade durante a prova e durante a minha preparação.&lt;/p&gt;
&lt;p&gt;Por já ter certa experiência trabalhando com Azure, não senti dificuldade ao aprender sobre os recursos de plataforma, pois já conhecia a grande maioria deles, porém os serviços abordados no tópico de conformidade eram novos pra mim. Coisas como &lt;em&gt;Defender for 365&lt;/em&gt;, &lt;em&gt;Microsoft Purview&lt;/em&gt;, &lt;em&gt;Service Trust portal&lt;/em&gt;, entre outros serviços, tiraram um pouco da segurança que eu tinha para fazer a prova. O que me restava? Estudá-los!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Apenas um comentário: esses serviços tinham sido adicionados recentemente na estrutura do exame, então é de extrema importância que você fique de olho na documentação oficial da prova para saber quais foram as mais novas adições.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Falarei um pouco mais dos materiais utilizados no próximo módulo, mas ler sobre os recursos, vê-los funcionando através de demonstrações oficiais e vídeos no &lt;em&gt;youtube&lt;/em&gt; fizeram com que eu ficasse muito mais confortável com eles.&lt;/p&gt;
&lt;p&gt;Sobre a experiência é isso, não tem muito segredo por se tratar de um exame de fundamentos. Esteja calmo e confiante para o teste, isso é essencial!&lt;/p&gt;
&lt;h2 id=&quot;de-conteúdo&quot;&gt;De conteúdo&lt;/h2&gt;
&lt;p&gt;O principal recurso que utilizei foram os módulos do &lt;em&gt;microsoft learn&lt;/em&gt;, que você pode encontrar clicando &lt;a href=&quot;https://learn.microsoft.com/pt-br/certifications/exams/sc-900/&quot;&gt;aqui&lt;/a&gt;. Os módulos são ricos em conteúdo, separados de acordo com os tópicos do exame para facilitar o estudo, você encontrará textos, imagens, vídeos e testes para validar seu aprendizado. A melhor coisa sobre esses módulos é que você tem liberdade de fazê-los no seu ritmo, anotando, conferindo, pesquisando e testando, sem a pressa de cumprir prazos ou acompanhar um instrutor.&lt;/p&gt;
&lt;p&gt;Aproveito para deixar &lt;a href=&quot;https://github.com/pedroignacio13/SC900-resumo&quot;&gt;aqui&lt;/a&gt; o link do meu repositório no &lt;em&gt;github&lt;/em&gt;, que contém o resultado de todo o meu estudo consolidado em um PDF que poderá ajudá-lo a se preparar para a prova. O PDF é um resumo de tudo que aprendi, então &lt;strong&gt;não&lt;/strong&gt; recomendo utilizá-lo como recurso principal de estudo, mas sim como uma forma de consulta quando achar necessário.&lt;/p&gt;
&lt;p&gt;Outro recurso interessante e oficial da Microsoft, são os assessments. Os assessments são conjuntos de perguntas de múltiplas respostas que servem para validar seu conhecimento sobre os conceitos abordados na prova, além de que caso você erre a resposta, poderá ver uma explicação da alternativa correta. Caso queira acessar o assessment específico da prova, clique &lt;a href=&quot;https://learn.microsoft.com/en-us/certifications/exams/sc-900/practice/assessment?assessmentId=11&amp;#x26;assessment-type=practice&quot;&gt;aqui&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;E para finalizar as dicas, é hora da mais valiosa, a &lt;strong&gt;prática&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;PRÁTICA&lt;/strong&gt; é sua melhor amiga em todos os cenários existentes. Ela vai fazer com que você consiga fixar o conhecimento adquirido de maneira mais eficiente e te trará muito mais segurança. Mesmo não sendo um requisito para a realização do teste, se você puder praticar um pouquinho sem se preocupar em gastar muito com a plataforma eu recomendaria fortemente. Faça uso do &lt;em&gt;free tier&lt;/em&gt; dos serviços, crie um &lt;em&gt;budget&lt;/em&gt; para sua prática e aprenda a usar os serviços, mesmo que seja com um passo a passo encontrado pela internet. FAÇA!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;a-prova&quot;&gt;A prova&lt;/h1&gt;
&lt;p&gt;Quando estiver fazendo a prova, preste bastante atenção no tempo restante. Não é necessário ficar olhando o cronômetro toda hora, mas certifique-se de que não está gastando tempo demais em uma só questão e esquecendo as outras, isso pode te prejudicar no final do teste quando ainda tiver uma série de perguntas para resolver e pouquíssimo tempo. Se está “empacado” em alguma questão, marque-a para revisão e assim que terminar as outras você poderá continuar pensando naquela questão que estava preso.&lt;/p&gt;
&lt;p&gt;Leia com calma as questões, você tem tempo suficiente para fazer a prova e não precisa correr.&lt;/p&gt;
&lt;p&gt;As perguntas não serão extensas, a grande maioria delas será direta ao ponto, sem caso de uso, sem ambiente para ser levado em conta, você vai ler a questão e conseguir identificar dentre as respostas possíveis, qual delas é a correta.&lt;/p&gt;
&lt;p&gt;Alguns temas que você deve ficar de olho: &lt;em&gt;&lt;strong&gt;Microsoft Purview&lt;/strong&gt;&lt;/em&gt; e suas capacidades (&lt;em&gt;compliance manager&lt;/em&gt;, &lt;em&gt;data classification, information protection&lt;/em&gt;, &lt;em&gt;data loss prevention&lt;/em&gt;, &lt;em&gt;retention labels&lt;/em&gt;, &lt;em&gt;retention policies&lt;/em&gt;, etc.), &lt;em&gt;&lt;strong&gt;Service Trust Portal&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;Microsoft Priva&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;6 princípios de privacidade da Microsoft&lt;/strong&gt;&lt;/em&gt; (controle, transparência, segurança, proteção legal, benefícios para você e sem marketing direcionado), soluções de segurança de plataforma (&lt;em&gt;&lt;strong&gt;WAF&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;Application Gateway&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;Azure Firewall&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;Azure Front Door&lt;/strong&gt;&lt;/em&gt;, etc) e é claro, no pilar de identidade, o &lt;em&gt;&lt;strong&gt;Microsoft Entra&lt;/strong&gt;&lt;/em&gt; (&lt;em&gt;&lt;strong&gt;Azure AD&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;ID Verificada&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;Gerenciamento de permissões&lt;/strong&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Por fim, &lt;strong&gt;estude&lt;/strong&gt;, &lt;strong&gt;revise&lt;/strong&gt; e &lt;strong&gt;passe&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Não existe uma fórmula mágica do sucesso, o trabalho duro e a disciplina sempre serão os responsáveis pelas tuas vitórias, independente do que estiver fazendo.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha conseguido te ajudar a se preparar melhor, se sentir mais calmo e acima de tudo, mais confiante para a prova. Não hesite em comentar nesse artigo caso tenha alguma dúvida e se gostou deixe algumas palminhas por favor!&lt;/p&gt;
&lt;p&gt;Boa prova ❤&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>SSO, é realmente uma boa ideia?</title><link>https://pedroignacio.dev/post/sso-e-realmente-uma-boa-ideia/</link><guid isPermaLink="true">https://pedroignacio.dev/post/sso-e-realmente-uma-boa-ideia/</guid><description>Ao discutir sobre identidade, SSO é um tema bem recorrente, pela simplicidade gerada ao usuário final e pelos seus &quot;benefícios&quot; de segurança. Mas será que uma implementação de SSO é sempre a melhor escolha? Ou melhor, será que realmente é seguro?

O ...</description><pubDate>Tue, 14 Nov 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ao discutir sobre identidade, SSO é um tema bem recorrente, pela simplicidade gerada ao usuário final e pelos seus “benefícios” de segurança. Mas será que uma implementação de SSO é sempre a melhor escolha? Ou melhor, &lt;strong&gt;será que realmente é seguro&lt;/strong&gt;?&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-o-sso&quot;&gt;O que é o SSO?&lt;/h1&gt;
&lt;p&gt;![Imagem retirada de: &lt;a href=&quot;https://frontegg.com/guides/single-sign-on-sso%5D(&quot;&gt;https://frontegg.com/guides/single-sign-on-sso](&lt;/a&gt;&lt;a href=&quot;https://frontegg.com/wp-content/webp-express/webp-images/uploads/2023/04/Inner-graphic_3-1024x528.png.webp&quot;&gt;https://frontegg.com/wp-content/webp-express/webp-images/uploads/2023/04/Inner-graphic_3-1024x528.png.webp&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SSO&lt;/strong&gt; ou &lt;em&gt;&lt;strong&gt;Single Sign-On&lt;/strong&gt;&lt;/em&gt;, é o termo que representa uma configuração que pode ser realizada em seu &lt;em&gt;identity provider&lt;/em&gt; e que permite que aplicações que estão “plugadas” no &lt;em&gt;IdP&lt;/em&gt; compartilhem a mesma sessão, não havendo a necessidade do usuário realizar múltiplas autenticações.&lt;/p&gt;
&lt;p&gt;Essa funcionalidade gera ao usuário mais conforto ao utilizar as aplicações, uma vez que como mencionado, o mesmo não precisará utilizar suas credenciais a cada aplicação que estará acessando.&lt;/p&gt;
&lt;h3 id=&quot;requisitos-para-implementação-do-sso&quot;&gt;Requisitos para implementação do SSO&lt;/h3&gt;
&lt;p&gt;A peça chave e componente principal para configuração do &lt;em&gt;SSO&lt;/em&gt; é o &lt;em&gt;IdP&lt;/em&gt; (&lt;em&gt;Identity Provider&lt;/em&gt; - Provedor de Identidade). É necessário que as aplicações que devem sofrer o impacto da aplicação da política estejam federadas no mesmo &lt;em&gt;IdP&lt;/em&gt; e que permitam a configuração do SSO.&lt;/p&gt;
&lt;p&gt;Entendido como o &lt;em&gt;SSO&lt;/em&gt; funciona, vamos discutir e analisar os dois pontos de vista, o do &lt;strong&gt;usuário&lt;/strong&gt; e o dos &lt;strong&gt;times de segurança&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;benefícios-do-sso-para-o-usuário&quot;&gt;Benefícios do SSO (para o usuário)&lt;/h1&gt;
&lt;p&gt;É comum que nas grandes organizações, a lista de soluções utilizadas pelos diversos departamentos e áreas chegue às centenas. Os times utilizam uma série de soluções com o propósito de conseguir realizar um trabalho mais efetivo e que entregue mais valor à organização e aos clientes, enquanto a lista de aplicações utilizadas só cresce conforme o tempo. Soluções novas são contratadas, soluções antigas são descontinuadas, e isso ocorre em todas as áreas, então se pensarmos nos períodos entre a contratação de uma nova solução e a desativação de uma solução antiga, a lista de aplicações que são utilizadas pelos usuários é enorme.&lt;/p&gt;
&lt;p&gt;Saber que existem áreas que utilizam dezenas de ferramentas diariamente para a realização de atividades triviais nos permite avaliar que exigir aos usuários que iniciem um novo processo de autenticação em cada uma das ferramentas toda vez que forem acessá-las, deixará o trabalho muito mais complicado e cansativo, perdendo uma quantia de tempo valiosa, onde poderiam realizando atividades que geram valor para a organização.&lt;/p&gt;
&lt;p&gt;Pensando nessa necessidade dos times de negócio, o SSO se apresenta como uma solução extremamente viável porquê:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simplicidade&lt;/strong&gt;: os usuários autenticam em uma das ferramentas e sua sessão será compartilhada com as outras soluções que estiverem plugadas ao mesmo &lt;em&gt;IdP&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segurança ao usuário&lt;/strong&gt;: por “expor” suas credenciais apenas uma vez (no momento da autenticação), a implementação do SSO é considerada segura do ponto de vista do usuário, já que o mesmo corre menos riscos de ter sua senha visualizada e obtida de alguma forma por um agente externo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Os benefícios acima apresentados já nos permitem ter uma ideia do valor que a implementação do SSO pode trazer para a organização. Isso sem nem ter mencionado os benefícios indiretos, como por exemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Redução de chamados ao suporte&lt;/strong&gt;: boa parcela dos chamados abertos nos suportes das empresas são sobre temas relacionados à senha. Usuários que não precisam lembrar inúmeras senhas para diferentes aplicações, não costumam precisar do suporte para reinicialização das credenciais;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custos com equipes de T.I&lt;/strong&gt;: optando por adotar uma estratégia moderna e que não necessita de gerenciamento, é possível que sua empresa consiga reduzir o orçamento dos times que costumam dar suporte à essas ferramentas, uma vez que o controle de acesso é tratado de maneira completamente centralizada no &lt;em&gt;IdP&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Após compreender os benefícios gerados para os usuários, vamos estudar a situação dos times de segurança.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;é-seguro&quot;&gt;É seguro?&lt;/h1&gt;
&lt;p&gt;A implantação do &lt;em&gt;SSO&lt;/em&gt; sempre foi tratada como uma boa prática pelos times de segurança, porém com a evolução das técnicas de ataque, é importante que nós, profissionais de cibersegurança e segurança da informação, não fiquemos “presos” ao que um dia foi senso comum entre os profissionais da área e realizemos novas avaliações de acordo com os cenários existentes.&lt;/p&gt;
&lt;p&gt;Um motivo que de um ponto de vista pode ser considerado um benefício, do outro pode ser interpretado como um risco:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Entrada única das credenciais&lt;/strong&gt;: o uso de apenas 1 conjunto de credenciais para acesso à múltiplos sistemas pode trazer grande perigo aos recursos de uma organização. Caso esse conjunto de credenciais esteja em posse de partes indevidas, o acesso “irrestrito” às aplicações poderá expor a organização a danos extensos se não for identificado rapidamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Temos uma outra questão, os &lt;em&gt;&lt;strong&gt;tokens&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Token Theft&lt;/strong&gt;: ataques do tipo &lt;em&gt;token theft&lt;/em&gt; garantem ao atacante acesso aos recursos via obtenção indevida de um &lt;em&gt;access token&lt;/em&gt;. O atacante utiliza técnicas para capturar o &lt;em&gt;access token&lt;/em&gt; fornecido ao usuário e o utiliza para se passar pelo receptor original do &lt;em&gt;token&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Outra questão que agrava possíveis problemas gerados pelo comprometimento das credenciais é o tempo de sessão configurado.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tempo de sessão&lt;/strong&gt;: sessões configuradas para durar grandes períodos de tempo possibilitarão ao atacante, em posse de uma credencial ou token roubado, acesso às aplicações que compartilham a mesma sessão pelo período de tempo configurado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pelo fato das aplicações estarem conectadas em um mesmo componente (&lt;em&gt;IdP&lt;/em&gt;), todas as preocupações de segurança giram em torno dessa solução.&lt;/p&gt;
&lt;p&gt;A existência de preocupações de segurança não elimina a possibilidade de utilizar a solução de maneira segura, aplicando os controles necessários e recomendados pelas equipes de segurança.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;reforçando-a-segurança&quot;&gt;Reforçando a segurança&lt;/h1&gt;
&lt;p&gt;Procurando mitigar (ou pelo menos reduzir a possibilidade) as preocupações descritas anteriormente, algumas soluções são as seguintes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Redução do tempo de sessão&lt;/strong&gt;: configurar as sessões para exigir uma re-autenticação dos usuários de maneira mais frequente (mas não tão frequente, pois pode prejudicar as atividades de negócio) possibilita reduzir a efetividade dos ataques de &lt;em&gt;roubo de credenciais&lt;/em&gt; e &lt;em&gt;token theft&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitoramento das atividades&lt;/strong&gt;: políticas de análise de atividade auxiliarão os times de segurança a captar atividades suspeitas em suas aplicações, como acessos em localidades atípicas, ataques de &lt;em&gt;password spray&lt;/em&gt;, entre outras possibilidades (algumas ferramentas como o Entra ID da Microsoft permitem que seja solicitado ao usuário um “reforço” na autenticação caso alguma atividade atípica seja identificada);&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uso de MFA&lt;/strong&gt;: a utilização de uma ferramenta de &lt;em&gt;multi-factor authentication&lt;/em&gt; possiblita que os usuários realizem a autenticação de maneira mais segura e caso somado à uma implementação da funcionalidade &lt;em&gt;passwordless&lt;/em&gt;, o perigo gerado pelo roubo das credenciais é minimizado, devido à eliminação de seu uso;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Token Protection&lt;/strong&gt; &lt;strong&gt;(Entra ID)&lt;/strong&gt;: funcionalidade existente na solução de IAM da Microsoft, o &lt;em&gt;token protection&lt;/em&gt; visa mitigar os danos causados por um ataque do tipo &lt;em&gt;token theft&lt;/em&gt;. Associando o &lt;em&gt;access token&lt;/em&gt; ao dispositivo para qual foi emitido, os atacantes não consiguirão utilizar o &lt;em&gt;access token&lt;/em&gt; caso tomem posse do mesmo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seleção das aplicações&lt;/strong&gt;: escolher corretamente as ferramentas que devem ter o &lt;em&gt;SSO&lt;/em&gt; implementado também pode auxiliar na redução de problemas gerados por ataques bem sucedidos. Ferramentas que contém informações de negócio, confidenciais e estratégicas para a organização, devem ter os controles de segurança apresentados acima configurados de maneira mais rígida.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vimos que é possível manter a segurança dos acessos e ao mesmo tempo fornecer conforto aos usuários das aplicações, porém é importante ter em mente a necessidade de avaliar os &lt;strong&gt;benefícios&lt;/strong&gt; e os possíveis &lt;strong&gt;males&lt;/strong&gt; causados por problemas de segurança não captados e solucionados.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;conclusão&quot;&gt;Conclusão&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;SSO&lt;/em&gt; é SIM uma boa prática para o ecossistema de IAM (&lt;em&gt;Identity and Access Management&lt;/em&gt;), mas isso não quer dizer que não tenha perigos.A implementação do &lt;em&gt;&lt;strong&gt;SSO&lt;/strong&gt;&lt;/em&gt; com os devidos controles de segurança pode gerar à organização diversos benefícios, tanto aos times de segurança quanto aos times de negócio!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;Espero que você tenha gostado do texto e que eu tenha conseguido te fornecer visões diferentes de um tema que por muito tempo foi considerado “unânime” entre os profissionais da área.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sun Apr 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Code Quality - indo além dos contêineres</title><link>https://pedroignacio.dev/post/code-quality-indo-alem-dos-conteineres/</link><guid isPermaLink="true">https://pedroignacio.dev/post/code-quality-indo-alem-dos-conteineres/</guid><description>Tudo que vem antes da contêinerização de uma aplicação está nas mãos do desenvolvedor e do engenheiro DevOps, que tem a tarefa de construir e manter as integrações necessárias em todo o ciclo de desenvolvimento de software.
Pensando do ponto de vista...</description><pubDate>Mon, 30 Jun 2025 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tudo que vem antes da contêinerização de uma aplicação está nas mãos do desenvolvedor e do engenheiro DevOps, que tem a tarefa de construir e manter as integrações necessárias em todo o ciclo de desenvolvimento de software.&lt;/p&gt;
&lt;p&gt;Pensando do ponto de vista do desenvolvedor, a responsabilidade deste profissional gira em torno de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atender as demandas de negócio, criando serviços e funcionalidades que permitam a “tradução” da regra de negócio.&lt;/li&gt;
&lt;li&gt;(periodicamente) auxiliar no design da solução, fornecendo insights e trabalhando com &lt;em&gt;staff engineers&lt;/em&gt;, arquitetos de solução e outros engenheiros na construção da arquitetura.&lt;/li&gt;
&lt;li&gt;Construir código “bem escrito”, seguindo as boas práticas de engenharia, guardrails de qualidade e segurança da empresa em que trabalha.&lt;/li&gt;
&lt;li&gt;Realizar manutenção nas bases de código existentes no ambiente, sejam elas de sua autoria ou da autoria de outros engenheiros.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;É importante deixar claro que não devemos atribuir uma base de código a apenas um desenvolvedor, mas sim a uma equipe, que ficará responsável por seus insumos ao longo do tempo. Atribuir essa responsabilidade a um time, reforça a necessidade da passagem de conhecimento bem como reduz a possibilidade da erros e da implementação de “vícios” nos códigos escritos. À longa distância, essa distribuição da responsabilidade também facilitará as interações entre os times em atividades de &lt;em&gt;debugging&lt;/em&gt;, que costumam exigir dos responsáveis um nível de conhecimento razoável da plataforma que está sendo operada.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Nós, profissionais de segurança, sabemos que até o melhor dos engenheiros está sucetível ao erro. Nós também estamos. Por isso existem os controles, para “pegar” o que os olhos humanos não pegaram.&lt;/p&gt;
&lt;p&gt;Dito isso, os controles implementados nas &lt;em&gt;pipelines&lt;/em&gt; de &lt;strong&gt;DevSecOps&lt;/strong&gt; são para evitar que erros não vistos e escondidos dentro da aplicação, passem despercebidos. Não é por desconfiança no trabalho dos desenvolvedores e dos times de engenharia de software que esses controles existem, eles servem como aliados dos desenvolvedores, que uma vez que recebem o rápido “&lt;em&gt;feedback&lt;/em&gt;” das ferramentas de qualidade, podem ajustar seus entregáveis.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;controles&quot;&gt;Controles&lt;/h1&gt;
&lt;p&gt;Sabemos que esses controles existem, mas afinal de contas, o que são eles? Para que servem? O que analisam?&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Lembrando que esses controles estão integrados nas &lt;em&gt;pipelines CICD&lt;/em&gt;, dado que suas paramtetrizações devem ter efeitos em toda a organização. O engenheiro terá acesso ao resultado das análises do código, porém em grande parte das vezes não poderá alterar a parametrização desta ferramenta.&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;sca---software-composition-analysis&quot;&gt;SCA - Software Composition Analysis&lt;/h2&gt;
&lt;p&gt;Como todo código hoje em dia faz uso de bibliotecas externas e de SDKs para integrações com os mais diversos &lt;em&gt;service providers&lt;/em&gt; do mundo, é crucial que essas relações de dependência com fornecedores externos seja mapeada e esteja visível.&lt;/p&gt;
&lt;p&gt;As ferramentas de &lt;strong&gt;Software Composition Analysis&lt;/strong&gt; auxiliam nesta atividade, fazendo um &lt;em&gt;scanning&lt;/em&gt; nas bibliotecas e avaliando a conformidade com o licenciamento das mesmas.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ferramentas de mercado: Snyk e WhiteSource&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;xast---x-application-security-testing&quot;&gt;XAST - X Application Security Testing&lt;/h2&gt;
&lt;p&gt;Agora vamos comentar de uma série de ferramentas que fazem análise do código escrito de maneiras diferentes. Os acrônimos mencionados abaixo são frequentemente mencionados nas conversas entre os times de DevOps, pois representam um pilar muito importante na cultura de segurança de uma empresa, o de &lt;strong&gt;Segurança de Código&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Essas ferramentas são utilizadas em momentos diferentes do ciclo de desenvolvimento de software, oferecendo &lt;em&gt;insights&lt;/em&gt; diferentes em cada um desses momentos, &lt;em&gt;insights&lt;/em&gt; esses que fazem com que o desenvolvedor compreenda melhor o comportamento da aplicação dele mediante determinados cenários.&lt;/p&gt;
&lt;p&gt;Essas análises diferenciadas habilitam a redução da superfície de ataque das aplicações, dado que os cenários avaliados são mais extensos e permitem a captura mais precisa de falhas de segurança.&lt;/p&gt;
&lt;h3 id=&quot;sast---static-application-security-testing&quot;&gt;SAST - Static Application Security Testing&lt;/h3&gt;
&lt;p&gt;Aqui temos a primeira validação do código escrito pelo engenheiro. A análise será feita de forma estática, com o código sem compilação, do jeito que está no repositório.&lt;/p&gt;
&lt;p&gt;Essa primeira análise busca por erros “comuns” presentes no código fonte, erros como &lt;em&gt;&lt;strong&gt;SQL Injection&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;Cross-Site Scripting&lt;/strong&gt;&lt;/em&gt; são capturados antes que possam expor a aplicação à falhas graves de segurança.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ferramentas de mercado: SonarQube e Fortify&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;dast---dynamic-application-security-testing&quot;&gt;DAST - Dynamic Application Security Testing&lt;/h3&gt;
&lt;p&gt;Após a análise do SAST, temos o DAST, que faz seu &lt;em&gt;scanning&lt;/em&gt; após a compilação da aplicação.&lt;/p&gt;
&lt;p&gt;As falhas aqui identificadas são mais sofisticadas e de difícil captura. Aqui, todo o contexto é levado em conta, não apenas o código escrito pelo usuário.&lt;/p&gt;
&lt;p&gt;Os problemas aqui identificados costumam ser mais complexos e caros de se corrigir, visto que há a necessidade de se fazer toda uma análise nos componentes da aplicação para alterar seu funcionamento, mitigando a vulnerabilidade. Esse trabalho costuma ser feito em conjunto com os times de arquitetura, que precisam compreender as ligações entre os componentes para evitar que essa vulnerabilidade se espalhe para outras aplicações.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ferramentas de mercado: Burp Suite&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;iast---interactive-application-security-testing&quot;&gt;IAST - Interactive Application Security Testing&lt;/h3&gt;
&lt;p&gt;Tudo que falamos das ferramentas anteriores é integrado em uma só, com o &lt;strong&gt;IAST&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Essas soluções visam capturar com mais precisão e efetividade os problemas de segurança identificados nos passos anteriores. Essa precisão nos ajuda a validar as identificações, que muitas vezes podem ser o que chamamos de “&lt;strong&gt;falsos positivos&lt;/strong&gt;”.&lt;/p&gt;
&lt;p&gt;Com casos de uso definidos, a ferramenta configurada fará a análise de uso da aplicação, validando se as vulnerabilidades são verdadeiramente exploráveis.&lt;/p&gt;
&lt;p&gt;O uso computacional de uma ferramenta de IAST é muito mais alto do que o das ferramentas anteriores, muito por sua complexidade, robustez e cobertura, portanto é crucial que sua solução de IAST esteja bem parametrizada e com seus &lt;em&gt;workflows&lt;/em&gt; bem definidos.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ferramentas de mercado: Seeker&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;secret-scanning&quot;&gt;Secret Scanning&lt;/h2&gt;
&lt;p&gt;Agora já não estamos mais falando de como o código está escrito, mas sim o que está contido nele.&lt;/p&gt;
&lt;p&gt;Na era da segurança, toda chamada deve ser &lt;strong&gt;autenticada&lt;/strong&gt; e &lt;strong&gt;autorizada&lt;/strong&gt;, garantindo que apenas o “dono” de um recurso tenha acesso a ele.&lt;/p&gt;
&lt;p&gt;Essas camadas de segurança apresentam certa complexidade na escrita do código, visto que muitas vezes o engenheiro precisa trabalhar com múltiplas credenciais com o propósito de validar as chamadas ao ambiente.&lt;/p&gt;
&lt;p&gt;Para evitar que credenciais sejam enviadas aos repositórios de código, as &lt;em&gt;pipelines&lt;/em&gt; devem implementar controles para identificar possíveis credenciais “mockadas”, que possam ser vazadas ao público uma vez que o repositório não esteja bem protegido.&lt;/p&gt;
&lt;p&gt;Essa análise pode ocorrer em diversas etapas do processo, tanto nas automações, quanto diretamente no repositório de código, através do uso das capacidades avançadas da sua plataforma. Utilizar um ecossistema como o presente no GitHub, permite que o administrador da ferramenta tenha uma visão completa dos repositórios que contém algum tipo de credencial salva. Essa visão permite a criação de &lt;em&gt;workflows&lt;/em&gt; de notificação aos &lt;em&gt;owners&lt;/em&gt; dessas aplicações como também o estabelecimento de &lt;em&gt;guardrails&lt;/em&gt;, que podem evitar que códigos com credenciais embutidas sejam enviados aos repositórios das mesmas.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ferramentas de mercado: GitHub Advanced Security e GitGuardian&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;indo-além-das-ferramentas&quot;&gt;Indo além das ferramentas&lt;/h1&gt;
&lt;p&gt;Ferramentas são ótimas e nos permitem passar ao ambiente uma visão esperada pelos times de segurança da empresa, porém nem sempre temos facilidade para modificá-las.&lt;/p&gt;
&lt;p&gt;Como qualquer plataforma, ao ser selecionada, o time responsável por ela se encontra em uma gangorra, que equilibra a &lt;strong&gt;capacidade de personalização&lt;/strong&gt; daquela ferramenta e o &lt;strong&gt;custo de operacionalização&lt;/strong&gt; da mesma.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quanto mais personalização, mais complicada de se manter, porém com mais possibilidades.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Menos personalização significa menos possibilidades, contudo, mais facilidade na manutenção.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No final das contas as ferramentas não são nada além de &lt;em&gt;softwares&lt;/em&gt;. &lt;em&gt;Softwares&lt;/em&gt; esses que podem conter vulnerabilidades e falhas, como as aplicações que nós escrevemos.&lt;/p&gt;
&lt;p&gt;Para aumentarmos ainda mais a superfície coberta do nosso ambiente, é crucial que os times de engenharia de plataforma e segurança façam um trabalho de “evangelização” dos desenvolvedores da sua empresa. É necessário que eles não só entendam a necessidade e os controles implementados, mas também que saibam receber o &lt;em&gt;feedback&lt;/em&gt; dessas plataformas.&lt;/p&gt;
&lt;p&gt;Além disso não podemos virar nossas costas aos &lt;strong&gt;treinamentos&lt;/strong&gt;. Melhor que um cenário onde você encontre desenvolvedores despreparados e ferramentas bem configuradas, é quando achamos ferramentas bem configuradas e desenvolvedores BEM CAPACITADOS. Desenvolvedores esses que melhoram seu código escrito a cada semana que passa, utilizando da análise das ferramentas e dos treinamentos fornecidos como seus aliados na construção de uma melhor plataforma.&lt;/p&gt;
&lt;p&gt;Cursos externos, &lt;em&gt;playlists&lt;/em&gt; no &lt;em&gt;YouTube&lt;/em&gt;, treinamentos internos ministrados por especialistas no assunto, plataformas de codificação, artigos na internet, tudo que possa servir como fonte de conhecimento para o desenvolvedor deve ser considerado. Essas capacidades devem ser passadas aos novos engenheiros (ingressantes na empresa e estagiários efetivados) e aos experientes, oferecendo a eles a possibilidade de fornecimento de &lt;em&gt;feedback&lt;/em&gt; para melhoria dos materiais. Os insumos também devem ser atualizados de maneira frequente, para que sempre correspondam aos controles recomendados pela empresa.&lt;/p&gt;
&lt;p&gt;Não é só uma ferramenta de &lt;em&gt;SCA&lt;/em&gt; ou &lt;em&gt;SAST&lt;/em&gt; que fará com que o seu ambiente esteja seguro e protegido de vulnerabilidades. O verdadeiro &lt;em&gt;&lt;strong&gt;shift-left&lt;/strong&gt;&lt;/em&gt; começa com o seu desenvolvedor sabendo o que está fazendo!&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;Mesmo no momento em que nos encontramos hoje, com o crescimento cada vez maior de ferramentas de inteligência artificial e popularização do vibe coding, quem coloca o código em produção é o desenvolvedor, não o “robô”. Não há melhor controle do que um engenheiro que sabe o que faz. Te poupará dores de cabeça no curto, médio e longo prazo.Invista nos seus engenheiros!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nos vemos em breve com mais conteúdo sobre &lt;em&gt;&lt;strong&gt;security&lt;/strong&gt;&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;Até logo! :)&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Contêineres para todos - Docker Offload!</title><link>https://pedroignacio.dev/post/conteineres-para-todos-docker-offload/</link><guid isPermaLink="true">https://pedroignacio.dev/post/conteineres-para-todos-docker-offload/</guid><description>Há poucos minutos na WeAreDevelopers Conference, o time Docker anunciou a criação do Docker Offload, uma solução que vai virar do avesso a forma com que trabalhamos com o desenvolvimento de contêineres.

Qual o problema?
Grande parte do desenvolvimen...</description><pubDate>Thu, 10 Jul 2025 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Há poucos minutos na &lt;strong&gt;WeAreDevelopers Conference&lt;/strong&gt;, o time Docker anunciou a criação do &lt;strong&gt;Docker Offload&lt;/strong&gt;, uma solução que vai virar do avesso a forma com que trabalhamos com o desenvolvimento de contêineres.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-o-problema&quot;&gt;Qual o problema?&lt;/h1&gt;
&lt;p&gt;Grande parte do desenvolvimento de software acontece de forma local, nas máquinas dos desenvolvedores. Seja Windows, Mac ou Linux, uma coisa não muda, conforme você cresce o seu sistema, o consumo da capacidade computacional também aumenta.&lt;/p&gt;
&lt;p&gt;Essa “limitação” e necessidade de capacidade computacional limita o que os desenvolvedores podem fazer, limitando inclusive engenheiros que estão em início de carreira e não tem a possibilidade de ter uma máquina robusta para colocar em prática seus aprendizados.&lt;/p&gt;
&lt;p&gt;A popularização dos LLMs e dos &lt;em&gt;agents&lt;/em&gt; também trouxe luz a essa particular situação. Os engenheiros se encontram limitados na utilização dessas tecnologias pela necessidade de se ter um dispositivo de placa de vídeo em suas máquinas, dispositivo esse obrigatório para execução desses modelos. A única alternativa para isso é a utilização das plataformas em nuvem (&lt;strong&gt;Azure&lt;/strong&gt;, &lt;strong&gt;AWS&lt;/strong&gt;, &lt;strong&gt;GCP&lt;/strong&gt;, etc.), que ofertam servidores com placas de vídeo de forma &lt;em&gt;on-demand&lt;/em&gt; e de diversos tamanhos. Nesse caso, o problema é só o preço, que pode sair bem salgado ao final do mês.&lt;/p&gt;
&lt;p&gt;Tendo em mente todos esses problemas, &lt;strong&gt;Offload ao resgate&lt;/strong&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;offload&quot;&gt;Offload&lt;/h1&gt;
&lt;p&gt;falar sobre a proposta, como agora até alguém com computadores antigos e sem capacidade pode usufruir do poder do docker e o aumento da possibilidade de criação de soluções AI e ML based sem a existencia de uma GPU no computador&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Docker Offload&lt;/strong&gt; foi criado com a proposta de oferecer aos engenheiros, desenvolvedores e usuários de Docker uma forma de executar seus contêineres sem fazer uso da sua capacidade computacional local.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/docker-offload-1/e1754cdf-8015-4903-b216-6ae82fb6cd08.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tudo que você precisa fazer é trocar de workspace (do seu local para o Offload), isso pode ser feito no &lt;em&gt;toggle&lt;/em&gt; presente ao lado do logo do Docker Desktop. Uma vez no workspace do Offload, você pode criar seus contêineres exatamente da mesma maneira que faria no ambiente local, executando o seguinte comando:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;IMAG&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Seu contêiner será criado e você poderá utilizá-lo como já está acostumado!&lt;/p&gt;
&lt;h2 id=&quot;como-funciona&quot;&gt;Como funciona?&lt;/h2&gt;
&lt;p&gt;Tudo ocorre com uma conexão SSH por trás dos panos, estabelecida pelo Docker Desktop com um &lt;strong&gt;Docker Daemon&lt;/strong&gt; que está sendo executado na nuvem. Todas as atividades que você executar referentes aos contêineres e ao ambiente Docker será feita na instância do Offload executada em cloud, isso até que você altere para seu workspace local novamente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/docker-offload-1/109b00f1-c5ad-47ac-98f7-4e8b370bc3d5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Facilitando a manutenção do ambiente, a cada 30 minutos de inatividade, o ambiente do Offload é limpo e fechado, garantindo economia de recursos e de custos (a partir do momento em que o &lt;em&gt;free tier&lt;/em&gt; tenha sido esgotado).&lt;/p&gt;
&lt;p&gt;Essa abordagem permite manter o seu ambiente bem organizado e otimizado, alocando os recursos apenas quando necessário e evitando desperdício.&lt;/p&gt;
&lt;h2 id=&quot;usando&quot;&gt;Usando&lt;/h2&gt;
&lt;p&gt;A utilização da plataforma é bem trivial e como vimos anteriormente, funciona da mesma forma que o Docker local.&lt;/p&gt;
&lt;p&gt;Uma vez habilitado seu workspace, você poderá executar seus contêineres de forma livre e sem complicações. Caso esteja utilizando apenas a linha de comando, você pode habilitar o Offload através do seguinte comando:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; offload&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; start&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Seu workspace será movimentado para o ambiente do Offload, não havendo a necessidade de se realizar mais nenhuma ação.&lt;/p&gt;
&lt;p&gt;Caso queira encerrar sua seção, um simples:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFCB6B&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; offload&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; stop&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cumprirá a ação.&lt;/p&gt;
&lt;p&gt;Simples, né?&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;ai--ml-everywhere&quot;&gt;AI &amp;#x26; ML Everywhere!&lt;/h1&gt;
&lt;p&gt;Não podíamos deixar de falar de Inteligência Artificial, o tema do momento (e dos últimos 3 anos)!&lt;/p&gt;
&lt;p&gt;A popularização da AI, dos modelos de ML, MCP e dos agentes também chegou no ecossistema Docker. O &lt;strong&gt;Docker MCP&lt;/strong&gt; foi anunciado há algumas semanas e com a estratégia de expandir ainda mais o uso dessas capacidades para os engenheiros, o Docker Offload permite que os engenheiros usufruam dos poderes das GPUs &lt;strong&gt;NVIDIA L4&lt;/strong&gt; de forma gratuita e simples.&lt;/p&gt;
&lt;p&gt;Para fazer uso dessas capacidades gráficas da infraestrutura, ao iniciar o workspace do Docker Offload, você será questionado se necessita de suporte para GPU. Ao marcar que sim, seu ambiente estará apto para receber seus workloads de ML e AI!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/docker-offload-1/eeb1ba8b-21f1-4db9-9cf0-e72303a13854.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;oportunidade&quot;&gt;Oportunidade&lt;/h1&gt;
&lt;p&gt;Para que você comece a utilizar o Docker Offload sem a preocupação de ter custos atribuídos em seu cartão de crédito, a plataforma oferece 300 minutos GRATUITOS para você executar seus contêineres e modelos de &lt;em&gt;machine learning&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Não existe desculpa para não aproveitar essa plataforma e tudo que ela nos fornece. Entre de vez no mundo da inteligência artificial, &lt;em&gt;machine learning&lt;/em&gt; e &lt;em&gt;agentic AI&lt;/em&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;O Offload é muito mais do que um novo produto, é uma nova forma de fazermos tecnologia.&lt;/p&gt;
&lt;p&gt;Use e abuse dessas capacidades!&lt;/p&gt;
&lt;p&gt;Obrigado, time Docker 💙&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Image Scanning - protegendo suas imagens e sua organização</title><link>https://pedroignacio.dev/post/image-scanning-protegendo-suas-imagens-e-sua-organizacao/</link><guid isPermaLink="true">https://pedroignacio.dev/post/image-scanning-protegendo-suas-imagens-e-sua-organizacao/</guid><description>No primeiro cápitulo da nossa série sobre segurança de contêineres, vamos falar sobre Image Scanning, um assunto de extrema necessidade, muito considerado por empresas que levam segurança a sério mas que se apresenta com fragilidades frequentes!

O q...</description><pubDate>Wed, 18 Jun 2025 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No primeiro cápitulo da nossa série sobre segurança de contêineres, vamos falar sobre &lt;em&gt;&lt;strong&gt;Image Scanning&lt;/strong&gt;&lt;/em&gt;, um assunto de extrema necessidade, muito considerado por empresas que levam segurança a sério mas que se apresenta com fragilidades frequentes!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é&quot;&gt;O que é?&lt;/h1&gt;
&lt;p&gt;Sabemos que ao construirmos uma aplicação contêinerizada, temos que começar com algo. Nossa aplicação e suas dependências devem ser instaladas e configuradas em alguma coisa. Esse alguma coisa é uma &lt;strong&gt;Imagem Base&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Como o próprio nome já diz, nosso contêiner será inicializado com essa imagem, que por sua vez receberá todas as instruções declaradas posteriormente no arquivo de configuração (como um &lt;em&gt;Dockerfile&lt;/em&gt;, por exemplo).&lt;/p&gt;
&lt;p&gt;Abaixo temos um exemplo do início da configuração de um Dockerfile que mostra exatamente onde declaramos a &lt;strong&gt;imagem base&lt;/strong&gt; da nossa aplicação.&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;dockerfile&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F78C6C&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; alpine:latest &lt;/span&gt;&lt;span style=&quot;color:#F78C6C&quot;&gt;AS&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Após inicializarmos o contêiner com essa imagem base, vamos passar para todos os outros passos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copiar os arquivos da aplicação.&lt;/li&gt;
&lt;li&gt;Instalar dependências.&lt;/li&gt;
&lt;li&gt;Passar argumentos e variáveis de ambiente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Todo esse processo tornará a imagem final do contêiner muito mais complexa, visto que a mesma terá uma série de outros componentes dentro de si.&lt;/p&gt;
&lt;p&gt;Conforme vamos adicionando essas “camadas”, não é apenas a complexidade da nossa aplicação que vai crescendo, mas também sua superfície de exposição, visto que a versão do &lt;em&gt;framework&lt;/em&gt; que você está utilizando também tem vulnerabilidades já conhecidas, somadas as &lt;em&gt;libs&lt;/em&gt; e outros componentes instalados para que sua aplicação funcione, no final da construção do arquivo teremos uma lista imensa de vulnerabilidades e de preocupações, que precisarão ser direcionadas.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Se pensarmos que nosso código também pode ter (e provavelmente tem) vulnerabilidades (como falhas de segurança e credenciais mockadas), adicionamos mais uma camada de complexidade em nosso &lt;em&gt;workflow&lt;/em&gt;, camada essa que pode ser verificada por uma ferramenta com capacidade de &lt;strong&gt;Image Scanning&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Para garantir as aplicações executadas em seu ambiente estejam bem mapeadas e que não apresentem nenhum grande risco ao contexto maior da sua plataforma, integramos em nossos &lt;em&gt;workflows&lt;/em&gt; uma ferramenta de &lt;strong&gt;Image Scanning&lt;/strong&gt;, como o &lt;strong&gt;Docker Scout&lt;/strong&gt; e &lt;strong&gt;Aqua Trivy&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;por-quê-utilizar&quot;&gt;Por quê utilizar?&lt;/h1&gt;
&lt;p&gt;Se pensarmos em todo o ciclo de desenvolvimento de software e como hoje em dia as empresas trabalham em um modelo distribuído, as capacidades de segurança também tiveram que se modernizar e passaram a ser construídas de forma decentralizada. Os times de segurança e plataforma ainda as controlam e parametrizam porém o primeiro contato do desenvolvedor/engenheiro com um recurso PRECISA ser um contato seguro, caso contrário temos mais uma demonstração de abertura de brecha no ambiente.&lt;/p&gt;
&lt;p&gt;![Your Guide to Software Supply Chain Security | JFrog](&lt;a href=&quot;https://speedmedia.jfrog.com/08612fe1-9391-4cf3-ac1a-6dd49c36b276/media.jfrog.com/wp-content/uploads/2024/05/09165841/flow-chart_2.png&quot;&gt;https://speedmedia.jfrog.com/08612fe1-9391-4cf3-ac1a-6dd49c36b276/media.jfrog.com/wp-content/uploads/2024/05/09165841/flow-chart_2.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Acima temos um desenho simples sobre como funciona uma &lt;em&gt;pipeline CI/CD&lt;/em&gt;. No terceiro passo, que é de fato onde o &lt;em&gt;build&lt;/em&gt; da aplicação se inicia, a &lt;em&gt;pipeline&lt;/em&gt; buscará no arquivo de configuração os recursos apontados.&lt;/p&gt;
&lt;p&gt;Dentro de uma organização, é importante deixar claro que JAMAIS deve-se buscar imagens diretamente da internet. Os requisitos de segurança são variados de acordo com a criticidade dos serviços que sua empresa presta e acima de tudo devem ser modificados pelos times de segurança, &lt;em&gt;compliance&lt;/em&gt;, auditoria e jurídico. Dito isso, as imagens utilizadas de forma corporativa devem passar por um extenso processo de análise, que visa garantir a qualidade do artefato inicialmente utilizado.&lt;/p&gt;
&lt;p&gt;E essa é um dos momentos que entra o nosso &lt;em&gt;image scanning&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/image-scanning-protegendo-suas-imagens-e-sua-organizacao/9b9e24d7-db4d-44b0-99d7-b32c61a15b39.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Acima, um &lt;em&gt;print&lt;/em&gt; retirado diretamente da console do Docker Desktop rodando o &lt;strong&gt;Docker Scout&lt;/strong&gt;. Podemos visualizar na esquerda as duas camadas que essa imagem contém e à direita todas as dependências dela, bem como suas vulnerabilidades.&lt;/p&gt;
&lt;p&gt;Essa visão nos permite entender o estado em que aquele recurso se apresenta e à partir do apetite a risco da sua organização, qual será a origem dele.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Estamos falando sobre apetite a risco pois as categorias de vulnerabilidade encontradas necessitam que a empresa assuma certos riscos. Vulnerabilidades críticas apresentam alto risco de exploração e de prejuízo à empresa, portanto, será descartada na grande maioria dos casos.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Mesmo podendo ser utilizado dessa maneira, o &lt;em&gt;image scanning&lt;/em&gt; não costuma estar “na mão” dos engenheiros de software, mas sim nos times de &lt;em&gt;Plataform Engineering&lt;/em&gt; e Segurança, isso sem falar das integrações através das &lt;em&gt;pipelines&lt;/em&gt;, que falaremos sobre agora!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;cicd-integration&quot;&gt;CI/CD Integration&lt;/h1&gt;
&lt;p&gt;O primeiro &lt;em&gt;scanning&lt;/em&gt; que falamos é extremamente necessário para criarmos a base da nossa &lt;em&gt;pipeline&lt;/em&gt;, que é: fornecer imagens base seguras e com vulnerabilidades controladas/aceitas pela empresa em questão.&lt;/p&gt;
&lt;p&gt;Ao longo do processo de &lt;em&gt;build&lt;/em&gt;, as dependências serão instaladas no contêiner e no final da execução, um “pacotinho” será gerado, que contém a aplicação autossuficiente (com tudo que ela precisa para ser executada). Esse pacotinho deve mais uma vez ser analizado pelo nosso &lt;em&gt;image scanner&lt;/em&gt; para avaliar algum problema de configuração que possa ter passado em branco.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Em adição ao &lt;em&gt;image scanning&lt;/em&gt;, nós também costumamos fazer a proteção dos pacotes e libs que são disponibilizados de forma corporativa aos engenheiros. Suas versões, fornecedores e &lt;em&gt;releases&lt;/em&gt; são controlados pelo time de segurança, que mais uma vez deve estar ciente dos possíveis riscos e administrá-los de acordo com o apetite a risco da organização.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;No final do ciclo, sua imagem conterá tudo que precisa para ser executada e esse é o motivo da segunda validação.&lt;/p&gt;
&lt;p&gt;Nós passamos de uma image base, que já continha algumas dependências e possivelmente vulnerabilidades, para uma imagem “carregada” e com vários outros componentes adicionados. A única forma de garantirmos a boa proteção das nossas imagens é realizar essa validação em camadas, garantindo sempre que pelo menos uma validação tenha sido feita nas novas adições daquele componente.&lt;/p&gt;
&lt;p&gt;Dentro de uma &lt;em&gt;pipeline&lt;/em&gt;, a análise da imagem estará próxima do final do ciclo de execução da mesma, fornecendo em grande parte das vezes um &lt;strong&gt;score&lt;/strong&gt; que nos permite determinar se aquele insumo está seguro ou não para ser utilizado.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Lembre-se que o apetite a risco é CRU CI AL quando falamos de segurança. Não existe recurso perfeito e 100% seguro, portanto se faz obrigatório um alinhamento com a liderança da empresa para compreender como a mesma está se portando.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;Container security é crucial para que sua estratégia de &lt;em&gt;cloud security&lt;/em&gt; seja efetiva. Visto que hoje tudo é contêinerizado, é de extrema importância que você proteja bem sua plataforma.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto. Nos vemos no próximo!! :)&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Implementando a autenticação passwordless no Entra ID</title><link>https://pedroignacio.dev/post/implementando-authn-passwordless/</link><guid isPermaLink="true">https://pedroignacio.dev/post/implementando-authn-passwordless/</guid><description>Nos tempos atuais, sabemos que apenas as senhas não são mais suficientes. Sabemos também que além de não ser o meio de autenticação mais seguro, também estão entre os menos convenientes. Dito isso, hoje falaremos sobre a autenticação sem senha do Ent...</description><pubDate>Tue, 17 Oct 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nos tempos atuais, sabemos que apenas as senhas não são mais suficientes. Sabemos também que além de não ser o meio de autenticação mais seguro, também estão entre os menos convenientes. Dito isso, hoje falaremos sobre a autenticação sem senha do Entra ID.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;introdução&quot;&gt;Introdução&lt;/h1&gt;
&lt;p&gt;A imagem acima é um quadrante que representa como as diferentes combinações de fatores de autenticação se posicionam em &lt;strong&gt;Conveniência x Segurança&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Quando estamos definindo um modelo de autenticação é importante termos em mente quem utilizará esse modelo a maior parte do tempo. Precisamos entender que os usuários em nossa empresa precisam se preocupar apenas em agregar valor, e não deveriam ter que se autenticar toda vez que fossem utilizar uma nova ferramenta e muito menos tendo que lembrar sua senha a cada autenticação.&lt;/p&gt;
&lt;p&gt;O uso &lt;strong&gt;apenas&lt;/strong&gt; das senhas hoje também já não é mais recomendado. As senhas estão vulneráveis à vazamentos, engenharia social, &lt;em&gt;phishing&lt;/em&gt;, &lt;em&gt;brute force&lt;/em&gt;, entre outros tipos de vulnerabilidades.&lt;/p&gt;
&lt;p&gt;Para uma autenticação &lt;strong&gt;forte&lt;/strong&gt;, é necessário combinar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algo que você sabe — como uma senha ou um PIN;&lt;/li&gt;
&lt;li&gt;Algo que você tem — no caso, seu dispositivo;&lt;/li&gt;
&lt;li&gt;Algo que você é — uma característica sua que possa ser verificada, como a biometria.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Habilitando a autenticação &lt;em&gt;passwordless&lt;/em&gt; nós substituímos a senha por: &lt;strong&gt;algo que você tem&lt;/strong&gt; + &lt;strong&gt;algo que você é ou que sabe&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A autenticação &lt;em&gt;passwordless&lt;/em&gt; não troca segurança por conveniência e isso é importantíssimo. Os requisitos de segurança estarão sendo cumpridos e os usuários estarão extremamente mais confortáveis para acessar as soluções.&lt;/p&gt;
&lt;p&gt;Agora que entendemos os benefícios desse modelo, vamos estudar brevemente quais os tipos de MFA suportados pelo Entra.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;tipos-demfa&quot;&gt;Tipos de MFA&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-authn-passwordless/3372f8a1-b5a0-44f8-a74d-4c463f0e9b2a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Esses acima são os métodos de MFA suportados pelo Entra. Nem todos podem ser utilizados para a autenticação &lt;em&gt;passwordless&lt;/em&gt;, porém é interessante que você conheça todas as alternativas possíveis, uma vez que possam ser úteis em algum momento.&lt;/p&gt;
&lt;p&gt;A lista de métodos de autenticação disponíveis e configurados pode ser visualizada em “&lt;em&gt;Authentication methods&lt;/em&gt;” na aba do &lt;em&gt;ID Protection&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Os dispositivos de MFA válidos para configurarmos a autenticação &lt;em&gt;passwordless&lt;/em&gt; são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Windows 10&lt;/em&gt; — versão que contém disponível o &lt;em&gt;&lt;strong&gt;Windows Hello for Business&lt;/strong&gt;&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Smartphone&lt;/em&gt; — com o aplicativo &lt;em&gt;&lt;strong&gt;Microsoft Authenticator&lt;/strong&gt;&lt;/em&gt; instalado;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Hardware key&lt;/em&gt; — &lt;strong&gt;FIDO2 Security Key&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para esse tutorial, vamos utilizar o mais simples, o &lt;em&gt;smartphone&lt;/em&gt;. Não é requerido que você instale o aplicativo neste primeiro momento, durante a jornada de login, será solicitado que você o instale e configure-o.&lt;/p&gt;
&lt;p&gt;Configurando o &lt;em&gt;Microsoft Authenticator&lt;/em&gt; como para autenticação &lt;em&gt;passwordless&lt;/em&gt;, nós cumpriremos 2 dos 3 requisitos representados na seção anterior. &lt;strong&gt;Algo temos&lt;/strong&gt; será representado pelo &lt;em&gt;smartphone&lt;/em&gt; com o aplicativo instalado. Para usar o aplicativo, será solicitado que realize o desbloqueio do seu &lt;em&gt;smartphone&lt;/em&gt;. Caso utilize o desbloqueio por PIN, será solicitado que o insira, representando &lt;strong&gt;algo que você sabe&lt;/strong&gt;. Caso utilize o desbloqueio biométrico, o requisito atendido será &lt;strong&gt;algo que você é&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;configurando-autenticação-passwordless&quot;&gt;Configurando autenticação passwordless&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-authn-passwordless/961440d0-a46f-4d8b-adbb-890a5682c48d.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Para esse artigo, vamos configurar o &lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; como a solução de autenticação &lt;em&gt;passwordless&lt;/em&gt;. Para isso, vamos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desabilitar o &lt;em&gt;Security Defaults&lt;/em&gt; do tenant;&lt;/li&gt;
&lt;li&gt;Criar uma política de acesso condicional que solicite o MFA para autenticação em qualquer um dos portais administrativos;&lt;/li&gt;
&lt;li&gt;Configurar no &lt;em&gt;Microsoft Authenticator&lt;/em&gt; a possibilidade de login com o &lt;em&gt;smartphone&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;O &lt;strong&gt;security defaults&lt;/strong&gt; é uma configuração do tenant que aplica alguns controles básicos de segurança, com o intuito de evitar falhas básicas de segurança.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;desativando-o-securitydefaults&quot;&gt;Desativando o &lt;em&gt;Security Defaults&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Dentro do &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;portal do Entra&lt;/a&gt;, navegue até a aba “&lt;em&gt;Overview&lt;/em&gt;”, abaixo de “&lt;em&gt;Identity&lt;/em&gt;”. Acesse o menu “&lt;em&gt;Properties&lt;/em&gt;” e navegue até o final da página, onde você encontrará o seguinte:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-authn-passwordless/4eaebf9e-2707-42a6-9244-c9394fba8f1a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Clicando sob o link “&lt;em&gt;Manage security defaults&lt;/em&gt;”, será mostrado ao lado direito da sua tela um &lt;em&gt;drop&lt;/em&gt; que permitirá você selecionar “&lt;em&gt;&lt;strong&gt;Enabled&lt;/strong&gt;&lt;/em&gt;” (para manter a configuração ativa) e “&lt;em&gt;&lt;strong&gt;Disabled&lt;/strong&gt;&lt;/em&gt;” (para desativar as configurações).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Atente-se ao aviso apresentado na tela. O &lt;em&gt;Security Defaults&lt;/em&gt; é um conjunto de configurações que aborda 99,9% dos possíveis comprometimentos de contas. Desative-o apenas no caso de ter políticas de acesso condicional que aplicam esses controles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;criando-a-política-de-acesso-condicional&quot;&gt;Criando a política de acesso condicional&lt;/h2&gt;
&lt;p&gt;Navegando até a aba “&lt;em&gt;Conditional Access&lt;/em&gt;” em “&lt;em&gt;Protection&lt;/em&gt;”, selecione a opção “&lt;em&gt;Create new policy&lt;/em&gt;”.&lt;/p&gt;
&lt;p&gt;Em “&lt;em&gt;Assignments&lt;/em&gt;” escolha alguns usuários para teste.&lt;/p&gt;
&lt;p&gt;Em “&lt;em&gt;Target resources&lt;/em&gt;” selecione “&lt;em&gt;Cloud apps&lt;/em&gt;”, “&lt;em&gt;Select apps&lt;/em&gt;” e em “&lt;em&gt;Select&lt;/em&gt;” escolha a opção “&lt;em&gt;Microsoft Admin Portals&lt;/em&gt;”. Essa opção contém portais como &lt;strong&gt;Portal do Entra&lt;/strong&gt; e &lt;strong&gt;Portal do Azure&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Na sessão “&lt;em&gt;Grant&lt;/em&gt;” marque a opção “&lt;em&gt;Require multifactor authentication&lt;/em&gt;”.&lt;/p&gt;
&lt;p&gt;Marque sua &lt;em&gt;policy&lt;/em&gt; como ativa no final da página e a salve.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Se você receber um aviso que não é possível criar a política, provavelmente você se esqueceu de desabilitar o security defaults. Volte alguns passos e desative-o.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Como administrador do sistema, sua parte foi feita! A próxima etapa é responsabilidade do usuário.&lt;/p&gt;
&lt;h2 id=&quot;configurando-o-smartphone&quot;&gt;Configurando o &lt;em&gt;smartphone&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;(Caso você já tenha o Microsoft Authenticator instalado e configurado com sua conta, você pode passar para a próxima etapa)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Acesse de seu computador algum dos portais administrativos da Microsoft (Portal do Azure, Portal do Entra, etc). Insira seu e-mail e logo em seguida sua senha. Você verá a seguinte tela:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/implementando-authn-passwordless/302125ea-f5bb-4de9-bb24-63126d76eff6.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Antes de habilitar sua autenticação &lt;em&gt;passwordless&lt;/em&gt;, é necessário que você cadastre sua conta no aplicativo.&lt;/p&gt;
&lt;p&gt;Selecione “Avançar” e siga os passos informados em sua tela. No final do processo você terá seu aplicativo instalado e sua conta configurada.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(vamos prosseguir com a habilitação da autenticação passwordless)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;No seu aplicativo &lt;em&gt;Microsoft Authenticator&lt;/em&gt;, selecione sua conta e selecione a opção “Configurar entrada pelo telefone”, será solicitado que você se re-autentique. Após isso, apenas confirme a configuração.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pode ser que no momento do primeiro login após a configuração no aplicativo, seja solicitado que o usuário insira a senha. Ele pode seguir desta forma ou pode selecionar a opção “Outras formas de login” e logo em seguida será solicitado sua aprovação no aplicativo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pronto! Seus usuários podem terão uma experiência mais prazerosa e mais segura ao usar as diversas aplicações configuradas em seu &lt;em&gt;tenant&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;outras-pontuações&quot;&gt;Outras pontuações&lt;/h1&gt;
&lt;p&gt;Uma parpte importante (que não foi abordada nesse artigo) é o estabelecimento de um bom processo de governança e de apoio aos usuários.&lt;/p&gt;
&lt;p&gt;Pode ser que durante as jornadas (configuração, cadastro, uso, etc.) os mesmos encontrem problemas e dificuldades. A existência de materiais de apoio para essas situações é essencial para não gerar atrito.&lt;/p&gt;
&lt;p&gt;É necessário também que os funcionários do &lt;em&gt;helpdesk&lt;/em&gt; e administradores (responsáveis pelo contato com os usuários e resolução de problemas) saibam como agir nas mais diversas situações.&lt;/p&gt;
&lt;p&gt;Construa bem sua jornada e procure pensar em todas as partes envolvidas. Talvez você não consiga cobrir tudo, mas é importante que antes de iniciar uma mudança drástica como essa, você proure documentar os possíveis problemas e forneça meios para que os usuários saibam como resolvê-los.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Obrigado por ter lido até aqui, espero que tenha gostado do conteúdo, nos vemos em breve.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Protegendo acessos privilegiados com o Entra ID Privileged Identity Management</title><link>https://pedroignacio.dev/post/iniciando-com-azure-pim/</link><guid isPermaLink="true">https://pedroignacio.dev/post/iniciando-com-azure-pim/</guid><description>Com cada vez mais recursos sendo executados em sua conta do Azure, a importância de controlar o acesso à recursos privilegiados aumenta exponencialmente. Com o Entra ID PIM (Privileged Identity Management) podemos reforçar a segurança de acessos priv...</description><pubDate>Thu, 10 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Com cada vez mais recursos sendo executados em sua conta do Azure, a importância de controlar o acesso à recursos privilegiados aumenta exponencialmente. Com o Entra ID PIM (&lt;em&gt;Privileged Identity Management&lt;/em&gt;) podemos reforçar a segurança de acessos privilegiados em toda a plataforma.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;licença&quot;&gt;Licença&lt;/h1&gt;
&lt;p&gt;Para usufruir das funcionalidades do PIM, é necessário que os usuários envolvidos tenham a licença &lt;strong&gt;P2 do Entra ID&lt;/strong&gt; ou a licença de &lt;strong&gt;Governança do Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Caso você esteja utilizando o período de testes das licenças fornecido pelo Entra ID (30 dias de licenças P2 e 90 dias de licenças E5), você poderá testar essa funcionalidade sem disponibilizar de forma explícita uma licença para os usuários. Uma vez que o período de testes se encerrar, a funcionalidade não estará mais disponível para os usuários que a estavam utilizando.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;que-problema-o-pimresolve&quot;&gt;Que problema o PIM resolve?&lt;/h1&gt;
&lt;p&gt;Sabemos que uma das vantagens de se utilizar a nuvem pública é a capacidade de controlar os acessos utilizando RBAC (&lt;em&gt;role based access control&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Dentre as &lt;strong&gt;funções&lt;/strong&gt; (&lt;em&gt;roles&lt;/em&gt;) existentes no Azure, temos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aquelas que permitem que o usuário realize qualquer tipo de operações dentro de um recurso;&lt;/li&gt;
&lt;li&gt;Aquelas que fornecem ao usuário alto escopo de visualização.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Em ambos os casos, sua utilização pode ser um problema de segurança grave para a empresa, visto que o usuário terá acesso a informações possivelmente sensíveis e isso aumenta o nível de risco atrelado a identidade.&lt;/p&gt;
&lt;p&gt;Para essas funções, podemos usufruir do &lt;strong&gt;PIM&lt;/strong&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante frisar que o PIM deve ser utilizado para acessos privilegiados e não para qualquer acesso. A má utilização de seus recursos pode gerar transtorno aos usuários que necessitam de acessos triviais aos ambientes para realizar tarefas de seu dia a dia de trabalho. Ao utilizar o PIM, é essencial prestar atenção aos fluxos de aprovação criados, para garantir que os acessos de um usuário não fiquem dependentes de outras equipes cujas responsabilidade são outras.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;como-o-pim-funciona&quot;&gt;Como o PIM funciona?&lt;/h1&gt;
&lt;h2 id=&quot;na-perspectiva-dousuário&quot;&gt;Na perspectiva do usuário&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/iniciando-com-azure-pim/50c75113-b141-4d41-8ad8-f3ea2bd3c559.jpeg&quot; alt=&quot;Interações do usuário com o PIM&quot;&gt;&lt;/p&gt;
&lt;p&gt;Esse é de forma simplificada, o fluxo de utilização do PIM.&lt;/p&gt;
&lt;p&gt;O usuário necessita de um acesso considerado privilegiado. Acessa a console do PIM através do Portal Azure e consulta as funções que tem acesso.&lt;/p&gt;
&lt;p&gt;No painel que contém as funções disponíveis para o usuário, ele pode escolher a função necessária (as funções disponíveis para o usuário devem ser configuradas previamente para permitir sua utilização).&lt;/p&gt;
&lt;p&gt;Após selecionar a função desejada, o usuário entrará na fase de ativação. Essa fase consiste em definir o tempo desejado de ativação (em horas) e inserir uma justificativa para ativação da função.&lt;/p&gt;
&lt;p&gt;Como última etapa, se configurada, o usuário pode precisar da aprovação de um outro usuário (ou de uma equipe, como é visto normalmente nas empresas) ou precisará utilizar um segundo fator de autenticação para conseguir finalizar a ativação da função.&lt;/p&gt;
&lt;p&gt;Após feito o processo o usuário terá os privilégios necessários para realizar suas atividades!&lt;/p&gt;
&lt;h2 id=&quot;na-perspectiva-dos-administradores-e-dos-times-de-segurança&quot;&gt;Na perspectiva dos administradores e dos times de segurança&lt;/h2&gt;
&lt;p&gt;O papel dos administradores é operar a plataforma e criar junto dos times de segurança os controles de acesso desejados e recomendados.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/iniciando-com-azure-pim/5e57d79d-71ad-41d6-bab4-fa4d19002aad.jpeg&quot; alt=&quot;O que pode ser feito com as funções&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro do PIM podemos selecionar entre as mais diversas funções do Azure e do Azure AD. Cada função pode ser configurada de uma maneira diferente, atendendo os desejos dos times de segurança. Algumas das configurações disponíveis são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Duração máxima da ativação — determina quanto tempo uma função que foi ativada ficará disponível para uso;&lt;/li&gt;
&lt;li&gt;Aprovador — caso julgue necessário, os administradores podem configurar alguns aprovadores para aquela função. Quando um usuário solicitar a ativação, os aprovadores precisarão justificar o motivo de estarem aprovando/negando a ativação;&lt;/li&gt;
&lt;li&gt;Duração qualificada — é possível especificar quanto tempo a função estará disponível para aquele usuário. Uma vez que esse tempo expirar, será necessário uma nova atribuição da função por parte dos responsáveis;&lt;/li&gt;
&lt;li&gt;Notificações — os administradores podem configurar notificações para serem enviadas a certos usuários quando novos usuários forem atribuídos à função como qualificados, ativos ou quando a função for ativada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vamos à dois exemplos sobre como funções de diferentes privilégios e níveis de acesso podem ser configuradas:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Exemplo 1&lt;/em&gt;: as funções &lt;strong&gt;Desenvolvedor de aplicações&lt;/strong&gt; e &lt;strong&gt;Analista de insights&lt;/strong&gt; do Azure AD poderiam ser configuradas para exigirem que o usuário que as tenha disponível utilize o Azure MFA para confirmar a aprovação de seu uso.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Exemplo 2&lt;/em&gt;: as funções de &lt;strong&gt;Administrador&lt;/strong&gt; como a &lt;strong&gt;Administrador Global&lt;/strong&gt;, &lt;strong&gt;Administrador de Autenticação&lt;/strong&gt; e &lt;strong&gt;Administrador de Cobrança&lt;/strong&gt; podem ser configuradas para que o usuário elegível para sua ativação, necessite da aprovação de um outro usuário (ou equipe) antes de iniciar seu uso.&lt;/p&gt;
&lt;p&gt;Quando os times finalizarem as configurações das funções, será hora de atribuí-las aos usuários conforme necessário.&lt;/p&gt;
&lt;p&gt;Ao criar uma atribuição, será selecionado um escopo de acesso da função (se for uma função do Azure AD o escopo pode ser o &lt;em&gt;tenant&lt;/em&gt; ou algum outro recurso, caso seja uma função do Azure o escopo pode ser qualquer um dentro das estruturas) e um destino da atribuição, que podem ser &lt;strong&gt;usuários&lt;/strong&gt; ou &lt;strong&gt;grupos&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;O último passo é escolher se o usuário terá a função disponível para ativação, precisando passar pelo fluxo de ativação configurado na função, ou se ela estará ativa para ele, nesse caso não requerendo a ativação através do PIM. O administrador também pode configurar um tempo de duração da atribuição, que obrigatoriamente deverá estar dentro do tempo de duração que foi configurado para a função (duração qualificada).&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;nos-familiarizando-com-o-portal-dopim&quot;&gt;Nos familiarizando com o portal do PIM&lt;/h1&gt;
&lt;h1 id=&quot;dentro-do-portal-do-azure-você-pode-acessar-o-portal-do-pim-que-concentra-todas-as-capacidades-do-recurso&quot;&gt;Dentro do Portal do Azure você pode acessar o portal do PIM, que concentra todas as capacidades do recurso.&lt;/h1&gt;
&lt;p&gt;Ao acessar o portal, você irá se deparar com a seguinte tela:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/iniciando-com-azure-pim/63910496-d36e-4602-adbe-0c7f230d8b14.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao lado esquerdo abaixo de “Tarefas” podemos identificar as capacidades do PIM que permitem que o usuário:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ative suas &lt;strong&gt;funções&lt;/strong&gt; disponíveis (&lt;strong&gt;Minhas Funções&lt;/strong&gt;);&lt;/li&gt;
&lt;li&gt;Consulte os status das suas aprovações (&lt;strong&gt;Minhas solicitações&lt;/strong&gt;);&lt;/li&gt;
&lt;li&gt;Aprove solicitações de outros usuários (&lt;strong&gt;Aprovar solicitações&lt;/strong&gt;);&lt;/li&gt;
&lt;li&gt;Performe revisões de acesso (&lt;strong&gt;Análise de acesso&lt;/strong&gt;);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Logo abaixo na seção “Gerenciar”, os usuários com privilégios suficientes poderão alterar as configurações de permissionamento das funções do Azure, Azure AD e funções atreladas à grupos.&lt;/p&gt;
&lt;p&gt;Em “O meu Histórico de Auditoria” é possível visualizar os &lt;em&gt;logs&lt;/em&gt; que representam as operações realizadas pelo usuário no PIM. Algumas dessas informações são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atualização da configuração da função;&lt;/li&gt;
&lt;li&gt;Atribuição de novas funções para usuários e grupos;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;O PIM é um recurso poderosíssimo para proteger seu ambiente Azure.&lt;/p&gt;
&lt;p&gt;Suas capacidades e funcionalidades permitem inserir uma camada mais rígida de segurança para usuários que desejam acessar recursos e ambientes críticos.&lt;/p&gt;
&lt;p&gt;Nos próximos artigos vamos realizar a configuração de algumas roles para exigir o uso do Azure MFA em sua ativação e da aprovação de outros usuários para permitir o acesso.&lt;/p&gt;
&lt;p&gt;Em breve falaremos também sobre a revisão de acesso, recurso utilizado para reforçar a aplicação do princípio do &lt;strong&gt;privilégio mínimo&lt;/strong&gt;, garantindo que os usuários tenham somente o acesso necessário e nada além disso.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo e te espero no próximo.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>KubeCon North America 2024 - recap</title><link>https://pedroignacio.dev/post/kubecon-na-2024-recap/</link><guid isPermaLink="true">https://pedroignacio.dev/post/kubecon-na-2024-recap/</guid><description>Quase um mês após o evento, chegou o momento de compartilhar os principais pontos que capturei ao longo dos 4 dias em salt lake city. Devido a concorrência, algumas palestras precisaram ser assistidas posteriormente, com a divulgação das gravações, e...</description><pubDate>Mon, 09 Dec 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Quase um mês após o evento, chegou o momento de compartilhar os principais pontos que capturei ao longo dos 4 dias em &lt;em&gt;salt lake city&lt;/em&gt;. Devido a concorrência, algumas palestras precisaram ser assistidas posteriormente, com a divulgação das gravações, então aqui vamos nós!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;sobre-o-evento&quot;&gt;Sobre o evento&lt;/h1&gt;
&lt;p&gt;A &lt;strong&gt;KubeCon + CloudNativeCon&lt;/strong&gt; é o principal evento de tecnologia &lt;em&gt;open source&lt;/em&gt; e &lt;em&gt;vendor neutral&lt;/em&gt; do planeta. Tendo edições na américa do norte, europa, Índia, China e (agora) Japão, a conferência tem como seu principal propósito trazer a comunidade de tecnologia para um ambiente de respeito, colaborativo e extremamente engajado.&lt;/p&gt;
&lt;p&gt;No evento você encontra pessoas de todos os backgrounds, técnicos, não técnicos, DevOps, SRE, Software Engineers, QAs, Designers, Arquitetos entre outros cargos. Devido sua diversidade de participantes e de conteúdos, todo mundo tem algo a fazer a todo momento!&lt;/p&gt;
&lt;p&gt;Em relação ao conteúdo técnico, temos palestras de todos os níveis. Palestras avançadas, para iniciantes, workshops e demos ocorrem o tempo todo. Além de toda a seção de palestras, que ocorre de maneira simultânea em diversas partes do centro de conferência onde é hospedado o evento, ainda há o &lt;em&gt;Project Pavillon&lt;/em&gt; e o &lt;em&gt;Solutions Showcase&lt;/em&gt;, que servem para conectar a comunidade com os &lt;em&gt;maintainers&lt;/em&gt; dos projetos e contribuidores das empresas participantes.&lt;/p&gt;
&lt;p&gt;Por mais que as palestras sejam simplesmente fantásticas e a todo momento você esteja aprendendo algo novo, a melhor parte do evento é a conexão com outros membros da comunidade. Conhecer outras pessoas, fazer novos amigos, aprender coisas novas com colegas de diferentes culturas e diferentes históricos é algo que realmente não tem preço. Nessas conversas você conhece alguém que trabalha na empresa dos seus sonhos, ou que teve uma mudança brusca de carreira, que superou dificuldades parecidas com as suas, que conquistou coisas que você também deseja conquistar, e é exatamente esse o propósito do evento, a &lt;strong&gt;COMUNIDADE&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/kubecon-na-2024-recap/cd1c29a0-c969-416a-9138-2f80c92d2da7.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Essa foi a principal mensagem que trouxe para mim da minha primeira KubeCon e que com certeza absoluta levarei para os próximos eventos que fizer parte.&lt;/p&gt;
&lt;p&gt;Agora, vamos ao técnico…&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;hot-topics&quot;&gt;Hot topics&lt;/h1&gt;
&lt;p&gt;O evento tem apenas dois temas (que se complementam), &lt;em&gt;cloud native technologies&lt;/em&gt; e &lt;em&gt;open source&lt;/em&gt;. Todos os temas abordados ao longo das palestras falam sobre soluções &lt;em&gt;open source&lt;/em&gt; que vem mudando a forma com a qual construímos nossos sistemas em nuvem.&lt;/p&gt;
&lt;p&gt;A lista de temas vai de &lt;strong&gt;observabilidade&lt;/strong&gt; a &lt;strong&gt;testes&lt;/strong&gt;, de &lt;strong&gt;segurança&lt;/strong&gt; a &lt;strong&gt;developer experience&lt;/strong&gt;, e somados a esses, temos uma série de outros tópicos que foram explorados.&lt;/p&gt;
&lt;p&gt;Abaixo farei uma lista com alguns temas que pude extrair o máximo dos conteúdos compartilhados.&lt;/p&gt;
&lt;h2 id=&quot;observabilidade&quot;&gt;Observabilidade&lt;/h2&gt;
&lt;p&gt;Nós que trabalhamos com DevOps, SRE e desenvolvimento temos plena consciência da necessidade de termos uma boa estrutura de observabilidade em nosso ambiente. Sem observabilidade não há vitória!&lt;/p&gt;
&lt;p&gt;No &lt;em&gt;&lt;a href=&quot;http://landscape.cncf.io&quot;&gt;landscape&lt;/a&gt;&lt;/em&gt; de soluções &lt;em&gt;cloud native&lt;/em&gt; temos uma série de ferramentas de observabilidade que já estão consolidadas no mercado e que representam boa parte da &lt;em&gt;stack&lt;/em&gt; utilizada por grandes empresas.&lt;/p&gt;
&lt;p&gt;Com o surgimento cada vez mais rápido de ferramentas de observabilidade proprietárias, que consequentemente aplicam seus próprios padrões, a expansão do &lt;strong&gt;OpenTelemetry&lt;/strong&gt; aparece como um alívio.&lt;/p&gt;
&lt;p&gt;Seus componentes tem ampla contribuição da comunidade e com toda certeza, &lt;em&gt;&lt;strong&gt;OpenTelemetry is the way to go!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Seu uso tem se tornado o padrão de mercado para arquiteturas de observabilidade, por conta de sua flexibilidade, por ser agnóstica a provedores e principalmente por definir padrões de nomenclatura, métricas e de outros recursos.&lt;/p&gt;
&lt;p&gt;Ficou claro durante o evento que todas as soluções de observabilidade daqui para frente utilizarão o &lt;em&gt;OpenTelemetry&lt;/em&gt; como um padrão para suas aplicações. Para provar essa ampla adoção do padrão, empresas como &lt;strong&gt;Grafana&lt;/strong&gt; e &lt;strong&gt;Datadog&lt;/strong&gt; já publicam e contribuem de maneira pública para o repositório da solução.&lt;/p&gt;
&lt;h2 id=&quot;gitopsiac&quot;&gt;GitOps/IaC&lt;/h2&gt;
&lt;p&gt;Com ambientes cada vez mais complexos e difíceis de se gerenciar, tem se tornado claro que precisamos de controle dos nossos artefatos mais do que nunca. Não existe mais um mundo onde os &lt;em&gt;deployments&lt;/em&gt; nos &lt;em&gt;clusters&lt;/em&gt; não são mais feitos através de &lt;em&gt;pipelines&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Tudo isso já tem sido reforçado há anos na comunidade, porém enxergar a forma que projetos como &lt;strong&gt;Argo&lt;/strong&gt;, &lt;strong&gt;Flux&lt;/strong&gt; e &lt;strong&gt;Open Tofu&lt;/strong&gt; vem crescendo, mostra que precisamos sempre repensar na forma como estamos utilizando esses recursos.&lt;/p&gt;
&lt;p&gt;No mundo da engenharia de plataforma (e também do DevOps), habilitar aos desenvolvedores a rápida criação de seus artefatos, possibilitando a entrega de valor mais rápida ao cliente e diminuindo o trabalho dos times de engenharia, tem sido possível pela utilização das ferramentas anteriormente mencionadas.&lt;/p&gt;
&lt;p&gt;A reutilização dos artefatos criados para os times de engenharia é uma prática que deve ser considerada obrigatória. Habilitar que outras equipes possam consumir os insumos já produzidos de forma que possam realizar a criação de seus recursos cada vez mais rápido, trará benefícios não apenas locais na empresa, mas também criará uma cultura de colaboração entre os times, tornando-os ainda mais poderosos.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Sobre o uso de &lt;em&gt;GitOps&lt;/em&gt; e &lt;em&gt;IaC&lt;/em&gt; para práticas de engenharia de plataforma, recomendo a palestra dos meus amigos Lucas e Tiago sobre o tema: &lt;a target=&quot;_self&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://www.youtube.com/watch?v=UFGr2qI9aOI&quot; style=&quot;pointer-events: none&quot;&gt;https://www.youtube.com/watch?v=UFGr2qI9aOI&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;ia&quot;&gt;IA&lt;/h2&gt;
&lt;p&gt;IA é o assunto do momento há alguns anos, porém não era um tema constantemente abordado quando falávamos de &lt;em&gt;kubernetes&lt;/em&gt;. Até agora.&lt;/p&gt;
&lt;p&gt;Um ponto interessante abordado de forma ampla no evento foi a ampliação no uso de soluções como &lt;strong&gt;Kubeflow&lt;/strong&gt;, que permite a execução de &lt;em&gt;workloads&lt;/em&gt; de &lt;em&gt;machine learning&lt;/em&gt; em &lt;em&gt;clusters kubernets&lt;/em&gt; de forma nativa.&lt;/p&gt;
&lt;p&gt;Nessa mesma linha tivemos também a divulgação do suporte de provedores de nuvem pública a imagens de VMs que tem o uso de &lt;em&gt;GPUs&lt;/em&gt; habilitadas e que possibilitam a criação de &lt;em&gt;clusters&lt;/em&gt; nessas máquinas.&lt;/p&gt;
&lt;p&gt;Com essas evoluções, o treinamento de modelos de &lt;em&gt;machine learning&lt;/em&gt; em ambientes &lt;em&gt;cloud native&lt;/em&gt; se tornou muito mais eficiente e difundido, possibilitando que todos, independente do tamanho e dos recursos, pudessem treinar seus modelos e construir suas soluções.&lt;/p&gt;
&lt;h2 id=&quot;edge-computing&quot;&gt;Edge Computing&lt;/h2&gt;
&lt;p&gt;Borda tem sido um tema extremamente relevante no mundo das empresas de telecomunicações por pelo menos 10 anos. A crescente quantia de dispositivos móveis que executam processamentos complexos na palma da mão dos clientes tem sido um chamado para a garantia de uma infraestrutura que suporte todo esse processo e sustente todas essas estruturas com a garantia da não interrupção do serviço.&lt;/p&gt;
&lt;p&gt;Dito isso, &lt;em&gt;kubernetes on edge&lt;/em&gt; foi um tema bastante abordado. Soluções como &lt;strong&gt;KubeEdge&lt;/strong&gt; e &lt;strong&gt;k3s&lt;/strong&gt; foram amplamente faladas por sua elasticidade e eficiência, possibilitando que as empresas processem largas quantias de dados e tornem a experiência do usuário cada vez mais personalizada, com tecnologias eficiêntes onde quer que esteja.&lt;/p&gt;
&lt;p&gt;A ampliação do uso desses recursos possibilitarão uma evolução mais rápida nas indústrias automotivas e de telecomunicações, que tem sua malha de dispositivos amplamente distribuída e que precisam de baixíssima latência e processamento eficiênte, cada vez mais próxima dos usuários finais.&lt;/p&gt;
&lt;h2 id=&quot;e-é-claro-kubernetes&quot;&gt;e é claro, Kubernetes…&lt;/h2&gt;
&lt;p&gt;Obviamente não poderia deixar de comentar sobre o dono da festa!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/kubecon-na-2024-recap/388273cb-080d-4e12-957b-ce1477bb56b9.png&quot; alt=&quot;Kubernetes just turned 10!. Who could have predicted that 10 years… | by  Mathieu Benoit | Medium&quot;&gt;&lt;/p&gt;
&lt;p&gt;No ano em que o projeto completa 10 anos, a comemoração é toda para ele! Se tornando o projeto &lt;em&gt;open source&lt;/em&gt; de maior sucesso após o &lt;em&gt;Linux&lt;/em&gt;, o &lt;strong&gt;Kubernetes&lt;/strong&gt; é peça essencial em grande parte das empresas que está na nuvem.&lt;/p&gt;
&lt;p&gt;Ao longo da conferência, uma série de anúncios foram feitos relacionados ao projeto. Soluções exclusivas para &lt;em&gt;clusters kubernetes&lt;/em&gt; dominaram o pavilhão de exposição, independente do seu domínio (seja segurança, observabilidade, resource management, entre outros).&lt;/p&gt;
&lt;p&gt;O Gateway API, uma nova forma de expor suas aplicações na internet foi amplamente explorado em diversas palestras.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;eBPF&lt;/strong&gt; também foi um tema fortemente presente nas &lt;em&gt;talks&lt;/em&gt;, com soluções como &lt;strong&gt;Falco&lt;/strong&gt; e &lt;strong&gt;Cilium&lt;/strong&gt; comandando a lista de projetos mais populares que fazem uso desse recurso.&lt;/p&gt;
&lt;p&gt;Além dos recursos novos e projetos sensacionais desenvolvidos pela comunidade, pude sair com uma certeza, todo o sucesso dos projetos se deve 100% a contribuição da comunidade e a paixão que temos pela área.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open Source é o presente e o futuro!&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha gostado dos relatos, aproveito para deixar aqui o canal da CNCF onde você pode consumir todas as palestras que foram apresentadas no evento: &lt;a href=&quot;https://youtube.com/playlist?list=PLj6h78yzYM2Pw4mRw4S-1p_xLARMqPkA7&amp;#x26;si=LafAAlqJ5mtyZw7k&quot;&gt;https://youtube.com/playlist?list=PLj6h78yzYM2Pw4mRw4S-1p_xLARMqPkA7&amp;#x26;si=LafAAlqJ5mtyZw7k&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>#KuberTENes, Cloud Native Meetup - São Paulo - 06/06</title><link>https://pedroignacio.dev/post/kubertenes-cloud-native-meetup-sao-paulo-0606/</link><guid isPermaLink="true">https://pedroignacio.dev/post/kubertenes-cloud-native-meetup-sao-paulo-0606/</guid><description>No dia 07/06/2014 foi criado o projeto open source de maior sucesso da história, o Kubernetes! Com o passar dos anos, essa gigante plataforma de orquestração de contêineres foi adotada pelas maiores empresas do mundo e hoje contém milhares de contrib...</description><pubDate>Fri, 07 Jun 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No dia 07/06/2014 foi criado o projeto &lt;em&gt;open source&lt;/em&gt; de maior sucesso da história, o &lt;em&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;&lt;/em&gt;! Com o passar dos anos, essa gigante plataforma de orquestração de contêineres foi adotada pelas maiores empresas do mundo e hoje contém milhares de contribuidores ao redor do globo. Como bons amantes das soluções &lt;em&gt;open source&lt;/em&gt; e parte da iniciativa global da &lt;strong&gt;CNCF&lt;/strong&gt;, nosso &lt;em&gt;chapter cloud native - São Paulo&lt;/em&gt; fez questão de se reunir e comemorar esse marco tão importante da comunidade &lt;em&gt;open source&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;como-foi-o-encontro&quot;&gt;Como foi o encontro?&lt;/h1&gt;
&lt;p&gt;Como todos os nossos encontros do &lt;em&gt;chapter cloud native&lt;/em&gt;, as principais regras de participação são o &lt;strong&gt;respeito&lt;/strong&gt; e a &lt;strong&gt;diversidade&lt;/strong&gt;, mantendo um ambiente confortável para que todos possam se expressar da maneira que bem desejarem.&lt;/p&gt;
&lt;p&gt;O encontro foi hospedado no escritório da Claro Brasil em São Paulo, no dia 06/06/2024, quinta-feira das 18:00 às 21:00. Como todos os eventos, contamos com uma série de patrocinadores que de diferentes formas, mantém as ações da comunidade vivas e acessíveis para todos. O &lt;em&gt;flyer&lt;/em&gt; abaixo contém informações sobre o evento e sobre os patrocinadores.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/feed/update/urn:li:activity:7203839569237127168/&quot;&gt;![Pré-visualização da imagem](https://media.licdn.com/dms/image/D4D22AQGs6PpXB4MLfA/feedshare-shrink_800/0/1717529192836?e=1721865600&amp;#x26;v=beta&amp;#x26;t=BYOtT-y59dyfOKlRyNyCQa_UEeuwaUScm0SF2Eu5z0k align=“center”)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nosso encontro se iniciou com uma &lt;em&gt;talk&lt;/em&gt; sobre “a vida de um contribuidor &lt;em&gt;open source&lt;/em&gt;”, comandada pelo amigo &lt;em&gt;Ricardo Katz&lt;/em&gt;. Logo em seguida, partimos para o &lt;em&gt;open mic&lt;/em&gt; e seção de &lt;em&gt;networking&lt;/em&gt;, onde pudemos sentar para conversar com amigos contribuidores e entusiastas e discutir sobre as iniciativas &lt;em&gt;open source&lt;/em&gt; em que estamos presentes.&lt;/p&gt;
&lt;p&gt;Os encontros costumam contar com o apoio das empresas patrocinadoras para compra de caixas de pizzas e bebidas (refrigerantes, sucos e cervejas) e ao final das &lt;em&gt;talks&lt;/em&gt;, nos juntamos por algumas horas para conversar com os amigos e conhecer novos integrantes do grupo.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;talks-e-open-mic&quot;&gt;&lt;em&gt;Talks&lt;/em&gt; e &lt;em&gt;Open Mic&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Como comentei brevemente na seção anterior, o &lt;em&gt;meetup&lt;/em&gt; foi dividido em duas partes, sendo a primeira uma &lt;em&gt;talk&lt;/em&gt; sobre contribuição aos projetos &lt;em&gt;open source&lt;/em&gt; e a segunda um espaço aberto para qualquer um que desejasse compartilhar sua experiência com os projetos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/kubertenes-cloud-native-meetup-sao-paulo-0606/ba1b7985-7f19-4d3e-9cb6-f698047ef6d4.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Na seção de &lt;em&gt;open mic&lt;/em&gt; tivemos diversos amigos compartilhando suas experiências com &lt;em&gt;open source&lt;/em&gt;. Alguns falaram sobre como a comunidade e os responsáveis pelos projetos foram acolhedores e essenciais para que continuassem interagindo com os grupos, mas também tivemos alguns colegas reportando suas experiências negativas e como agiram em cima disso para melhorar a comunidade que abriga o projeto.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;algumas-fotos-e-posts&quot;&gt;Algumas fotos e &lt;em&gt;posts&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Para registrarmos o sucesso do nosso encontro, aqui vão algumas fotos com os amigos e alguns dos &lt;em&gt;posts&lt;/em&gt; feitos no Linkedin.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/kubertenes-cloud-native-meetup-sao-paulo-0606/276e021f-5daa-4844-aa5f-b595845f47ea.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Meus registros sobre o &lt;em&gt;meetup&lt;/em&gt; bem como informações sobre os outros participantes e organizadores: &lt;a href=&quot;https://www.linkedin.com/posts/pedroirufo_kubertenes-activity-7204887843180072962-jwAU?utm_source=share&amp;#x26;utm_medium=member_desktop&quot;&gt;linkedin&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Esse foi apenas um dos muitos encontros que temos ao longo do ano, se você se interessa por tecnologias &lt;em&gt;open source&lt;/em&gt; e gostaria de fazer parte do grupo pode se inscrever no &lt;em&gt;website&lt;/em&gt; oficial da &lt;em&gt;CNCF&lt;/em&gt; e se juntar ao nosso grupo &lt;em&gt;&lt;strong&gt;CNCF Cloud Native São Paulo&lt;/strong&gt;&lt;/em&gt;: &lt;em&gt;&lt;a href=&quot;https://community.cncf.io/cloud-native-sao-paulo/&quot;&gt;website&lt;/a&gt;&lt;/em&gt;. Temos outros &lt;em&gt;chapters&lt;/em&gt; que podem ser visualizados aqui: &lt;em&gt;&lt;a href=&quot;https://community.cncf.io/&quot;&gt;community groups&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Garantindo segurança na liberação de acessos com os Pacotes de Acesso do Entra ID</title><link>https://pedroignacio.dev/post/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/</link><guid isPermaLink="true">https://pedroignacio.dev/post/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/</guid><description>Visando facilitar a gestão de concessão de acesso, o Entra ID fornece a capacidade de “Pacotes de Acesso”, que habilita a atribuição de acesso à aplicações e grupos para diversos destinatários. Procurando entender como esse recurso pode agregar à seg...</description><pubDate>Tue, 26 Sep 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Visando facilitar a gestão de concessão de acesso, o Entra ID fornece a capacidade de “Pacotes de Acesso”, que habilita a atribuição de acesso à aplicações e grupos para diversos destinatários. Procurando entender como esse recurso pode agregar à segurança da sua empresa, vamos explorá-lo hoje!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-problemaresolve&quot;&gt;Qual problema resolve?&lt;/h1&gt;
&lt;p&gt;Com o crescimento das empresas em suas áreas, a necessidade da contratação de novos empregados é certa. Com o alto fluxo de pessoas novas chegando nas empresas, os times de gestão de acesso e segurança serão sobrecarregados com as responsabilidades de criar os usuários e de atribuírem a eles os acessos “básicos” necessários para começar sua jornada na empresa.&lt;/p&gt;
&lt;p&gt;Esse cenário se aplica não apenas à funcionários da empresa, mas também à terceirizados (prestadores de serviço) que são contratados, visto que também acessarão os recursos da companhia.&lt;/p&gt;
&lt;p&gt;Com esse recurso do Entra ID, nós podemos criar pacotes que contenham os acessos aos recursos necessários em diferentes níveis e granularidades, como mostra a imagem abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/3e9a3f42-c1b9-4f66-af5f-0efb7c2bfefd.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Na imagem podemos ter uma ideia da granularidade alcançável com o uso dos Pacotes de Acesso. Podemos criar pacotes que contenham os recursos de uma equipe, de um departamento, recursos “básicos” para qualquer um na empresa (como acesso ao portal do RH, acesso ao Office 365, entre outros) entre outras possibilidades. Você poderá utilizar esse recurso de uma maneira que ele se aplique da maneira correta ao contexto da sua empresa.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;como-começar&quot;&gt;Como começar?&lt;/h1&gt;
&lt;p&gt;A primeira etapa consiste da criação de um &lt;strong&gt;Catálogo&lt;/strong&gt; de recursos, que nos permitirá organizar quais são os &lt;strong&gt;Aplicativos&lt;/strong&gt;, &lt;strong&gt;Grupos&lt;/strong&gt; e &lt;strong&gt;Sites do Sharepoint&lt;/strong&gt; que o usuário que receber o pacote terá acesso.&lt;/p&gt;
&lt;h2 id=&quot;criando-o-catálogo-derecursos&quot;&gt;Criando o catálogo de recursos&lt;/h2&gt;
&lt;p&gt;Para essa tarefa, podemos acessar o recurso “&lt;em&gt;Catalog&lt;/em&gt;” dentro do &lt;em&gt;Identity Governance&lt;/em&gt; em &lt;em&gt;Entitlement Management&lt;/em&gt;. Você pode criar um catálogo antes de começar a configurar seu pacote de acessos, que é o nosso caso, porém também é possível realizar a criação do catálogo durante a criação do pacote de acessos.&lt;/p&gt;
&lt;p&gt;Ao entrarmos na criação do catálogo você será apresentado com o seguinte formulário:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/1f588cfb-9a3d-4fb4-b316-b43e61f3d0e2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A criação é simples, basta inserir um nome e uma descrição para o catálogo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante se atentar à opção “&lt;em&gt;Enabled for External Users&lt;/em&gt;”. Caso você queira que terceirizados que não tenham e-mail com o domínio da sua empresa possam ter acesso ao catálogo, é importante que você mantenha essa opção habilitada.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Após finalizar a criação do catálogo você poderá atribuir recursos a ele. Ao acessar o catálogo criado, navegue até a aba “Resources” e selecione “Add Resources”. Aqui você poderá adicionar os recursos que farão parte do seu pacote de acesso. Procure definir bem os limites dos pacotes de acesso, garantindo que um determinado pacote forneça acesso apenas ao que diz respeito a ele e que não tenha mais coisas do que o necessário.&lt;/p&gt;
&lt;p&gt;Recursos adicionados? Podemos partir para a criação do pacote de acesso!&lt;/p&gt;
&lt;h2 id=&quot;criando-o-pacote-deacesso&quot;&gt;Criando o Pacote de Acesso&lt;/h2&gt;
&lt;p&gt;Partindo para a configuração do nosso pacote, iremos configurá-lo desde o início. As etapas de configuração são as seguintes:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/ac03c3ab-7e79-4097-b51f-605d2d8185bc.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Apenas as abas &lt;em&gt;Basics&lt;/em&gt;, &lt;em&gt;Requests&lt;/em&gt; e &lt;em&gt;Lifecycle&lt;/em&gt; são obrigatórias, como você pode notar o asterisco vermelho à esquerda do título. Mesmo as outras opções não sendo obrigatórias, passaremos por elas pois temos configurações importantes e que nos possibilitam aumentar ainda mais a cobertura dos pacotes de acesso.&lt;/p&gt;
&lt;h3 id=&quot;basics&quot;&gt;Basics&lt;/h3&gt;
&lt;p&gt;As primeiras configurações são as mais simples. Nessa aba nós escolheremos o nome do nosso Pacote de Acesso, uma descrição para ele e também selecionaremos um dos catálogos disponíveis em nosso &lt;em&gt;tenant&lt;/em&gt;. Para esse exemplo, você pode utilizar o catálogo que criou anteriormente e que talvez já contenha alguns recursos, porém caso não tenha realizado a criação de um novo catálogo, existe um padrão que está disponível em todos os &lt;em&gt;tenants&lt;/em&gt;, chamado “&lt;em&gt;General&lt;/em&gt;”.&lt;/p&gt;
&lt;p&gt;Terminando o preenchimento dos campos o seu formulário deve estar parecido com esse, só que com as informações preenchidas por você:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/6d37b967-da06-4e76-b234-be907e9b2a84.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;resource-roles&quot;&gt;Resource roles&lt;/h3&gt;
&lt;p&gt;Apesar de não ser uma aba de preenchimento obrigatória, aqui iremos configurar quais recursos do catálogo selecionado deverão ser aplicados aos destinatários.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/0973b52a-4efa-4b1e-9c7d-89392f3bf059.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;No meu catálogo eu inseri alguns grupos e algumas aplicações existentes em meu &lt;em&gt;tenant&lt;/em&gt;. Como pode ser visto na imagem acima, o grupo “Departamento de Segurança” e a aplicação “Portal Intranet” foram selecionadas para fazerem parte do pacote de acesso.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nos grupos é possível selecionarmos qual papel o usuário assumirá dentro dele, se é um papel de Membro (Member) ou de Dono (Owner) do grupo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;requests&quot;&gt;Requests&lt;/h3&gt;
&lt;p&gt;Passando para a segunda aba obrigatória, essa em si é uma extremamente importante.&lt;/p&gt;
&lt;p&gt;Os pacotes de acesso não são restritos à atribuição por um administrador, nós podemos também configurá-los para permitir que os usuários solicitem acesso ao pacote por conta própria. Isso pode ser muito útil para os times de gestão de identidade, que não precisarão ficar atribuindo os pacotes e poderão apenas aprovar ou rejeitar a solicitação do usuário.&lt;/p&gt;
&lt;p&gt;A primeira seção nos permite definir quem poderá solicitar acesso ao pacote. Temos as seguintes opções:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuários em seu diretório;&lt;/li&gt;
&lt;li&gt;Usuários que &lt;strong&gt;NÃO&lt;/strong&gt; estão em seu diretório;&lt;/li&gt;
&lt;li&gt;Ninguém — a atribuição deverá ser feita diretamente por um administrador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Caso você selecione a &lt;strong&gt;primeira opção&lt;/strong&gt;, poderá escolher entre algumas opções para controlar a solicitação de acesso. Você poderá escolher:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuários e grupos específicos;&lt;/li&gt;
&lt;li&gt;Todos os usuários (excluindo os externos/&lt;em&gt;guests&lt;/em&gt;);&lt;/li&gt;
&lt;li&gt;Todos os usuários (incluindo externos/&lt;em&gt;guests&lt;/em&gt;);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Podemos também configurar uma aprovação necessária para permitir o acesso, podendo escolher até 3 níveis de aprovação, o gerente direto do funcionário como aprovador, validade da requisição e também aprovadores para &lt;em&gt;fallback&lt;/em&gt;, garantindo que caso o aprovador primário não esteja disponível, a requisição possa ser atendida por outra pessoa.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/2ae20c73-e5bc-4453-91ca-91c26cdff468.png&quot; alt=&quot;Arquitetura de funcionamento da solicitação de acesso aos pacotes por parte do usuário&quot;&gt;&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;segunda opção&lt;/strong&gt; habilita a atribuição do acesso à &lt;em&gt;tenants&lt;/em&gt; conectados ao &lt;em&gt;tenant&lt;/em&gt; da sua empresa. Você poderá escolher &lt;em&gt;tenants&lt;/em&gt; específicos, todos os &lt;em&gt;tenants&lt;/em&gt; que estão configurados ou até permitir que todos os &lt;em&gt;tenants&lt;/em&gt; conectados e todos os usuários novos solicitem acesso (maior cobertura). Essa opção permite por exemplo que uma empresa controle os acessos aos outros &lt;em&gt;tenants&lt;/em&gt; de uma mesma &lt;em&gt;holding&lt;/em&gt; (grupo de empresas sob o mesmo conselho executivo).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/939a7343-fcc5-4e66-9338-3043ef41d6f5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;terceira e última opção&lt;/strong&gt; é a “mais tradicional”, que exige que os pacotes de acesso sejam atribuídos diretamente por um usuário administrador. Essa opção permite o maior controle sobre quem terá os acessos mas também gera muita carga operacional em cima dos times de gestão de acesso.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Essa opção deve ser utilizada com cuidado por conta da capacidade de “engessamento” dos processos. O uso indevido dessa propriedade causará lentidão na execução das solicitações, sobrecarga de trabalho aos times de gestão de acesso e também poderá gerar impactos nas atividades exercidas pelos funcionários que necessitam do acesso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/20acbd7a-70bd-4e0e-9e05-86aa3e263828.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Na seção “&lt;em&gt;Enable&lt;/em&gt;” podemos configurar se a política configurada deve estar ativa, permitindo que solicitações de acesso sejam registradas ou inativa, não aceitando novas solicitações até sua ativação.&lt;/p&gt;
&lt;h3 id=&quot;requestor-information&quot;&gt;Requestor information&lt;/h3&gt;
&lt;p&gt;Nesta seção nós podemos criar perguntas que serão mostradas ao usuário no momento em que o mesmo estiver solicitando seu acesso ao pacote.&lt;/p&gt;
&lt;p&gt;As perguntas podem ser marcadas como obrigatórias e podem ser do tipo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Texto curto;&lt;/li&gt;
&lt;li&gt;Múltipla escolha;&lt;/li&gt;
&lt;li&gt;Texto longo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ao acessar o portal do &lt;em&gt;My Access&lt;/em&gt; e selecionarem o pacote que desejam ter acesso, os mesmos deverão responder as perguntas obrigatórias para que possam finalizar a requisição.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/c976b791-e4f7-4a70-8417-4f3c10509c5c.png&quot; alt=&quot;Exemplo de pergunta&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;lifecycle&quot;&gt;Lifecycle&lt;/h3&gt;
&lt;p&gt;Na última aba obrigatória, vamos configurar as propriedades de validade das atribuições dos pacotes de acesso.&lt;/p&gt;
&lt;p&gt;Neste ponto podemos configurar para que a atribuição:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dure até determinada data;&lt;/li&gt;
&lt;li&gt;Dure certa quantidade de DIAS;&lt;/li&gt;
&lt;li&gt;Dure certa quantidade de HORAS;&lt;/li&gt;
&lt;li&gt;Nunca expire.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Podemos além de definir de maneira estática a duração da atribuição, permitir que o usuário que está solicitando o acesso insira a duração desejada.&lt;/p&gt;
&lt;p&gt;O uso das Revisões de Acesso também se faz possível nessa seção. Aqui podemos configurar as revisões de acesso que deverão ser executadas em cima desse pacote, garantindo a retirada de qualquer usuário que não necessite mais do acesso.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/5a8e0481-f51c-4a84-b305-72e2bcbdc221.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A opção “Users can request specific timeline” é onde podemos permitir ou negar que o usuário insira sua própria data de expiração do acesso. Da mesma forma que esse recurso é útil, ele se torna um vetor de ataque quando não temos uma política de revisão de acesso configurada, pois não conseguiremos controlar quando aquele usuário terá seu acesso encerrado.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;custom-extensions&quot;&gt;Custom extensions&lt;/h3&gt;
&lt;p&gt;Visando a automação dos processos, nessa seção nós podemos selecionar alguns fluxos do &lt;em&gt;Azure Logic Apps&lt;/em&gt; para que sejam executados quando um evento acontecer.&lt;/p&gt;
&lt;p&gt;Os eventos disponíveis são os seguintes:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/liberacao-de-acessos-com-pacotesdeacesso-do-entraid/bfc61713-75c0-4ec3-839a-803051e50f44.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Você poderá atribuir um fluxo do &lt;em&gt;Logic Apps&lt;/em&gt; para cada um dos eventos demonstrados acima.&lt;/p&gt;
&lt;h3 id=&quot;review-create&quot;&gt;Review + create&lt;/h3&gt;
&lt;p&gt;Após todas as configurações, chegou a hora de revisar seu trabalho e confirmar a criação do seu recurso!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;e-agora&quot;&gt;E agora?&lt;/h1&gt;
&lt;p&gt;Caso você tenha configurado o pacote para permitir que os usuários solicitassem acesso, basta seu usuário navegar até &lt;em&gt;&lt;a href=&quot;http://myaccess.microsoft.com&quot;&gt;My Access&lt;/a&gt;&lt;/em&gt; e solicitar o acesso ao recurso.&lt;/p&gt;
&lt;p&gt;Agora, caso você tenha configurado para que um administrador realizasse a atribuição do pacote aos usuários, será necessário que esse administrador acesse o &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt; e que realize a atribuição do pacote ao usuário desejado. Ao navegar até a página do Pacote de Acesso criado você verá que o primeiro campo de preenchimento para a atribuição é a seleção de uma &lt;em&gt;policy&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Essa &lt;em&gt;policy&lt;/em&gt; unifica os mecanismos de governança do pacote e é constituida das informações que foram inseridas durante a criação do pacote. O que você configurou em “&lt;em&gt;Requests&lt;/em&gt;”, “&lt;em&gt;Requestor information&lt;/em&gt;”, “&lt;em&gt;Lifecycle&lt;/em&gt;” e “&lt;em&gt;Custom extensions&lt;/em&gt;” é representado de maneira unificada por uma &lt;em&gt;policy&lt;/em&gt;. Você pode criar &lt;em&gt;policies&lt;/em&gt; diferentes para as diferentes necessidades de governança que você tem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante que a policy esteja ativa, caso contrário ela não entrará em efetividade e seus controles não serão aplicados!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;Os pacotes de acesso fornecem muito mais do que apenas organização nas liberações, eles reforçam a segurança e garantem o &lt;em&gt;compliance&lt;/em&gt; da empresa.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo e que a partir de agora você consiga usufruir desse recurso tão poderoso.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>MDM (Mobile Device Management) + Intune</title><link>https://pedroignacio.dev/post/mdm/</link><guid isPermaLink="true">https://pedroignacio.dev/post/mdm/</guid><description>Com cada vez mais dispositivos sendo utilizados pelos usuários no dia a dia, é importante mantermos os equipamentos utilizados para acessar informações da organização controlados e em compliance com as normas internas.

O que é MDM?

Uma solução de M...</description><pubDate>Tue, 30 Jan 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Com cada vez mais dispositivos sendo utilizados pelos usuários no dia a dia, é importante mantermos os equipamentos utilizados para acessar informações da organização controlados e em &lt;em&gt;compliance&lt;/em&gt; com as normas internas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-mdm&quot;&gt;O que é MDM?&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/mdm/51ccbfa7-8b73-41ce-8079-43adf6dd9c22.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Uma solução de &lt;em&gt;MDM&lt;/em&gt;, ou &lt;em&gt;Mobile Device Management&lt;/em&gt;, é utilizada pelas organizações para gerir de maneira mais eficiente os dispositivos corporativos fornecidos aos funcionários e terceirizados. Utilizar uma solução de &lt;em&gt;MDM&lt;/em&gt; permitirá que os times de segurança implementem as políticas de segurança que melhor se encaixam no uso daquele usuário.&lt;/p&gt;
&lt;p&gt;Além da segurança, os controles que podem ser feitos através de uma solução de &lt;em&gt;MDM&lt;/em&gt; permitirão otimizar as atividades corporativas dos usuários através da eliminação de aplicativos indesejados, recomendação de aplicativos corporativos e com a personalização das experiências dos usuários dentro do dispositivo e também dos aplicativos.&lt;/p&gt;
&lt;p&gt;Podemos também em algumas soluções, controlar o comportamento e a atividade dos usuários dentro de aplicativos. É possível escolher entre diferentes tipos de solução e de plataformas para a aplicação dos controles.&lt;/p&gt;
&lt;p&gt;O desenho apresentado no início deste capítulo mostra de maneira genérica os diferentes dispositivos e sistemas que podem ser monitorados. A solução mostrada é o &lt;strong&gt;Microsoft Intune&lt;/strong&gt;, solução de MDM da Microsoft, completamente integrada com o Microsoft Entra e com as soluções do &lt;strong&gt;Office 365&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Falaremos com mais detalhes sobre o Intune no próximo capítulo, porém suas capacidades técnicas como solução de MDM são parecidas com as vistas nas demais soluções de mercado. Gestão de dispositivos, gestão de aplicações, proteção contra vazamento de dados, &lt;em&gt;enforcement&lt;/em&gt; de políticas de segurança, criptografia de disco, são algumas das funções que o &lt;strong&gt;Intune&lt;/strong&gt; faz e que nós vamos comentar!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;microsoft-intune&quot;&gt;Microsoft Intune&lt;/h1&gt;
&lt;p&gt;![](&lt;a href=&quot;https://learn.microsoft.com/pt-br/mem/intune/fundamentals/media/what-is-intune/what-is-intune.png&quot;&gt;https://learn.microsoft.com/pt-br/mem/intune/fundamentals/media/what-is-intune/what-is-intune.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Solução de MDM da Microsoft, o Intune vem nativamente integrado às soluções do Microsoft Entra e do Office 365. Com a integração ao ecossistema do Entra, podemos utilizar informações relacionadas aos dispositivos gerenciados pelo Intune, na configuração das políticas de acesso.&lt;/p&gt;
&lt;p&gt;Falando especificamente do Intune, podemos acessar seu portal através do endereço: &lt;a href=&quot;http://intune.microsoft.com&quot;&gt;intune.microsoft.com&lt;/a&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Por ser uma solução com capacidades próprias, o Intune tem um modelo de licenciamento diferenciado. Se a sua organização faz uso das licenças do &lt;strong&gt;Enterprise Mobility&lt;/strong&gt; &lt;strong&gt;E3&lt;/strong&gt; ou &lt;strong&gt;E5&lt;/strong&gt;, ela estará apta à fazer uso da solução. Outras licenças como &lt;strong&gt;365 Business Premium&lt;/strong&gt; e &lt;strong&gt;Intune for Education&lt;/strong&gt;, também concedem o acesso à ferramenta. Caso deseje saber mais sobre as licenças, &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://learn.microsoft.com/en-us/mem/intune/fundamentals/licenses&quot; style=&quot;pointer-events: none&quot;&gt;este link&lt;/a&gt; fornece outras informações.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Dentro do portal, você poderá explorar todas as funcionalidades fornecidas pela solução. Se for a sua primeira vez acessando e utilizando a ferramenta, provavelmente não terá muitas informações cadastradas e disponíveis. Para iniciarmos a utilização de maneira massiva, devemos iniciar fazendo o onboarding dos dispositivos ao Intune, os registrando na solução e realizando as configurações necessárias no próprio dispositivo.&lt;/p&gt;
&lt;p&gt;O processo de &lt;em&gt;onboarding&lt;/em&gt; varia de dispositivo para dispositivo. Não existe um modelo padrão para se seguir, as etapas irão variar de acordo com o sistema operacional do dispositivo. Falaremos sobre esse processo de &lt;em&gt;onboarding&lt;/em&gt; em outro artigo, porém se quiser saber mais, deixo &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/onboarding-endpoint-manager?view=o365-worldwide&quot;&gt;este link&lt;/a&gt; da documentação oficial da Microsoft explicando os processos.&lt;/p&gt;
&lt;p&gt;Sem o processo de &lt;em&gt;onboarding&lt;/em&gt;, você não poderá fazer muitas coisas na sua solução, então vamos aproveitar para citar alguns recursos interessantes que você poderá utilizar em sua organização:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Device Enrollment:&lt;/strong&gt; comentamos anteriormente do processo de &lt;em&gt;onboarding&lt;/em&gt;, esse recurso fornece funcionalidades que nos permitem realizar esse processo de maneira simplificada e de diversas formas;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security Baselines:&lt;/strong&gt; algo que deveria ser adotado por todas as organizações que estão utilizando a ferramenta, os &lt;em&gt;baselines&lt;/em&gt; fornecem direcionamentos de segurança baseados nos guias construídos pela Microsoft, contendo as melhores práticas e os padrões de mercado recomendados;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EDR:&lt;/strong&gt; acrônimo para &lt;em&gt;Endpoint Detection and Response&lt;/em&gt;, é uma das principais capacidades do Microsoft Intune. Esse recurso nos permite implementar monitorações com o intuito de detectarmos atividades anômalas nos nossos dispositivos;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Device Compliance:&lt;/strong&gt; com a proposta de manter todos os dispositivos ativos no ambiente, esse recurso permite que especifiquemos uma lista de ações que serão executadas quando um dispositivo for marcado como &lt;em&gt;non-compliant&lt;/em&gt;. Podemos configurar uma lista de ações baseadas em eventos padrões e em períodos de tempo (ex: &lt;em&gt;marque o dispositivo como non-compliant após 2 dias&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses foram apenas algumas funções básicas do Intune que exploramos, veremos muito mais nos próximos capítulos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;por-quê-utilizar-uma-solução-de-mdm&quot;&gt;Por quê utilizar uma solução de MDM?&lt;/h1&gt;
&lt;p&gt;Ao longo do texto, entendemos quais são as capacidades básicas dessa solução e falamos inclusive sobre o Intune, MDM do Microsoft Entra.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Agora, por quê a sua organização deve adotar uma solução de MDM?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Além dos motivos citados anteriormente, precisamos pensar na evolução da organização. As empresas estão evoluindo cada vez mais rápido, utilizando diversas tecnologias diferentes e com colaboradores em todo o mundo. A dinamicidade de informações e insumos trafegados entre contas e dispositivos aumenta exponencialmente a cada dia, desafiando as estratégias de proteção dos ativos da organização implementadas pelos times de segurança.&lt;/p&gt;
&lt;p&gt;Não apenas isso, com a variedade de ataques com propósito de obter informações confidenciais e estratégicas das empresas, garantir a aplicação de controles como &lt;strong&gt;antivírus&lt;/strong&gt;, &lt;strong&gt;criptografia de disco&lt;/strong&gt; e &lt;strong&gt;proteção contra vazamento de dados&lt;/strong&gt;, é essencial para a boa execução das atividades de negócio da organização.&lt;/p&gt;
&lt;p&gt;Com a crescente adoção de estratégias &lt;em&gt;BYOD&lt;/em&gt; (&lt;em&gt;Bring Your Own Device&lt;/em&gt;), as organizações precisam se preparar para problemas que não seriam enfrentados caso os dispositivos utilizados fossem gerenciados e de domínio da corporação. Utilizar uma solução de MDM que permita a aplicação de controles diferenciados e personalizados para dispositivos pessoais, registrados pelos colaboradores, dá às equipes de segurança a tranquilidade na adoção desses equipamentos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hoje falamos sobre o básico, o que é e quais as capacidades de uma solução de MDM, comentamos brevemente sobre o Microsoft Intune e também mencionamos o que a sua organização deve levar em conta quando estiver estudando a adoção de uma solução de MDM.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texo e nos vemos em breve.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Microsoft Defender for Endpoint</title><link>https://pedroignacio.dev/post/microsoft-defender-for-endpoint/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microsoft-defender-for-endpoint/</guid><description>Semana passada presenciamos um outage global causado por uma falha nos sistemas da Crowdstrike, empresa líder no mercado de cibersegurança. A solução de EDR (Endpoint Detection and Response) é responsável por monitorar dispositivos para ameaças e ati...</description><pubDate>Sun, 28 Jul 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Semana passada presenciamos um &lt;em&gt;outage&lt;/em&gt; global causado por uma falha nos sistemas da &lt;em&gt;Crowdstrike&lt;/em&gt;, empresa líder no mercado de cibersegurança. A solução de &lt;em&gt;EDR&lt;/em&gt; (&lt;em&gt;Endpoint Detection and Response&lt;/em&gt;) é responsável por monitorar dispositivos para ameaças e atividades suspeitas que ali podem estar ocorrendo. Como uma alternativa, temos o &lt;strong&gt;Microsoft Defender for Endpoint&lt;/strong&gt;, solução de &lt;em&gt;EDR&lt;/em&gt; da &lt;em&gt;Microsoft&lt;/em&gt; e que iremos explorar hoje.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-uma-solução-de-edr&quot;&gt;O que é uma solução de &lt;em&gt;EDR&lt;/em&gt;?&lt;/h1&gt;
&lt;h2 id=&quot;contexto&quot;&gt;Contexto&lt;/h2&gt;
&lt;p&gt;Já parou para pensar na dimensão de certas organizações? Aquelas empresas de tecnologia globais, prestadoras de serviço que estão em todos os cantos do planeta, empresas da indústria financeira e de saúde, que contém todo tipo de dado que consideramos &lt;strong&gt;sensível&lt;/strong&gt;. Essas organizações contém largas capacidades de infraestrutura e prestação de serviços e contam com ambientes de infraestrutura gigangtescos.&lt;/p&gt;
&lt;p&gt;Além dos ambientes que sustentam os produtos, jornadas e serviços prestados pelas empresas, temos também seus funcionários, aqueles que residem e atuam em diversos países diferentes, em funções diferentes, com equipamentos diferentes, com clientes, parceiros e outros funcionários, fazendo de tudo: criando apresentações, construindo demonstrações, desenvolvendo &lt;em&gt;softwares&lt;/em&gt;, mantendo a infraestrutura, entre outras atividades.&lt;/p&gt;
&lt;p&gt;Essa extensão global dos serviços prestados pelas empresas gera um aumento exponencial na superfície de ataque exposta pelas organizações, deixando a organização cada vez mais atraente para agentes maliciosos que visam explorar alguma vulnerabilidade. Essa larga superfície exposta pode ser protegida por uma solução de &lt;em&gt;EDR&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;edr&quot;&gt;EDR&lt;/h2&gt;
&lt;p&gt;A solução de &lt;em&gt;EDR&lt;/em&gt; recebe eventos os dispositivos gerenciados pela organização, realização não apenas seu monitoramento, mas também para sensibilizando outras soluções para possíveis ameaças detectadas. Essas detecções geram alertas que podem ser enviados ao time de &lt;em&gt;SOC&lt;/em&gt; responsável pelas respostas à incidentes da organização em questão ou também podem servir como gatilhos para execução de &lt;em&gt;workflows&lt;/em&gt; automatizados, que “resolvam” a vulnerabilidade sem a necessidade de interação humana.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-endpoint/4cd176c1-6261-43a2-b84d-d5c014763b63.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com o advento da Inteligência Artificial, as soluções passaram a trazer mais funcionalidades e consequentemente gerar insights mais valiosos e eficiêntes, reduzindo a quantidade de “falsos positivos” enviados para os times de operação de cibersegurança. Acessos de usuários aos &lt;em&gt;endpoints&lt;/em&gt; são &lt;em&gt;logados&lt;/em&gt;, arquivos recém baixados/criados são analisados, os acessos às portas disponíveis são monitorados, e assim a monitoração e proteção dos recursos vai ganhando forma, gerando ganhos diretos e indiretos à sua organização.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;defender-for-endpoint&quot;&gt;Defender for Endpoint&lt;/h1&gt;
&lt;p&gt;![Nıŋʝąƈąɬ 🐈 on X: “This short and sweet video explains the Microsoft  Defender for Endpoint architecture. Thanks @HeikeRitter  &lt;a href=&quot;https://t.co/6eqWb0AAy4&quot;&gt;https://t.co/6eqWb0AAy4&lt;/a&gt; &lt;a href=&quot;https://t.co/9eFMrWPnWc&quot;&gt;https://t.co/9eFMrWPnWc&lt;/a&gt;” / X](&lt;a href=&quot;https://pbs.twimg.com/media/FX4BHvYXgAcFCSz.jpg:large&quot;&gt;https://pbs.twimg.com/media/FX4BHvYXgAcFCSz.jpg:large&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Microsoft Defender for Endpoint&lt;/strong&gt; faz parte da suite de produtos que compõem o &lt;strong&gt;Microsoft 365 Defender&lt;/strong&gt;. Como mostra o desenho acima, retirado da documentação oficial do &lt;em&gt;Defender&lt;/em&gt;, a solução pode ser integrada com diversos outros componentes disponíveis não apenas na plataforma da &lt;em&gt;Microsoft&lt;/em&gt;, mas também em soluções externas utilizadas na sua empresa.&lt;/p&gt;
&lt;h2 id=&quot;planos&quot;&gt;Planos&lt;/h2&gt;
&lt;p&gt;Antes de falarmos mais sobre as capacidades técnicas da solução, é importante deixar claro que o &lt;em&gt;Defender&lt;/em&gt; está disponível em dois planos (&lt;strong&gt;P1&lt;/strong&gt; e &lt;strong&gt;P2&lt;/strong&gt;), que se diferenciam no preço e também em algumas das capacidades. O plano P2 se destaca por sua maior cobertura e &lt;em&gt;range&lt;/em&gt; de funcionalidades. Um comparativos sobre os dois pode ser visto abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-endpoint/58979ea8-611f-4872-9d58-d87be3c9e783.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;a-solução&quot;&gt;A solução&lt;/h2&gt;
&lt;p&gt;O &lt;em&gt;Defender&lt;/em&gt; fornece uma extensa cobertura para os dispositivos gerenciados pela sua organização, bastando que o &lt;em&gt;onboarding&lt;/em&gt; desses aparelhos seja feito com as configurações desejadas pela sua empresa. Se a sua empresa utiliza alguma das seguintes plataformas, o &lt;em&gt;Defender&lt;/em&gt; pode ser configurado para proteger seus usuários e dispositivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;iOS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Uma vez integrados na solução, podemos começar a monitorar as ameaças que permeiam os ativos da organização e que trazem riscos às operações da empresa.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;Defender&lt;/em&gt; oferece 7 pilares de defesa para os &lt;em&gt;endpoints&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Core Vulnerability Management - recurso que possibilita a identificação de vulnerabilidades e problemas de configuração.&lt;/li&gt;
&lt;li&gt;Attack Surface Reduction - permite a configuração de controles que serão aplicados nos dispositivos para evitar a exposição à recursos maliciosos.&lt;/li&gt;
&lt;li&gt;Next-generation Protection - recurso de proteção avançado que garante a segurança dos &lt;em&gt;endpoints&lt;/em&gt; contra as mais modernas ameaças emergentes.&lt;/li&gt;
&lt;li&gt;Endpoint detection and response - permite identificar ameaças sofisticadas por meio de &lt;em&gt;queries&lt;/em&gt; previamente escritas e solucioná-las através de automações.&lt;/li&gt;
&lt;li&gt;Automated investigation and remediation - garante a padronização da resposta à certos alerats que são gerados com devida frequência.&lt;/li&gt;
&lt;li&gt;Secure Score for Devices - fornece uma visão aos administradores e times de segurança das configurações de segurança dos dispositivos de acordo com certos &lt;em&gt;benchmarks&lt;/em&gt; configurados.&lt;/li&gt;
&lt;li&gt;Threat Experts - recurso de &lt;em&gt;hunting&lt;/em&gt; avançado, que possibilita a integração com o &lt;em&gt;SOC&lt;/em&gt; da organização para análise e respostas mais profundas em relação ao incidente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Através de recursos avançados e modernos, o &lt;em&gt;Defender&lt;/em&gt; possibilita a cobertura de uma parte essencial da infraestrutura das empresas, garantindo desde a identificação das vulnerabilidades e ameaças, até as respostas e análilse dos incidentes, permitindo que a organização crie controles efetivos e que considerem os mais diversos pontos identificados pelo &lt;em&gt;Defender&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-a-importância&quot;&gt;Qual a importância?&lt;/h1&gt;
&lt;p&gt;Com o crescimento das empresas e a maior adoção do trabalho flexível e do &lt;em&gt;home office&lt;/em&gt;, as organizações perderam boa parte do controle que tinham sob o que seus funcionários podiam acessar e com o que estavam interagindo.&lt;/p&gt;
&lt;p&gt;A sofisticação das ameaças cibernéticas e o aumento do uso da inteligência artificial e &lt;em&gt;machine learning&lt;/em&gt; tornou a vida dos times de segurança mais complicada nos momentos de resposta às ameaças.&lt;/p&gt;
&lt;p&gt;Ter uma ferramenta que fizesse uso de recursos avançados e que pudesse ser escalada conforme crescimento da sua organização (até escalas globais) passou a ser uma das prioridades dos times de segurança e executivos de tecnologia, permitindo dessa forma proteger os ativos da empresa e garantir a liberdade e flexibilidade que seus funcionários precisam para trabalhar.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;EDR&lt;/em&gt; é um assunto extenso e nos próximos capítulos falaremos mais sobre as funcionalidades e recursos de proteção que estão disponíveis na solução.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Microsoft Defender for Storage: malware scanning</title><link>https://pedroignacio.dev/post/microsoft-defender-for-storage-malware-scanning/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microsoft-defender-for-storage-malware-scanning/</guid><description>No artigo anterior falamos de maneira geral sobre as capacidades do Defender for Storage e como o mesmo pode contribuir para a proteção dos storages da sua empresa. Hoje vamos falar com mais detalhes sobre as varreduras que o Defender faz em seus blo...</description><pubDate>Tue, 02 Jul 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No &lt;a href=&quot;https://pedroscloudsecurity.com/microsoft-defender-for-storage&quot;&gt;artigo anterior&lt;/a&gt; falamos de maneira geral sobre as capacidades do &lt;strong&gt;Defender for Storage&lt;/strong&gt; e como o mesmo pode contribuir para a proteção dos &lt;em&gt;storages&lt;/em&gt; da sua empresa. Hoje vamos falar com mais detalhes sobre as varreduras que o Defender faz em seus &lt;em&gt;blobs&lt;/em&gt; e como utilizar esse recurso para montar sua arquitetura.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-recurso&quot;&gt;Entendendo o recurso&lt;/h1&gt;
&lt;p&gt;Nas fundações das estruturas em nuvem, temos o design, construção e configuração da camada de rede (&lt;em&gt;virtual networks&lt;/em&gt;, &lt;em&gt;subnets&lt;/em&gt;, &lt;em&gt;firewalls&lt;/em&gt;, etc). A construção dessa camada estabelece o perímetro do nosso ambiente, principalmente quando adotamos uma arquitetura &lt;em&gt;hub-and-spoke&lt;/em&gt;. É necessário garantir que tudo que estiver entrando em nosso ambiente, tenha sido devidamente analisado e seja seguro.&lt;/p&gt;
&lt;p&gt;Exigir que os primeiros passos de um objeto dentro do nosso ambiente sejam a validação de integridade daquele arquivo não exime validações posteriores (principalmente quando estivermos colocando em prática uma arquitetura &lt;em&gt;zero trust&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Para garantirmos a tranquila ingestão dos arquivos disponibilizados de diferentes maneiras (através de interfaces com clientes, parceiros, etc.) é importante realizar uma varredura e possivelmente implementar um processo de segregação dos &lt;em&gt;blobs&lt;/em&gt; para garantir que apenas os documentos “limpos” e íntegros possam ser consumidos e internalizados nas diferentes construções feitas em seu ambiente.&lt;/p&gt;
&lt;p&gt;Considerando que o &lt;strong&gt;Microsoft Defender for Storage&lt;/strong&gt; está habilitado em sua &lt;strong&gt;Storage Account&lt;/strong&gt; e o recurso de &lt;em&gt;malware scanning&lt;/em&gt; está configurado, podemos começar a trabalhar para proteger nossos &lt;em&gt;storages&lt;/em&gt; e também nossas soluções como um todo.&lt;/p&gt;
&lt;h2 id=&quot;como-a-solução-funciona&quot;&gt;Como a solução funciona?&lt;/h2&gt;
&lt;p&gt;Uma vez ativo, o &lt;em&gt;defender for storage&lt;/em&gt; irá escanear todos os arquivos que forem colocados nas &lt;em&gt;storage accounts&lt;/em&gt; que estiverem sendo monitoradas. Por padrão, é criado um &lt;strong&gt;Azure Event Grid System Topic&lt;/strong&gt; que receberá todos os eventos disparados pela &lt;strong&gt;&lt;em&gt;storage account&lt;/em&gt;.&lt;/strong&gt; Esse tópico pode ser utilizado por outras soluções para decidir o que fazer com o objeto (entraremos em mais detalhes na próxima seção).&lt;/p&gt;
&lt;p&gt;Ao receber o evento &lt;em&gt;&lt;strong&gt;BlobCreated&lt;/strong&gt;&lt;/em&gt; na &lt;em&gt;storage account&lt;/em&gt;, o &lt;em&gt;defender for storage&lt;/em&gt; executará o &lt;em&gt;malware scanning&lt;/em&gt; em &lt;em&gt;near real time&lt;/em&gt;, disponibilizando rapidamente o resultado da análise.&lt;/p&gt;
&lt;p&gt;O objeto analisado, por padrão, é mantido na &lt;em&gt;storage account&lt;/em&gt;, a não ser que uma automação seja criada para removê-lo ou modificá-lo. Após a análise, o &lt;em&gt;blob&lt;/em&gt; tem uma &lt;em&gt;tag&lt;/em&gt; criada em si, representando o resultado da análise. Essa &lt;em&gt;tag&lt;/em&gt; é representada como na imagem abaixo:&lt;/p&gt;
&lt;p&gt;![Screenshot that shows an example of a blob index tag.](&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-malware-scan/blob-index-tags.png#lightbox&quot;&gt;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-malware-scan/blob-index-tags.png#lightbox&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Além disso, caso seja identificado uma espécie de &lt;em&gt;malware&lt;/em&gt; em um dos arquivos, será gerado também um alerta na seção &lt;strong&gt;Security Alerts&lt;/strong&gt; do &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt;. O alerta será semelhante ao representado abaixo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-storage-malware-scanning/c3146790-d1cd-4774-ac2a-7ba6a3956eb9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao selecionar o alerta, você pode ter mais informações sobre o evento gerado e tudo que está relacionado a ele. Na seção “MITRE ATT&amp;#x26;CK” podemos visualizar os vetores de ataque que estão relacionados com esse evento e de que forma nosso ambiente pode ser prejudicado caso seja exposto a esse &lt;em&gt;malware&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;O tópico do &lt;em&gt;event grid&lt;/em&gt; criado para envio dos eventos gerados pela &lt;em&gt;storage account&lt;/em&gt; também pode ser consumido com o objetivo de validar a verificação contra &lt;em&gt;malware&lt;/em&gt; e automatizar a manipulação dos arquivos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;respondendo-às-análises&quot;&gt;Respondendo às análises&lt;/h1&gt;
&lt;p&gt;Falamos com profundidade sobre como a solução funciona e o que é possível fazer com ela, agora vamos comentar sobre as automações que podem ser construídas com recursos nativos da nuvem.&lt;/p&gt;
&lt;h2 id=&quot;utilizando-as-análises-geradas&quot;&gt;Utilizando as análises geradas&lt;/h2&gt;
&lt;p&gt;Após configurar seu &lt;em&gt;defender&lt;/em&gt; (independente do nível), chegou a hora de fazer uso dos resultados das análises. Os eventos gerados pelo &lt;em&gt;defender&lt;/em&gt; permitem a criação de &lt;em&gt;workflows&lt;/em&gt; e arquiteturas orientadas a eventos. Vamos explorar essas opções nas seções abaixo.&lt;/p&gt;
&lt;p&gt;![Diagram showing flow of viewing and consuming malware scanning results.](&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-malware-scan/view-and-consume-malware-scan-results.png&quot;&gt;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-malware-scan/view-and-consume-malware-scan-results.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;A imagem acima, retirada da documentação oficial da Microsoft, lista os métodos de integração com os resultados do &lt;em&gt;scanning&lt;/em&gt; feito pelo &lt;em&gt;defender for storage&lt;/em&gt;. Podemos utilizar as funcionalidades e recursos representados acima como “repositórios” para os resultados gerados pelo &lt;em&gt;scan&lt;/em&gt;. Esses repositórios fornecem maneiras de integração com outros recursos da plataforma, que permitirão a automação e a construção de soluções &lt;em&gt;serverless&lt;/em&gt; e orientadas a eventos.&lt;/p&gt;
&lt;p&gt;O desenho abaixo mostra as diferentes maneiras que cada recurso pode ser integrado:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-storage-malware-scanning/d440f909-9682-4375-811c-c6c2238c9b3c.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As 4 formas de integração são representadas pela seção &lt;em&gt;Integration&lt;/em&gt;. Os &lt;strong&gt;Security Alerts&lt;/strong&gt; do &lt;strong&gt;Defender for Cloud&lt;/strong&gt; podem ser utilizados para acionamento da equipe de &lt;em&gt;SOC&lt;/em&gt; e para automações utilizando o &lt;strong&gt;Azure Logic Apps&lt;/strong&gt;. Os dois recursos farão uso dos alertas gerados pelo &lt;em&gt;defender&lt;/em&gt; para serem executados. Esses alertas são gerados automaticamente, com a criticidade devida e com as características do tipo de ameaça identificada.&lt;/p&gt;
&lt;p&gt;As &lt;strong&gt;Index Tags&lt;/strong&gt; colocadas nos &lt;em&gt;blobs&lt;/em&gt; podem ser utilizadas pela sua aplicação para garantir que o documento acessado é de fato seguro e não representa nenhum perigo para a solução. Caso a arquitetura montada faça uso de &lt;em&gt;storages&lt;/em&gt; secundários para armazenamento dos arquivos válidos, a análise das &lt;em&gt;tags&lt;/em&gt; garante uma segunda etapa de validação.&lt;/p&gt;
&lt;p&gt;A terceira opção elencada representa o uso do &lt;strong&gt;Azure Event Grid&lt;/strong&gt;, solução de &lt;em&gt;streaming&lt;/em&gt; que permite a construção de arquiteturas orientadas a eventos. Fazendo uso das &lt;strong&gt;Azure Functions&lt;/strong&gt;, podemos criar uma aplicação que recebe os estímulos vindos do &lt;em&gt;event grid&lt;/em&gt; e respondem como desejado. Nos eventos enviados ao &lt;em&gt;grid&lt;/em&gt; pelo &lt;em&gt;defender for storage&lt;/em&gt;, devemos nos atentar nas propriedades &lt;em&gt;&lt;strong&gt;eventType&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;scanResultType&lt;/strong&gt;&lt;/em&gt;, que fornecem informações sobre o resultado da análise de &lt;em&gt;malware&lt;/em&gt; feita no &lt;em&gt;blob&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Por último temos o &lt;strong&gt;Log Analytics Workspace&lt;/strong&gt;. Esse recurso não tem o propósito de automatizar qualquer tipo de resposta ou operação, a proposta é ingerir os &lt;em&gt;logs&lt;/em&gt; gerados pelo &lt;em&gt;defender&lt;/em&gt; e analizá-los, a fim de obter &lt;em&gt;insights&lt;/em&gt; sobre os arquivos carregados e sobre os resultados obtidos. Todos os resultados são colocados em uma tabela chamada &lt;em&gt;&lt;strong&gt;StorageMalwareScanningResults&lt;/strong&gt;&lt;/em&gt;, sendo a fonte que deve ser consultada para visualização das métricas e &lt;em&gt;logs&lt;/em&gt; gerados pelo &lt;em&gt;defender&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;testando&quot;&gt;Testando&lt;/h1&gt;
&lt;p&gt;Com o intuito de testar a viabilidade da solução, podemos seguir o passo a passo do seguinte repositório: &lt;a href=&quot;https://github.com/Azure/Microsoft-Defender-for-Cloud/blob/main/Labs/Modules/Module%2019%20-%20Defender%20for%20Storage.md&quot;&gt;Defender for Storage - Labs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;O repositório contém todo o passo a passo desde como configurar o &lt;em&gt;defender&lt;/em&gt; até como visualizar alertas e automatizar as respostas aos eventos.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;lab&lt;/em&gt; consiste na configuração da solução e &lt;em&gt;upload&lt;/em&gt; de alguns arquivos, incluindo um arquivo que contém conteúdo possivelmente malicioso. Podemos visualizar os alertas gerados no &lt;em&gt;defender for cloud&lt;/em&gt;, as &lt;em&gt;index tags&lt;/em&gt; criadas nos &lt;em&gt;blobs&lt;/em&gt; analisados e criar uma aplicação para consumir o tópico do &lt;em&gt;azure event grid&lt;/em&gt; criado.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Proteger os &lt;em&gt;storages&lt;/em&gt; vai muito além de garantir apenas a segurança dos arquivos, precisamos pensar também no controle de acessos e nas configurações de rede, mas ter a garantia de que os conteúdos utilizados pela soluções estão livres de ameaças, dá a liberdade que as equipes precisam para continuar evoluindo suas jornadas e seus produtos.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Microsoft Defender for Storage</title><link>https://pedroignacio.dev/post/microsoft-defender-for-storage/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microsoft-defender-for-storage/</guid><description>Você já se deparou com a necessidade de receber arquivos de fontes externas sem a certeza da confiabilidade da origem? Já olhou para suas subscriptions e se questionou se havia algo a mais que pudesse ser feito para proteger melhor seus storages? Hoj...</description><pubDate>Tue, 18 Jun 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Você já se deparou com a necessidade de receber arquivos de fontes externas sem a certeza da confiabilidade da origem? Já olhou para suas &lt;em&gt;subscriptions&lt;/em&gt; e se questionou se havia algo a mais que pudesse ser feito para proteger melhor seus &lt;em&gt;storages&lt;/em&gt;? Hoje falaremos sobre o Defender for Storage, solução parte do Defender for Cloud que permite reforçar a segurança das suas &lt;em&gt;storage accounts&lt;/em&gt; e garantir a integridade da sua plataforma.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-é-o-defender-for-storage&quot;&gt;O que é o Defender for Storage?&lt;/h1&gt;
&lt;p&gt;![Diagram showing the benefits of using Defender for Storage to protect your data.](&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-introduction/defender-for-storage-benefits.png&quot;&gt;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/defender-for-storage-introduction/defender-for-storage-benefits.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;Como comentamos no último artigo, o &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt; é a solução de CNAPP (&lt;em&gt;Cloud Native Application Protection Platform&lt;/em&gt;) da Microsoft e entre seus muitos módulos, temos o &lt;em&gt;Defender for Storage&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Para relembrar: a proposta do &lt;strong&gt;&lt;em&gt;CNAPP&lt;/em&gt;&lt;/strong&gt; é ter de maneira centralizada todas as soluções de segurança necessárias para proteger suas aplicações &lt;em&gt;cloud native&lt;/em&gt;. A cobertura de uma solução de &lt;em&gt;CNAPP&lt;/em&gt; vai desde o &lt;em&gt;commit&lt;/em&gt; do código através das &lt;em&gt;pipelines&lt;/em&gt; e chegando aos repositórios, até a execução desse código nas plataformas &lt;em&gt;cloud&lt;/em&gt; (em &lt;em&gt;virtual machines&lt;/em&gt;, &lt;em&gt;contêineres + kubernetes&lt;/em&gt;, etc). Todo o ciclo de vida da aplicação e da infraestrutura em nuvem, é visível através das &lt;em&gt;dashboards&lt;/em&gt; do &lt;em&gt;CNAPP&lt;/em&gt;, oferecendo aos times de segurança maior conforto e confiança para proteger as iniciativas de negócio.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;O &lt;strong&gt;Microsoft Defender for Storage&lt;/strong&gt; nos permite incrementar a postura de segurança das nossas &lt;em&gt;storage accounts&lt;/em&gt;, bem como proteger nosso ambiente contra arquivos maliciosos que podem ter sido inseridos e também contra vazamentos de dados pessoais.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;O &lt;em&gt;Defender for Storage&lt;/em&gt; está disponível para as ofertas: &lt;em&gt;Azure Files&lt;/em&gt;, &lt;em&gt;Azure Data Lake Storage Gen2&lt;/em&gt; e &lt;em&gt;Azure Blob Storage&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Utilizar uma solução como o &lt;em&gt;Defender&lt;/em&gt; para aumentar a profundidade de proteção nos recursos do seu ambiente trará inúmeros benefícios para sua empresa. Os times de segurança da sua organização poderão aproveitar recomendações personalizadas e análises de segurança avançadas, garantindo um nível de proteção diferenciado ao seu &lt;em&gt;storage&lt;/em&gt; e mantendo seu ambiente livre das ameaças mais avançadas.&lt;/p&gt;
&lt;p&gt;Chegou a hora de explorar em alto nível os recursos expostos pelo &lt;em&gt;Defender for Storage&lt;/em&gt;, passando nas próximas seções para os recursos mais relevantes na solução.&lt;/p&gt;
&lt;h2 id=&quot;capacidades&quot;&gt;Capacidades&lt;/h2&gt;
&lt;p&gt;Como falamos na seção anterior, o &lt;em&gt;Defender&lt;/em&gt; é utilizado para garantir que nossos &lt;em&gt;storages&lt;/em&gt; estejam sempre protegidos e alinhados com as melhores práticas e configurações, porém para garantirmos a extração de todo o potencial da solução, é importante entender o que ela pode fazer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;&lt;/em&gt; - também presente nas outras soluções do &lt;em&gt;Defender for Cloud&lt;/em&gt;, as recomendações visam propor melhorias para seus recursos, com o intuito de deixá-los mais seguros. Essas recomendações são classificadas de acordo com a criticidade e podem ter a resposta automatizada, garantindo maior facilidade na adesão das mesmas.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Threat Detection&lt;/strong&gt;&lt;/em&gt; - “carro chefe” do &lt;em&gt;Defender&lt;/em&gt;, as capacidades de &lt;em&gt;threat detection&lt;/em&gt; analisam o comportamento dos usuários, consumo dos recursos e integridade dos objetos armazenados nos contêineres e &lt;em&gt;file shares&lt;/em&gt;. Atividades suspeitas e atores maliciosos são detectados pelo &lt;em&gt;Defender&lt;/em&gt; e podem ser rapidamente anulados pelas estratégias de resposta configuradas pela sua empresa.
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Sensitive Data Threat Detection&lt;/strong&gt;&lt;/em&gt; - faz uso do motor de identificação de informações sensíveis utilizado pelo &lt;strong&gt;Microsoft Purview&lt;/strong&gt; (&lt;em&gt;Sensitive Data Discovery&lt;/em&gt;) para reconhecer possíveis exposições de dados pessoais e confidenciais dentro dos &lt;em&gt;storages&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Malware Scanning&lt;/strong&gt;&lt;/em&gt; - para garantirmos a integridade dos documentos publicados em nossos contêineres &lt;em&gt;blob&lt;/em&gt;, podemos realizar varreduras nesses arquivos para garantir a inexistência de &lt;em&gt;malwares&lt;/em&gt; e outros agentes que podem vir a se infiltrar em nosso ambiente com o intuito de explorá-lo e causar prejuízos a organização.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;habilitação&quot;&gt;Habilitação&lt;/h2&gt;
&lt;p&gt;Habilitar o &lt;em&gt;Defender for Storage&lt;/em&gt; não é nada complicado, você pode fazer isso diretamente do painel da sua &lt;em&gt;storage account&lt;/em&gt; ou do portal centralizado do &lt;em&gt;Defender for Cloud&lt;/em&gt;. O &lt;em&gt;Defender for Storage&lt;/em&gt; pode também ser ativo no nível das &lt;em&gt;subscriptions&lt;/em&gt;, disponibilizando todas as capacidades de segurança para todas as &lt;em&gt;storage accounts&lt;/em&gt; ali presentes.&lt;/p&gt;
&lt;p&gt;A funcionalidade de &lt;em&gt;Malware Scanning&lt;/em&gt; não é ativa por padrão, porém pode ser habilitada com apenas um “tick” em uma das caixinhas do formulário disponibilizado na página.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Não é uma boa prática de arquitetura deixar alguns &lt;em&gt;storages habilitados&lt;/em&gt; e outros não. É importante que seus repositórios estejam sempre protegidos com as recomendações baseadas no &lt;strong&gt;Microsoft Cloud Security Benchmark&lt;/strong&gt;. Para garantir proteção em todos os repositórios da sua organização, é recomendado o uso de &lt;em&gt;policies&lt;/em&gt; para garantir a correta habilitação da funcionalidade.&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;pricing&quot;&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Os custos de proteger melhor seu ambiente não deveriam ser considerados um problema, mas é importante se manter de olho nos valores.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;Defender for Storage&lt;/em&gt; é cobrado mensalmente pela quantidade de &lt;em&gt;storage accounts&lt;/em&gt; ativas em sua &lt;em&gt;subscription&lt;/em&gt;. O valor é de &lt;strong&gt;10 dólares/mês&lt;/strong&gt; com um possível acréscimo de acordo com a quantidade de requisições feitas para o &lt;em&gt;storage&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;A funcionalidade de &lt;em&gt;Malware Scanning&lt;/em&gt; também representa um acréscimo na conta mensal, porém dessa vez sendo cobrada por GB de dados processados. O valor é de &lt;strong&gt;0.15 dólares/GB&lt;/strong&gt;. Para controlar o gasto com essa funcionalidade, podemos configurar um limite de transações (em GB) por mês para o &lt;em&gt;storage&lt;/em&gt; em questão, garantindo assim que sua conta não seja astronômica!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;malware-scanning&quot;&gt;Malware Scanning&lt;/h1&gt;
&lt;p&gt;Como comentado brevemente, o &lt;em&gt;Defender for Storage&lt;/em&gt; tem a capacidade de avaliar a integridade dos arquivos armazenados em seus repositórios. Essa funcionalidade habilita a criação de soluções escaláveis e que utilizam o &lt;em&gt;Azure Storage Account&lt;/em&gt; como seu &lt;em&gt;core&lt;/em&gt; e de maneira abundante.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;malware scanning&lt;/em&gt; possibilita que suas soluções confiem nos arquivos armazenados nos &lt;em&gt;storages&lt;/em&gt;, pois garante que cada arquivo que passar pelo repositório terá sido escaneado e está seguro para sua ingestão.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-storage/44212940-76dd-454b-afc2-dedfa1b17be5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A arquitetura acima demonstra em alto nível o funcionamento da solução e suas possíveis integrações para automação.&lt;/p&gt;
&lt;p&gt;Podemos utilizar um tópico do &lt;em&gt;Azure Event Grid&lt;/em&gt; para realizar a análise dos eventos gerados pelo &lt;em&gt;Defender for Storage&lt;/em&gt; e agir conforme desejado. Outra forma é o uso direto dos alertas gerados pelo &lt;em&gt;Defender&lt;/em&gt;, que podem ser integrados com o &lt;em&gt;Azure Logic Apps&lt;/em&gt; para recebimento dos alertas e automação da resposta.&lt;/p&gt;
&lt;p&gt;As duas formas de automação abrem o leque para as possibilidades de criação de soluções responsivas e escaláveis, deixando com você a responsabilidade de escolher a opção que melhor se encaixa nos seus requisitos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;sensitive-data-threat-detection&quot;&gt;Sensitive Data Threat Detection&lt;/h1&gt;
&lt;p&gt;Desviando um pouco do assunto “&lt;em&gt;malware detection&lt;/em&gt;”, vamos falar sobre a capacidade de &lt;em&gt;DLP&lt;/em&gt; (&lt;em&gt;Data Loss Prevention&lt;/em&gt;) e proteção contra vazamento de dados sensíveis do &lt;em&gt;Defender for Storage&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-defender-for-storage/56360bd5-32be-4e49-ad27-1147b9651a97.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Utilizando o motor de identificação e classificação de dados do &lt;em&gt;&lt;strong&gt;Microsoft Purview&lt;/strong&gt;&lt;/em&gt; (solução de proteção de dados e informações), o &lt;em&gt;Defender for Storage&lt;/em&gt; disponibiliza uma camada de segurança contra o vazamento de informações sensíveis vindas da sua organização.&lt;/p&gt;
&lt;p&gt;Podemos monitorar os repositórios para identificar padrões de dados publicamente conhecidos como sensíveis (&lt;em&gt;PII&lt;/em&gt; - &lt;em&gt;Personal Identifiable Information&lt;/em&gt;, &lt;em&gt;PCI&lt;/em&gt; - &lt;em&gt;Payment Card Industry&lt;/em&gt;) e evitar que essas informações caiam nas mãos erradas, protegendo sua organização de possíveis multas e processos legais.&lt;/p&gt;
&lt;p&gt;Podemos também monitorar o vazamento de informações confidenciais da sua organização, fazendo uso das poderosas &lt;em&gt;Sensitivity Labels&lt;/em&gt;. Essas &lt;em&gt;labels&lt;/em&gt; são aquelas classificações disponíveis nas soluções do &lt;em&gt;Office 365&lt;/em&gt; que permitem classificar o nível de confidencialidade de um documento (público, interno e confidencial). Fazer uso dessas &lt;em&gt;labels&lt;/em&gt; em toda a organização pode evitar muitos problemas para sua empresa.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;Custom Sensitivity Information Types&lt;/em&gt; nos permitem identificar informações únicas ao seu negócio através de regras customizadas. Esse recurso permite uma maior cobertura das informações valiosas para o seu negócio, evitando também perdas internas da organização.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha gostado do artigo e que eu tenha conseguido te auxiliar a reforçar a segurança da sua organização. Estou à disposição para conversarmos através das minhas redes sociais, que se encontram em meu perfil aqui no blog.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Microsoft Entra? Entra ID? Verified ID?</title><link>https://pedroignacio.dev/post/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/</guid><description>No dia 11/07/2023 a Microsoft anunciou uma série de mudanças em seu ecossistema de identidade. Que mudanças foram essas? Vamos conferir algumas das mais impactantes nesse artigo.
No evento online, os especialistas da Microsoft divulgaram de maneira o...</description><pubDate>Mon, 17 Jul 2023 03:00:00 GMT</pubDate><content:encoded>&lt;hr&gt;
&lt;p&gt;No dia 11/07/2023 a Microsoft anunciou uma série de mudanças em seu ecossistema de identidade. Que mudanças foram essas? Vamos conferir algumas das mais impactantes nesse artigo.&lt;/p&gt;
&lt;p&gt;No evento online, os especialistas da Microsoft divulgaram de maneira oficial uma série de mudanças aplicadas em seus produtos. Essas mudanças já vinham sendo divulgadas, porém dessa vez foram feitas através de um anúncio oficial.&lt;/p&gt;
&lt;p&gt;Além das novas soluções disponíveis em &lt;em&gt;public preview&lt;/em&gt;, como o &lt;strong&gt;Microsoft Entra Security Service Edge&lt;/strong&gt;, os produtos da família &lt;strong&gt;Azure AD&lt;/strong&gt; se tornaram oficialmente &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A imagem abaixo mostra o novo conjunto de soluções que fazem parte do “guarda-chuva” do &lt;strong&gt;Microsoft Entra&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/65c06d64-c2fa-4e2d-8108-f51cbd8fdf8b.jpeg&quot; alt=&quot;Portifólio de soluções do Microsoft Entra&quot;&gt;&lt;/p&gt;
&lt;p&gt;Vamos fazer a leitura dessa imagem em sentido horário, começando ao topo e passando por todos os produtos.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;entra-id&quot;&gt;Entra ID&lt;/h2&gt;
&lt;p&gt;O novo nome do nosso grande amigo &lt;strong&gt;Azure AD&lt;/strong&gt;. O Entra ID não traz consigo novas funcionalidades para o produto, as mudanças aplicadas são restritas aos nomes, não só do próprio Azure AD mas como também das licenças, que agora passam a ser chamadas de:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/afa2a934-673e-4c16-a830-859df81536e3.png&quot; alt=&quot;Microsoft Entra expands into Security Service Edge and Azure AD becomes Microsoft Entra ID | Microsoft Security Blog&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;id-governance&quot;&gt;ID Governance&lt;/h2&gt;
&lt;p&gt;O propósito desse “produto” é centralizar as capacidades de governança de identidades.&lt;/p&gt;
&lt;p&gt;No &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt; é temos o seguinte painel lateral:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/3cd54f5b-05b8-41c9-bd45-cb894bf52c39.png&quot; alt=&quot;Blade lateral disponível no portal do entra&quot;&gt;&lt;/p&gt;
&lt;p&gt;As capacidades disponíveis nele não são novas, todas elas já eram previamente existentes à reformulação da família de produtos do Entra. Era possível utilizar esses recursos através do Portal do Azure AD, dentro do Portal Azure.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;verified-id&quot;&gt;&lt;strong&gt;Verified ID&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Recurso novo dentro do ecossistema, o propósito do &lt;em&gt;Verified ID&lt;/em&gt; é fornecer uma nova forma de verificar a identidade do usuário.&lt;/p&gt;
&lt;p&gt;As identidades descentralizadas vem sido bastante comentadas no mercado, e o &lt;em&gt;Verified ID&lt;/em&gt; é o responsável por representar o assunto na suíte do Entra.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://learn.microsoft.com/pt-br/azure/active-directory/verifiable-credentials/decentralized-identifier-overview&quot;&gt;Este link&lt;/a&gt; é a documentação oficial da Microsoft sobre o &lt;em&gt;Verified ID&lt;/em&gt; e sobre as identidades descnetralizadas. É um tema complexo e que requer certo empenho para seu entendimento, por isso, gostaria de compartilhar também &lt;a href=&quot;https://www.youtube.com/watch?v=kk-zTmqtcdI&quot;&gt;esse link&lt;/a&gt; do Andy Malone, que fornece um &lt;em&gt;hands-on&lt;/em&gt; no recurso e permite que você entenda como ele funciona e seus casos de uso. O vídeo é em inglês, porém conta com as legendas automáticas do &lt;em&gt;youtube&lt;/em&gt;, para garantir que o idioma não será uma barreira para seu aprendizado!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;permission-management&quot;&gt;&lt;strong&gt;Permission Management&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Com o passar do tempo, é comum que usuários acabem “colecionando” diversas permissões diferentes, em dever da participação em diversos projetos e também da mudança de funções.&lt;/p&gt;
&lt;p&gt;Esse excesso de permissões é um problema para a empresa, pois o risco que essa identidade oferece caso seja comprometida, é altíssimo.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;Permission Management&lt;/strong&gt; (Gerenciamento de Permissões) oferece visibilidade das permissões fornecidas aos usuários em múltiplas plataformas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/30ea88e2-979d-4610-992d-c62dd1d4c036.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com esse recurso, podemos garantir a aplicação do princípio do &lt;strong&gt;privilégio mínimo&lt;/strong&gt;, pilar do &lt;em&gt;zero trust&lt;/em&gt;. Garantimos que os usuários tenham apenas as permissões necessárias para realizar suas atividades.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/e504eaed-128c-4e94-a56a-92c179197742.png&quot; alt=&quot;Microsoft Entra expands into Security Service Edge and Azure AD becomes Microsoft Entra ID | Microsoft Security Blog&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;internet-access&quot;&gt;&lt;strong&gt;Internet Access&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Uma das novidades apresentadas foi a introdução da solução de &lt;em&gt;Secure Web Gateway&lt;/em&gt;, o Microsoft Entra Internet Access.&lt;/p&gt;
&lt;p&gt;O propósito de um SWG é fornecer capacidades de segurança para que uma empresa proteja seus funcionários de riscos na web e também de proteger a empresa de possíveis vazamentos de dados.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;Entra Internet Access&lt;/em&gt; fica no meio das comunicações do usuário com ferramentas &lt;em&gt;SaaS&lt;/em&gt; e com os produtos do Microsoft 365.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cloudflare.com/pt-br/learning/access-management/what-is-a-secure-web-gateway/&quot;&gt;Este artigo&lt;/a&gt; da Cloudflare explica com mais detalhes o funcionamento da solução.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;private-access&quot;&gt;&lt;strong&gt;Private Access&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Tratado como um “substituto” das VPN tradicionais, o &lt;em&gt;Entra Private Access&lt;/em&gt; habilita que as empresas fortaleçam a segurança do no acesso de aplicações internas por parte dos funcionários.&lt;/p&gt;
&lt;p&gt;Somado à funcionalidades fornecidas pelas políticas de acesso condicional, o &lt;em&gt;Entra Private Access&lt;/em&gt; habilita os times de segurança à protegerem de melhor forma seus &lt;em&gt;apps&lt;/em&gt; e seu ambiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;id-protection&quot;&gt;&lt;strong&gt;ID Protection&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Conhecido como &lt;em&gt;identity protection&lt;/em&gt; nos tempos de Azure AD, o ID Protection também ganhou uma seção própria dentro do Portal do Entra. O ID Protection utiliza machine learning para oferecer os recursos que permitem às empresas incrementar a segurança das identidades do Entra ID.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/d81e3597-b2ca-41ce-8e95-879ceb4374d8.png&quot; alt=&quot;Microsoft Entra expands into Security Service Edge and Azure AD becomes Microsoft Entra ID | Microsoft Security Blog&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com uma série de &lt;em&gt;dashboards&lt;/em&gt; personalizadas, os administradores podem visualizar informações sobre a origem dos ataques às identidades (tentativas de login forçadas, &lt;em&gt;password spray&lt;/em&gt;, etc), bem como a quantidade de ataques bloqueados, identidades protegidas e mais uma série de informações sobre como o recurso incrementa a proteção do seu ambiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;workload-id&quot;&gt;&lt;strong&gt;Workload ID&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Também com objetivo de centralizar informações em um painel unificado, o &lt;em&gt;Workload ID&lt;/em&gt; fornece uma visão geral das identidades não-humanas presentes no Microsoft Entra ID. Essas identidades podem ser aplicações federadas (utilizando o &lt;em&gt;Enterprise Applications&lt;/em&gt; e o &lt;em&gt;Application Registration&lt;/em&gt; no Portal do Entra ID) mas também podem ser &lt;em&gt;Service Principals&lt;/em&gt;, criadas para serem utilizadas por &lt;em&gt;workloads&lt;/em&gt; que necessitam de permissão para consumir recursos do Azure.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-entra-id-verified-id-d5fa40bf8fdc/be7a704e-27fb-40df-9a79-5e939daf7876.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dashboard no Portal do Entra que fornece a visão centralizada das identidades não-humanas no tenant&lt;/p&gt;
&lt;p&gt;O tema de &lt;em&gt;identidades para workloads&lt;/em&gt; vale um outro artigo, mas a divisão fornecida pelo gráfico segrega as &lt;strong&gt;identidades gerenciadas&lt;/strong&gt; (que são atreladas à recursos de infraestrutura), as &lt;strong&gt;aplicações Microsoft&lt;/strong&gt; (que por padrão ficam “invisíveis” no Portal do Entra ID, bastando retirar os filtros para visualizá-las) e as &lt;strong&gt;aplicações federadas&lt;/strong&gt; e &lt;em&gt;&lt;strong&gt;service principals&lt;/strong&gt;&lt;/em&gt; (que são respectivamente representações de ferramentas que utilizam o Entra ID como provedor de identidade e identidades mais flexíveis para &lt;em&gt;workloads&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Essas foram as novidades anunciadas. Os novos recursos vieram para fortalecer muito a estratégia de segurança de acesso das empresas, trazendo mais confiança para os times de segurança e operação e também mais conforto para os usuários, que terão a tranquilidade de saber que suas credenciais estão seguras.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que tenha gostado das novidades e recomendo que você as teste.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Microsoft Entra ID: Cross-tenant Access</title><link>https://pedroignacio.dev/post/microsoft-entra-id-cross-tenant-access/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microsoft-entra-id-cross-tenant-access/</guid><description>Sua empresa faz parte de um grupo de outras organizações? Seus times de segurança tem problemas para gerenciar o acesso de usuários externos (terceirizados, colaboradores, parceiros)? Controlar quem pode acessar o seu tenant é essencial e tem ficado ...</description><pubDate>Wed, 22 May 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sua empresa faz parte de um grupo de outras organizações? Seus times de segurança tem problemas para gerenciar o acesso de usuários externos (terceirizados, colaboradores, parceiros)? Controlar quem pode acessar o seu &lt;em&gt;tenant&lt;/em&gt; é essencial e tem ficado cada vez mais simples. Hoje vamos falar sobre o &lt;em&gt;cross-tenant access&lt;/em&gt;, recurso do Entra que permite configurar as diferentes formas de conexão entre &lt;em&gt;tenants&lt;/em&gt; e os controles que devem ser aplicados.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;por-quê-conectar-múltiplos-tenants&quot;&gt;Por quê conectar múltiplos tenants?&lt;/h1&gt;
&lt;p&gt;A dinâmica das organizações hoje em dia é muito diferente do que era há alguns anos atrás. A velocidade de entrega esperada pelos gestores de negócio é frequentemente impulsionada pelo uso de empresas parceiras, as chamadas “consultorias”. Essas consultorias trazem expertise de mercado e profissionais capacitados para as tarefas planejadas pelos gestores.&lt;/p&gt;
&lt;p&gt;Geralmente esses profissionais não vem em unidades, mas sim em grupos. São contratados desenvolvedores, engenheiros, arquitetos, &lt;em&gt;scrum masters&lt;/em&gt; e &lt;em&gt;tech leads&lt;/em&gt;, todos em somente uma “leva”.&lt;/p&gt;
&lt;p&gt;Dentro dos times de IAM da sua organização, esses casos são mais do que comuns e exigem a boa aplicação dos controles de acesso. Esses controles são implementados pelas integrações entre as ferramentas de IAM e IGA e podem deixar a transição dos consultores para a sua organização muito mais simples!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-o-cross-tenant-access&quot;&gt;Entendendo o Cross-tenant Access&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/c2a784af-4e9c-4d92-a363-c96b8777c801.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como comentamos anteriormente, as capacidades de acesso &lt;em&gt;cross-tenant&lt;/em&gt; existem para facilitar a integração entre diferentes &lt;em&gt;tenants&lt;/em&gt;, sejam eles de empresas parceiras ou da mesma organização. Independente do cenário apresentado pela sua empresa, a conexão entre &lt;em&gt;tenants&lt;/em&gt; é utilizada para disponibilizar acesso a recursos de um &lt;em&gt;tenant&lt;/em&gt; a outro.&lt;/p&gt;
&lt;p&gt;Um ponto que é importante endereçarmos em relação a conexão entre os &lt;em&gt;tenants&lt;/em&gt; é a &lt;strong&gt;direção&lt;/strong&gt;. A partir do seu &lt;em&gt;tenant&lt;/em&gt;, é possível controlar o que os usuários que vem de fora (convidados singulares ou de outros &lt;em&gt;tenants&lt;/em&gt;) podem acessar e visualizar no seu diretório, MASSSSS também podemos controlar o que os usuários do &lt;em&gt;tenant&lt;/em&gt; da nossa empresa podem fazer em aplicações de empresas externas, conectadas ao nosso diretório. É possível controlar por exemplo se os usuários podem ou não ser convidados por &lt;em&gt;tenants&lt;/em&gt; externos.&lt;/p&gt;
&lt;p&gt;Hoje o Entra disponibiliza duas maneiras diferentes de colaboração entre organizações (&lt;em&gt;tenants&lt;/em&gt;), vamos desvendar nas próximas seções as características de cada um dos métodos disponíveis.&lt;/p&gt;
&lt;h2 id=&quot;b2b-collaboration&quot;&gt;B2B Collaboration&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/ca700576-6e26-46ae-8f78-21f58e71cdc3.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Este é o modelo que mais estamos acostumados, um usuário (representado por uma conta), recebe um convite para se juntar à sua organização (através do e-mail de sua escolha) ou realiza um cadastro caso esteja disponível. Uma vez inscritos (independente do método), os usuários terão suas contas criadas, utilizando como base os dados fornecidos no momento de cadastro.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Nesse modelo, as contas dos usuários convidados são representadas como contas &lt;em&gt;guest&lt;/em&gt; dentro do &lt;em&gt;tenant&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ter a conta do usuário representada no seu diretório permite que sejam aplicados os controles requeridos pelo time de segurança da sua organização em cima das aplicações expostas para os usuários. Essas contas estarão sujeitas às políticas de acesso condicional configuradas no seu ambiente, bem como aos processos de IAM da sua empresa.&lt;/p&gt;
&lt;h2 id=&quot;b2b-direct-connect&quot;&gt;B2B Direct Connect&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/c128b776-ceea-44a6-88f3-1fc12b870b20.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com o &lt;em&gt;direct connect&lt;/em&gt;, é configurada uma relação de confiança entre o &lt;em&gt;tenant&lt;/em&gt; da empresa parceira e da sua empresa. O &lt;em&gt;tenant&lt;/em&gt; que esta recebendo a solicitação de conexão não recebe os usuários em sua base, fazendo com que as suas contas não sejam visíveis dentro do diretório.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Diferente do &lt;em&gt;B2B Collaboration&lt;/em&gt;, os usuários NÃO são representados como contas &lt;em&gt;guest&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Outro ponto importante de ressaltar é a necessidade de configuração dos dois lados. Como nesse modelo os objetos das organizações serão “compartilhados” entre elas, é importante que os administradores dos dois lados tenham configurado a relação de confiança.&lt;/p&gt;
&lt;h2 id=&quot;cross-tenant-synchronization&quot;&gt;Cross-tenant Synchronization&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/74b78f73-2d7b-42d5-8aac-6fa2304fe520.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Diferente dos dois modelos apresentados anteirormente, essa não é uma forma de integração. Com a sincronização entre &lt;em&gt;tenants&lt;/em&gt;, podemos automatizar a criação de contas entre os diretórios de diferentes organizações.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Importante frisar que para configurar a sincronização entre &lt;em&gt;tenants&lt;/em&gt;, os diretórios devem ter licenças P1 ou P2 atribuídas para seus usuários.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Esse recurso é especialmente interessante para cenários onde a colaboração entre organizações é constante e frequente, muitas vezes sendo empresas do mesmo grupo que por algum motivo, tem diretórios diferentes. Uma vez configurado, a sincronização entre &lt;em&gt;tenants&lt;/em&gt; manterá as identidades atualizadas com as últimas mudanças feitas no &lt;em&gt;tenant&lt;/em&gt; de origem.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;configurando-os-acessos&quot;&gt;Configurando os acessos&lt;/h1&gt;
&lt;p&gt;Dentro do &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt;, podemos navegar até &lt;em&gt;External Identities&lt;/em&gt; e acessar &lt;em&gt;Cross-tenant Access Settings&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;O portal em que caímos nos apresenta uma visualização das configurações de acesso padrão, das organizações conectadas ao nosso &lt;em&gt;tenant&lt;/em&gt; e as opções de configuração para as instâncias “especiais” do Azure (fazendo parte desse grupo as regiões governamentais e as operadas pela 21vianet).&lt;/p&gt;
&lt;h2 id=&quot;organizational-settings&quot;&gt;Organizational settings&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/10fa8ee8-d58e-4d20-8b04-260e026ab6de.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Pensando no cenário apresentado na seção anterior sobre múltiplos &lt;em&gt;tenants&lt;/em&gt; em uma mesma organização, neste painel podemos configurar os acessos dos diretórios que devem se conectar ao da empresa principal.&lt;/p&gt;
&lt;p&gt;A informação obrigatória para configuração desse &lt;em&gt;tenant&lt;/em&gt; é o &lt;em&gt;Tenant ID&lt;/em&gt;, informação útnica de cada diretório e que permite sua identificação através da internet. Após ser configurado, a organização sofrerá o impacto das configurações existentes no &lt;em&gt;Default Settings&lt;/em&gt;, podendo ser alteradas para configurações específicas da organização (imagine que você tenha &lt;em&gt;tenants&lt;/em&gt; em que todo o acesso deve ser concedido mas tenha alguns onde deve-se manter restrito apenas à alguns usuários e aplicações, nesse modelo podemos determinar essas restrições e manter nosso ambiente seguro).&lt;/p&gt;
&lt;h2 id=&quot;default-settings&quot;&gt;Default Settings&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microsoft-entra-id-cross-tenant-access/1b9dad8d-a27c-497f-a377-11d4d4f73f8e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Com o propósito de proteger os ambientes de forma padrão, os &lt;em&gt;Default Settings&lt;/em&gt; apresentam restrições que “fecham” seu &lt;em&gt;tenant&lt;/em&gt; para conexões externas e colaborações com outras empresas.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Alterar essas configurações pode gerar alta exposição ao seu &lt;em&gt;tenant&lt;/em&gt;, visto que elas serão aplicadas a todas as identidades e aplicações convidadas e sincronizadas, portanto tome cuidado ao alterar as configurações &lt;em&gt;default&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Aqui podemos configurar os dois caminhos de acesso/sincronização, &lt;em&gt;inbound&lt;/em&gt; (para os acessos que estão sendo feitos em nosso &lt;em&gt;tenant&lt;/em&gt;) e &lt;em&gt;outbound&lt;/em&gt; (para tudo que estiver sendo feito pelos usuários do &lt;em&gt;tenant&lt;/em&gt; principal em &lt;em&gt;tenants&lt;/em&gt; externos, que tenham colaboração ativa e configurada).&lt;/p&gt;
&lt;p&gt;As configurações são combinações de &lt;strong&gt;objetos&lt;/strong&gt; (usuários, grupos e aplicações) e &lt;strong&gt;ações&lt;/strong&gt; (permitir ou negar).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Para as grandes organizações de hoje em dia, manter seus colaboradores com os acessos devidos representa produtividade, segurança e conforto. É importante garantir que o ambiente esteja protegido de atores mal intencionados e de possíveis vulnerabilidades causadas por erros de configuração.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que eu tenha conseguido te mostrar a importância das configurações entre &lt;em&gt;tenants&lt;/em&gt; e o valor que elas podem trazer para a sua empresa.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Network Policies: microsegmentação em clusters Kubernetes</title><link>https://pedroignacio.dev/post/microssegmentacao-com-cilium/</link><guid isPermaLink="true">https://pedroignacio.dev/post/microssegmentacao-com-cilium/</guid><description>Conforme nosso ambiente evoluí, mais e mais aplicações passam a ser executadas em nossos clusters, o que em larga escala, pode se tornar complicado para gerir. Visando fornecer uma maneira mais eficiente de controlar o acesso aos recursos do seu clus...</description><pubDate>Tue, 29 Oct 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Conforme nosso ambiente evoluí, mais e mais aplicações passam a ser executadas em nossos &lt;em&gt;clusters&lt;/em&gt;, o que em larga escala, pode se tornar complicado para gerir. Visando fornecer uma maneira mais eficiente de controlar o acesso aos recursos do seu cluster, vamos falar sobre as &lt;em&gt;Network Policies&lt;/em&gt;, que com um toque de &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt;, nos permitem garantir a boa proteção dos nosso ambientes, independente da complexidade.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;microssegmentação&quot;&gt;Microssegmentação&lt;/h1&gt;
&lt;p&gt;É uma nova forma de segregação de redes amplamente utilizado em ambientes de nuvem pública. Em uma era onde segurança entra acima de todo o restante e o principal “norte” para os times de engenharia são os pilares do &lt;em&gt;zero trust&lt;/em&gt;, proteger a &lt;strong&gt;base&lt;/strong&gt; da sua infraestrutura é essencial.&lt;/p&gt;
&lt;p&gt;Independente do tamanho do ambiente, precisamos garantir a aplicação dos princípios do &lt;em&gt;zero trust&lt;/em&gt;, implementando de forma eficiente os controles necessários para evitar que atores indesejados consumam nossos recursos, que as aplicações da organização fiquem expostas à possíveis vulnerabilidades e ainda pior, exponham os demais recursos do ambiente a esses atores.&lt;/p&gt;
&lt;p&gt;A microssegmentação olha ao nível “mais baixo” dos recursos, atuando como uma malha entre todos os serviços da sua nuvem e permitindo o controle de acesso entre os recursos de maneira flexível e detalhada.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microssegmentacao-com-cilium/8b386b84-e5fc-4b7c-8de3-bc325b49a646.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O desenho acima exemplifica em alto nível como a microssegmentação atua nos ambientes. Com ela, é possível definir um perímetro ao redor de cada um dos recursos, controlando o acesso por origem, &lt;em&gt;IP&lt;/em&gt;, protocolo e outras informações.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Configurar a microssegmentação nos ambientes é uma tarefa extremamente trabalhosa e exaustiva. Hoje, empresas líderes de mercado como a Akamai oferecem soluções de microssegmentação indepentendente da nuvem que você utilize. Essas soluções tornam mais simples a implementação e a gestão da configuração dos ambientes. Veja: &lt;a target=&quot;_self&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://www.akamai.com/pt/products/akamai-guardicore-segmentation&quot; style=&quot;pointer-events: none&quot;&gt;Akamai Guardicore&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;network-policies&quot;&gt;Network Policies&lt;/h1&gt;
&lt;p&gt;Reduzindo nosso escopo de atuação apenas aos &lt;em&gt;clusters&lt;/em&gt; &lt;em&gt;Kubernetes&lt;/em&gt;, precisamos falar das &lt;em&gt;Network Policies&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;entendendo-o-recurso&quot;&gt;Entendendo o recurso&lt;/h2&gt;
&lt;p&gt;As &lt;em&gt;Network Policies&lt;/em&gt; são recursos padrão existentes nos &lt;em&gt;clusters&lt;/em&gt; &lt;em&gt;Kubernetes&lt;/em&gt;, que possibilitam a segmentação dos recursos sendo executados no &lt;em&gt;cluster&lt;/em&gt; (&lt;em&gt;namespaces&lt;/em&gt;, &lt;em&gt;pods&lt;/em&gt;, &lt;em&gt;svc&lt;/em&gt;, etc). Com as &lt;em&gt;policies&lt;/em&gt; padrão já estamos habilitados a incrementar a segurança do nosso ambiente, porém segurança nunca é demais.&lt;/p&gt;
&lt;p&gt;Para termos um maior nível de detalhes na criação das políticas, podemos utilizar a versão deste recurso fornecida pelo &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt;, solução que tratamos no &lt;a href=&quot;https://pedroscloudsecurity.com/aks-cilium&quot;&gt;post passado&lt;/a&gt;. Ao utilizarmos o &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt; como a solução de &lt;em&gt;Container Network Interface&lt;/em&gt; dos nossos &lt;em&gt;clusters&lt;/em&gt;, podemos implementar regras em diferentes camadas (&lt;strong&gt;L3&lt;/strong&gt;, &lt;strong&gt;L4&lt;/strong&gt; e &lt;strong&gt;L7&lt;/strong&gt;) e utilizando informações adicionais, trafegadas nas requisições feitas entre os recursos. Não apenas isso, se tivermos a &lt;em&gt;&lt;strong&gt;Cluster Mesh&lt;/strong&gt;&lt;/em&gt; habilitada entre nossos &lt;em&gt;clusters&lt;/em&gt; que executam o &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt;, podemos criar &lt;em&gt;policies&lt;/em&gt; que ultrapassam os limites de cada um dos ambientes &lt;em&gt;Kubernetes&lt;/em&gt;. Bom, né?&lt;/p&gt;
&lt;p&gt;Antes de passarmos para a real configuração das &lt;em&gt;policies&lt;/em&gt;, gostaria de trazer conceitos gerais sobre elas, que facilitarão o seu entendimento no momento de configuração dos recursos.&lt;/p&gt;
&lt;h3 id=&quot;funcionamento&quot;&gt;Funcionamento&lt;/h3&gt;
&lt;p&gt;Como explicado anteriormente, as &lt;em&gt;policies&lt;/em&gt; permitem que nós controlemos o acesso feito aos recursos do &lt;em&gt;cluster&lt;/em&gt; e saindo dos recursos. São “regras” criadas com um escopo específico e que validarão TUDO que passar por ali.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microssegmentacao-com-cilium/430fa1de-ff8a-4835-8945-698cc08baf18.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;No desenho acima podemos visualizar um &lt;em&gt;cluster&lt;/em&gt; com 3 &lt;em&gt;namespaces&lt;/em&gt; com &lt;em&gt;policies&lt;/em&gt; aplicadas e o fluxo de rede que é permitido/proibido em cada uma delas.&lt;/p&gt;
&lt;p&gt;Podemos confirmar que a &lt;em&gt;policy&lt;/em&gt; do &lt;em&gt;namespace 2&lt;/em&gt; permite consumo vindo de &lt;em&gt;pods&lt;/em&gt; com a &lt;em&gt;label&lt;/em&gt; &lt;em&gt;&lt;strong&gt;color:green&lt;/strong&gt;&lt;/em&gt;. Essa &lt;em&gt;policy&lt;/em&gt; também permite o acesso ao mundo externo (fora do &lt;em&gt;cluster&lt;/em&gt;) pelos &lt;em&gt;pods&lt;/em&gt; que ali estão. A &lt;em&gt;policy&lt;/em&gt; aplicada no &lt;em&gt;namespace 2&lt;/em&gt; não declara em momento algum o permissionamento para que os &lt;em&gt;pods&lt;/em&gt; restantes no &lt;em&gt;namespace 1&lt;/em&gt; possam acessar seus recursos, o que por padrão, proíbe a chamada.&lt;/p&gt;
&lt;p&gt;Para dar uma ideia, uma &lt;em&gt;policy&lt;/em&gt; parecida com a que seria aplicada no &lt;em&gt;namespace&lt;/em&gt; 2 seria:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;apiVersion&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;cilium.io/v2&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;kind&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; CiliumNetworkPolicy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; namespace2-policy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  namespace&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; &amp;#x3C;NAMESPACE&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;spec&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  endpointSelector&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;    matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  ingress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; fromEndpoints&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;          color&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; green&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  egress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; toEntities&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A &lt;em&gt;policy&lt;/em&gt; representada acima será aplicada no &lt;em&gt;&amp;#x3C;NAMESPACE&gt;&lt;/em&gt; determinado e permitirá as chamadas vindas de recursos com a &lt;em&gt;label color:green&lt;/em&gt; (&lt;em&gt;Ingress&lt;/em&gt;) e permitirá também chamadas feitas dos &lt;em&gt;pods&lt;/em&gt; presentes no &lt;em&gt;namespace&lt;/em&gt; para fora do &lt;em&gt;cluster&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Entraremos nos detalhes da criação das &lt;em&gt;policies&lt;/em&gt; em um artigo futuro, neste momento se concentre em entender o padrão dos &lt;em&gt;templates&lt;/em&gt; e as similaridades entre eles.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Agora que entendemos como as &lt;em&gt;policies&lt;/em&gt; são construídas e aplicadas, vamos detalhar mais os diferentes tipos e as diferenças entre elas.&lt;/p&gt;
&lt;h3 id=&quot;comportamento-padrão&quot;&gt;Comportamento padrão&lt;/h3&gt;
&lt;p&gt;O funcionamento padrão dos &lt;em&gt;clusters Kubernetes&lt;/em&gt; é permitir todas as chamadas de origem interna. Para contornarmos essa situação, é necessário aplicar uma &lt;em&gt;policy&lt;/em&gt; qualquer no escopo desejado. Uma vez que temos uma &lt;em&gt;policy&lt;/em&gt; aplicada, o &lt;em&gt;cluster&lt;/em&gt; passará a levar em conta APENAS o que está determinado nela.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Esse comportamento pode parecer problemático, porém alterá-lo “cegamente” pode desencadear uma série de problemas que não foram mapeados anteriormente pelos times. Existem recursos do &lt;em&gt;cluster&lt;/em&gt; que precisam acessar *endpoints externos para que sua execução ocorra da forma esperada. Ao aplicar uma policy que modifique esse comportamento, estaremos modificando o funcionamento do cluster, interrompendo as operações de negócio que são apoiadas pelas aplicações ali executadas.*Portanto, CUIDADO!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O escopo de aplicação das &lt;em&gt;policies&lt;/em&gt; também é importante. Dentro do &lt;em&gt;Kubernetes&lt;/em&gt;, temos recursos que são &lt;em&gt;namespaced&lt;/em&gt;, restritos ao &lt;em&gt;namespace&lt;/em&gt; onde foram criados e &lt;em&gt;cluster-wide&lt;/em&gt;, ou seja, disponíveis pelo &lt;em&gt;cluster&lt;/em&gt; todo. A aplicação das &lt;em&gt;policies&lt;/em&gt; também cai nesse cenário. Uma &lt;em&gt;policy&lt;/em&gt; “&lt;em&gt;default&lt;/em&gt;” será configurada no &lt;em&gt;namespace&lt;/em&gt; onde o usuário executar sua criação, a não ser que ela seja do tipo &lt;em&gt;&lt;strong&gt;CiliumClusterwideNetworkPolicy&lt;/strong&gt;&lt;/em&gt;. As &lt;em&gt;policies&lt;/em&gt; protegerão seus próprios &lt;em&gt;namespaces&lt;/em&gt;, então tenha em mente que liberar chamadas no &lt;em&gt;namespace&lt;/em&gt; destino pode não ser suficiente, havendo a necessidade de alterar a &lt;em&gt;policy&lt;/em&gt; cadastrada na origem.&lt;/p&gt;
&lt;h3 id=&quot;ingressegress&quot;&gt;&lt;em&gt;Ingress/Egress&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;A direção do tráfego é parte crucial na montagem das &lt;em&gt;policies&lt;/em&gt;. Precisamos declarar para qual direção aquelas regras deverão ser aplicadas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Ingress&lt;/strong&gt;&lt;/em&gt; - todas as chamadas que estão entrando no determinado escopo.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Egress&lt;/strong&gt;&lt;/em&gt; - chamadas oriundas do escopo de aplicação da &lt;em&gt;policy&lt;/em&gt;, independente do destino.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essa declaração nos permite entender o fluxo das chamadas feitas pelas aplicações que ali estão hospedadas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microssegmentacao-com-cilium/5beb94d9-24ec-4eb3-a273-9b202c5ab120.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Seguindo o exemplo das seções acima, o &lt;em&gt;template&lt;/em&gt; que aplicaria essa &lt;em&gt;policy&lt;/em&gt; seria:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt; ingress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; fromEndpoints&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;          color&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; green&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  egress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; toEntities&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;scoped-network-policies&quot;&gt;&lt;em&gt;Scoped Network Policies&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Passando a falar sobre as &lt;em&gt;policies&lt;/em&gt; em si, temos o primeiro “tipo”, que são as &lt;em&gt;policies&lt;/em&gt; com &lt;strong&gt;escopo&lt;/strong&gt;. Essas são aquelas &lt;em&gt;policies&lt;/em&gt; aplicadas em &lt;em&gt;namespaces&lt;/em&gt; específicos, que aplicarão os controles aos recursos ali contidos.&lt;/p&gt;
&lt;p&gt;Todo o tráfego de entrada e de saída do &lt;em&gt;namespace&lt;/em&gt; especificado será tratado pela &lt;em&gt;policy&lt;/em&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;apiVersion&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;cilium.io/v2&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;kind&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; CiliumNetworkPolicy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; namespace2-policy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  namespace&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; &amp;#x3C;NAMESPACE&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;spec&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  endpointSelector&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;    matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  ingress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; fromEndpoints&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;          color&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; green&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  egress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; toEntities&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Esse é o tipo “padrão” das &lt;em&gt;policies&lt;/em&gt;, levando em si o comportamento &lt;em&gt;default&lt;/em&gt; aplicado no &lt;em&gt;cluster&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;cluster-wide-network-policies&quot;&gt;&lt;em&gt;Cluster-wide Network Policies&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Para cenários onde é necessária a configuração de restrições de acesso independente do recurso, podemos utilizar as &lt;em&gt;policies&lt;/em&gt; de escopo &lt;em&gt;cluster-wide&lt;/em&gt;.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Essas políticas terão impacto no &lt;em&gt;cluster&lt;/em&gt; como um todo, portanto é preciso ser cuidadoso ao utilizá-la, visto que outros recursos podem sofrer impacto com suas regras.&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;apiVersion&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;cilium.io/v2&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;kind&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; CiliumClusterwideNetworkPolicy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt; cluster-policy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;spec&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  endpointSelector&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;    matchLabels&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  ingressDeny&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; fromEntities&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F07178&quot;&gt;  egress&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;    -&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; toEntities&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;      -&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Por trás dos panos, a &lt;em&gt;policy&lt;/em&gt; é identica às &lt;em&gt;policies&lt;/em&gt; &lt;em&gt;namespace scoped&lt;/em&gt;, com sua principal diferença sendo seu &lt;em&gt;kind&lt;/em&gt; que agora é &lt;em&gt;&lt;strong&gt;CiliumClusterwideNetworkPolicy&lt;/strong&gt;&lt;/em&gt; e a disponibilidade de uso do recurso &lt;em&gt;&lt;strong&gt;nodeSelector&lt;/strong&gt;&lt;/em&gt;, que nos permite especificar os &lt;em&gt;nodes&lt;/em&gt; para quais a política será aplicada.&lt;/p&gt;
&lt;h2 id=&quot;cross-cluster-network-policies&quot;&gt;&lt;em&gt;Cross-cluster Network Policies&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Chegamos a um extremo diferencial entre as &lt;em&gt;policies default&lt;/em&gt; e as &lt;em&gt;policies&lt;/em&gt; oferecidas pelo &lt;em&gt;&lt;strong&gt;Cilium&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Utilizando as capacidades de &lt;em&gt;&lt;strong&gt;cluster mesh&lt;/strong&gt;&lt;/em&gt;, podemos configurar &lt;em&gt;policies&lt;/em&gt; dentre os diferentes &lt;em&gt;clusters&lt;/em&gt; que fazem parte da nossa &lt;em&gt;mesh&lt;/em&gt;. A integração é possibilitada pelo uso da &lt;em&gt;label&lt;/em&gt; &lt;em&gt;&lt;strong&gt;io.cilium.k8s.policy.cluster&lt;/strong&gt;&lt;/em&gt; que nos permitirá identificar o &lt;em&gt;cluster&lt;/em&gt; que originou a requisição.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/microssegmentacao-com-cilium/c42e31b4-a436-44b8-96f8-c0cf01786ce0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Esse recurso é especialmente útil para ambientes consumidos por diversas outras áreas, que precisam garantir que apenas os recursos disponibilizados estão sendo consumidos. Ambientes com grandes quantidades de &lt;em&gt;clusters&lt;/em&gt; também podem usufruir dos benefícios gerados pela utilização das &lt;em&gt;cluster-wide policies&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Ter a &lt;em&gt;cluster mesh&lt;/em&gt; habilitada é um pré-requisito para utilizar as &lt;em&gt;cluster-wide policies&lt;/em&gt;, porém a habilitação deste recurso ficará para os próximos artigos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Por enquanto é só. Espero que tenha gostado do texto.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Named Locations</title><link>https://pedroignacio.dev/post/named-locations/</link><guid isPermaLink="true">https://pedroignacio.dev/post/named-locations/</guid><description>No momento de design das políticas de segurança da sua empresa, é importante que nós tenhamos disponível diferentes informações, que nos habilitarão a implementar uma maior granularidade nos controles e proteger o nosso ambiente de maneira mais efici...</description><pubDate>Thu, 18 Jan 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No momento de &lt;em&gt;design&lt;/em&gt; das políticas de segurança da sua empresa, é importante que nós tenhamos disponível diferentes informações, que nos habilitarão a implementar uma maior granularidade nos controles e proteger o nosso ambiente de maneira mais eficiente, considerando sempre a usabilidade do usuário. Uma informação presente na grande maioria das empresas, é a localização dos seus escritórios. Pensando nisso, hoje vamos falar sobre as &lt;em&gt;named locations&lt;/em&gt;, recurso do Entra ID que nos permite configurar esses espaços para personalizar a aplicação das políticas de segurança.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-que-são-as-named-locations&quot;&gt;O que são as &lt;em&gt;named locations&lt;/em&gt;?&lt;/h1&gt;
&lt;p&gt;Durante a construção das políticas de segurança da sua empresa, você já se pegou pensando que seria ótimo se houvesse uma maneira de representar o seu escritório, ou a rede confiável da sua empresa para aplicar políticas de acesso personalizadas? Hoje nós temos essa possibilidade com as &lt;em&gt;named locations&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;Esse recurso permite que representemos as redes das empresas que devem ser tratadas como “confiáveis” para que possam ser utilizadas na aplicação das políticas de segurança.&lt;/p&gt;
&lt;p&gt;Ficou confuso? Vamos a um exemplo.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Suponha que a sua empresa tenha a matriz (escritório principal) localizada no Brasil, porém com filiais na Argentina, Estados Unidos, Itália e também Austrália. Você deseja utilizar na sua análise de segurança o IP de onde vem a chamada e também a localização geográfica. Para isso, nós podemos usar as locations!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/named-locations/430dd8f9-e4e0-4571-9da5-e942438cdad1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Seguindo na linha deste exemplo, nós podemos criar uma &lt;em&gt;location&lt;/em&gt; que contenha todos os países e uma outra que contenha os &lt;em&gt;ranges&lt;/em&gt; de IP que representam as filiais da sua organização. Dessa forma, nós poderíamos utilizar essas informações dos escritórios como insumo para aplicação das políticas de segurança.&lt;/p&gt;
&lt;p&gt;Aplicando as políticas através de IP e das localizações, nós teríamos um ambiente parecido com esse:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/named-locations/0dbbdc6c-9029-4f0c-b626-f256ea280e44.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Neste cenário acima, as requisições vindas dos &lt;em&gt;ranges de IP&lt;/em&gt; das filiais e também a origem da requisição, são levadas em conta. Dentro da política de acesso condicional, nós implementaríamos os controles de uma maneira que apenas as requisições vindas das regiões das filiais e também de seus respectivos &lt;em&gt;ranges&lt;/em&gt; de IP seriam permitidos e qualquer chamada fora desses locais, seria negada.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Agora que entendemos como o recurso funciona, vamos falar sobre as melhores estratégias para sua utilização, visando sempre proteger o seu ambiente da melhor forma.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;estratégias-para-utilização&quot;&gt;Estratégias para utilização&lt;/h1&gt;
&lt;p&gt;Como qualquer recurso de segurança, é essencial que seja feito um planejamento antes de sua criação e configuração. Com as &lt;em&gt;locations&lt;/em&gt; isso não seria diferente.&lt;/p&gt;
&lt;p&gt;A primeira coisa que se deve pensar é: &lt;strong&gt;o que eu preciso representar com as &lt;em&gt;locations&lt;/em&gt;?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Essa pode parecer uma pergunta óbvia, porém não é. Conforme vamos evoluindo nosso pensamento sobre o que deve ser representado pelas &lt;em&gt;locations&lt;/em&gt; vamos percebendo o quão complexa é essa tarefa. Essa complexidade é ainda mais agravada se a sua organização contém múltiplas localidades, escritórios, empresas parceiras, prestadores de serviço, etc. Conforme evoluímos nosso planejamento com maturidade, cada vez mais considerações são feitas préviamente à definição de implementação.&lt;/p&gt;
&lt;p&gt;Para adequar a configuração dos seus componentes de maneira satisfatória, essa pergunta deve ser respondida levando em consideração todos os ambientes gerenciados pela sua organização, mas também ambientes externos que tenham acesso à ela, ambientes esses que muitas vezes acessam aplicações e serviços internos através de conexões VPN.&lt;/p&gt;
&lt;p&gt;Outra consideração que devemos fazer é: &lt;strong&gt;de que forma organizaremos essas informações?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Apesar das &lt;em&gt;locations&lt;/em&gt; representarem as localizações de certos ambientes, precisamos tomar cuidado com a governança dessas configurações, pois isso pode fugir de controle rapidamente.&lt;/p&gt;
&lt;p&gt;Organizar as localizações confiáveis em grupos e os &lt;em&gt;ranges&lt;/em&gt; de IPs “seguros” com uma classificação que nos permita identificar de maneira breve que localidade é aquela, é um desafio. A verdade é que não existe uma resposta certa, cada empresa tem suas peculiaridades e seus cenários próprios, por isso é importante que o time de segurança responsável por analisar esses fatores e registrar as &lt;em&gt;locations&lt;/em&gt;, atue com cautela e busque a maior quantidade de informações possíveis, pensando na melhor manutenção do seu ambiente.&lt;/p&gt;
&lt;p&gt;Para criarmos a lista de regiões, a informação mais importante é: &lt;strong&gt;quais são os lugares onde a sua empresa NÃO opera?&lt;/strong&gt; Responder essa pergunta nos permite eliminar uma grande quantidade de lugares e reduzir as possibilidades de ataques vindo dessas origens. Podemos criar uma lista apenas com países onde a organização contém filiais presentes e proibir qualquer acesso vindo de fora daquela lista.&lt;/p&gt;
&lt;p&gt;Outra estratégia comumente encontrada (mas não necessáriamente recomendada) é marcar como “localização confiável” as redes internas da sua empresa. Não marcar qualquer rede como confiável é o mínimo, agora marcar diversas redes da sua empresa como confiáveis, pode expor o seu ambiente à ataques não esperados. Construir uma arquitetura &lt;strong&gt;Zero Trust&lt;/strong&gt; exige que todas as requisições sejam verificadas de maneira explícita, “confiar” em um ambiente fere esse princípio!&lt;/p&gt;
&lt;p&gt;Você deve ter percebido que existe certo &lt;em&gt;trade-off&lt;/em&gt; em relação à criação e a organização dessas configurações. Devemos utilizar com cautela e sabedoria esses registros, para não expormos nosso ambiente à possíveis ameaças e vulnerabilidades. Utilizá-los para proibir o acesso de localizações não permitidas pode ser uma boa estratégia, porém utilizar as informações para permitir o acesso à partir de localizações confiáveis e sem a aplicação de controles mais rígidos, trará ao seu ambiente altos riscos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;configuração&quot;&gt;Configuração&lt;/h1&gt;
&lt;p&gt;No Portal do Entra, podemos navegar até &lt;em&gt;named locations&lt;/em&gt; e iniciar a criação dos nossos regisitros.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/named-locations/b5ba56e6-2e98-43a9-9e91-6d7284d4612a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como mencionei anteriormente, esse recurso nos permite trabalhar com regiões globais e com &lt;em&gt;ranges&lt;/em&gt; de IP.&lt;/p&gt;
&lt;h2 id=&quot;countries-location&quot;&gt;Countries Location&lt;/h2&gt;
&lt;p&gt;Selecionando “Countries location”, será necessário fornecer um nome para a nossa política. Após isso, precisaremos escolher qual o modelo de identificação de origem que será utilizado.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Temos duas opções disponíveis, &quot;&lt;em&gt;Determine location by IP address&lt;/em&gt;&quot; ou &quot;&lt;em&gt;Determine location by GPS coordinates&lt;/em&gt;&quot;. A primeira utiliza uma lista de IPs por país para identificar de onde a chamada está vindo. A segunda opção faz uso do aplicativo &lt;em&gt;Microsoft Authenticator&lt;/em&gt; para solicitar ao usuário o compartilhamento da sua localização por GPS.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Após isso, teremos uma lista de países para escolher e incluir em nosso registro.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;O limite de países por registro é de 195.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;ip-ranges-location&quot;&gt;IP ranges location&lt;/h2&gt;
&lt;p&gt;Para os &lt;em&gt;ranges&lt;/em&gt; de IP a configuração é mais simples. Além do nome do registro, também é necessário fornecer (é claro) os &lt;em&gt;ranges&lt;/em&gt; que devem ser considerados.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Existe um limite máximo de ranges de IP por registro, que é 2.000.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Uma outra configuração que pode ser feita, é marcar aquela &lt;em&gt;location&lt;/em&gt; como “confiável”. Registrar uma localização como confiável, não fará nenhuma diferença direta. A grande questão é que na montagem da nossa política de acesso condicional, nós poderemos selecionar TODAS as &lt;em&gt;locations&lt;/em&gt; marcadas como &lt;strong&gt;confiáveis&lt;/strong&gt;. Isso nos permitirá aplicar controles de segurança homogêneos entra as diferentes localizações da nossa organização.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;As &lt;em&gt;locations&lt;/em&gt; por IP permitem o cadastramento de endereços IPv4 e IPv6!&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;uso-no-conditional-access&quot;&gt;Uso no conditional access&lt;/h2&gt;
&lt;p&gt;Dentro do nosso editor de política, sob a sessão &lt;em&gt;location&lt;/em&gt;, nós teremos as seguintes opções:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/named-locations/78fcefc9-ded3-482e-8728-0c21264f3ff0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Essa política estará sendo aplicada para todas as localizações marcadas como confiáveis. Se selecionarmos a primeira opção “&lt;em&gt;Any location”&lt;/em&gt;, qualquer chamada receberá a aplicação do controle, independente da origem. A última opção “&lt;em&gt;Selected locations&lt;/em&gt;” nos permite escolher algumas &lt;em&gt;locations&lt;/em&gt; previamente registradas (essa opção é útil caso a política de acesso condicional que está sendo configurada, tenha o intuito de aplicar algum controle personalizado por localidade).&lt;/p&gt;
&lt;p&gt;Na aba &lt;em&gt;exclude&lt;/em&gt; temos o seguinte:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/named-locations/643650c6-388b-404f-b38b-70c745cd61dd.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Podemos eximir as localizações confiáveis da aplicação daquela política ou podemos selecionar &lt;em&gt;locations&lt;/em&gt; específicas para sofrerem um &lt;em&gt;bypass&lt;/em&gt; dos controles.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Utilizar a opção &quot;&lt;em&gt;All trusted locations&lt;/em&gt;&quot; na seção &lt;em&gt;Exclude&lt;/em&gt; pode fazer sentido se as &lt;em&gt;locations&lt;/em&gt; confiáveis forem de posse da sua organização. Reforçando o que foi mencionado anteriormente, a aplicação desse controle fere o princípio &lt;em&gt;verify explicitly&lt;/em&gt; de uma arquitetura &lt;strong&gt;Zero Trust!&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;Como profissionais de cibersegurança, é importante que nós tenhamos conhecimento aprofundado em diversos recursos que podem auxiliar em nosso dia a dia, porém ainda mais importante, é saber quando e como nós devemos utilizar essas funcionalidades.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que eu de alguma forma tenha contribuído para o fortalecimento da postura de segurança da sua empresa.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Open Source - o quão estratégico pode ser?</title><link>https://pedroignacio.dev/post/open-source-o-quao-estrategico-pode-ser/</link><guid isPermaLink="true">https://pedroignacio.dev/post/open-source-o-quao-estrategico-pode-ser/</guid><description>História
Há mais de 40 anos o ecossistema open source vem impulsionando a evolução técnológica das empresas e das comunidades, trazendo novos padrões de mercado e mudanças que mudaram completamente a forma com que fazemos tecnologia. Contudo, muitas ...</description><pubDate>Wed, 07 May 2025 03:00:00 GMT</pubDate><content:encoded>&lt;h1 id=&quot;história&quot;&gt;História&lt;/h1&gt;
&lt;p&gt;Há mais de 40 anos o ecossistema &lt;em&gt;open source&lt;/em&gt; vem impulsionando a evolução técnológica das empresas e das comunidades, trazendo novos padrões de mercado e mudanças que mudaram completamente a forma com que fazemos tecnologia. Contudo, muitas empresas ainda interpretam o tema como um risco. Será que é mesmo?&lt;/p&gt;
&lt;p&gt;Nós já estamos beeeeeeem distantes da época em que &lt;em&gt;open source&lt;/em&gt; não era seguro. Hoje não só as maiores empresas do mundo baseiam suas arquiteturas em soluções &lt;em&gt;&lt;strong&gt;open source&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;cloud native&lt;/strong&gt;&lt;/em&gt; como também temos diversas iniciativas que garantem a boa qualidade e os padrões de segurança dos projetos da comunidade, como a &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;https://openssf.org/&quot;&gt;OpenSSF&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Ao pararmos para analisar, tudo que é &lt;em&gt;cloud&lt;/em&gt; hoje veio do Linux. Servidores, &lt;em&gt;storage, contêineres&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;&lt;/em&gt;!!!! Se este pensamento relacionado a falta de segurança em projetos &lt;em&gt;OSS&lt;/em&gt; fosse verídico, estaríamos muito atrasados em tudo que fazemos hoje, então vamos esquecer esse estigma.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;strong&gt;Open Source&lt;/strong&gt; é seguro sim! Toda solução tem suas características e vulnerabilidades, reduzir uma categoria de projetos pura e exclusivamente baseado em uma opinião sem fundamento apenas prejudica a comunidade.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ótimo, mas e a escalabilidade? O quão escalável é a aplicação de soluções &lt;em&gt;OSS&lt;/em&gt; dentro das grandes organizações?&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;integração&quot;&gt;Integração&lt;/h1&gt;
&lt;p&gt;A utilização dessas soluções pode ser feita de forma &lt;strong&gt;descentralizada&lt;/strong&gt; ou &lt;strong&gt;centralizada&lt;/strong&gt;, alocando uma equipe para a governança desses projetos.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Neste ponto estamos retirando de perspectiva a integração com equipes e fluxos de segurança e times legais da organização. Estamos pensando apenas em tecnologia.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Pensando no ciclo de vida da solução dentro da sua empresa, é interessante que seja feito um trabalho de popularização do uso daquela ferramenta.&lt;/p&gt;
&lt;p&gt;Com a construção de templates, documentações e com uma boa estratégia de comunicação, outros times internos poderão usufruir da ferramenta e herdar os benefícios notados no momento de sua adoção.&lt;/p&gt;
&lt;p&gt;No longo prazo, essa cultura engaja mais engenheiros no tema &lt;em&gt;open source&lt;/em&gt; e potencializa a capacidade de contribuição da empresa e do projeto, dado que a experiência de implantação somado ao domínio técnico, permitirão que os engenheiros proponham novas &lt;em&gt;&lt;strong&gt;features&lt;/strong&gt;&lt;/em&gt;, reportem &lt;em&gt;&lt;strong&gt;issues&lt;/strong&gt;&lt;/em&gt; e auxiliem no desenvolvimento e solução das mesmas.&lt;/p&gt;
&lt;p&gt;Do ponto de vista de governança, a existência de uma equipe centralizada ou de um &lt;em&gt;CoE&lt;/em&gt; (&lt;em&gt;Center of Excellence&lt;/em&gt;) permite a rápida atuação em cenários onde a mesma se faz necessária. &lt;strong&gt;Resposta a incidentes produtivos&lt;/strong&gt;, &lt;strong&gt;identificação de vulnerabilidades&lt;/strong&gt; e &lt;strong&gt;oportunidades de melhora&lt;/strong&gt; são pontos frequentemente notados pelos times de engenharia e que serão direcionados de forma muito mais efetiva com a existência de uma liderança direcionada para &lt;em&gt;open source&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Agora que a minha empresa passou a adotar soluções open source em seu landscape de tecnologia. Há algo mais para se fazer?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;SIM! Devolver para a comunidade.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;corporate-x-community&quot;&gt;Corporate x Community&lt;/h1&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;É importante termos em mente que estamos falando de empresas &lt;em&gt;end users&lt;/em&gt; e não fornecedores. A adoção de uma estratégia &lt;em&gt;open source&lt;/em&gt; em uma empresa como o &lt;strong&gt;Google&lt;/strong&gt; e &lt;strong&gt;AWS&lt;/strong&gt; é completamente diferente de uma &lt;strong&gt;prestadora de serviços&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Do ponto de vista da empresa usuária do projeto, as preocupações variam de acordo com o segmento da companhia, porém sempre estarão em torno dos seguintes pontos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Processo legal&lt;/strong&gt; - relacionado diretamente ao licenciamento do projeto. A empresa deve garantir que não sofrerá ações legais por conta do uso indevido da solução.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segurança&lt;/strong&gt; - diferente do que comentamos no início do texto, essa referência à segurança é comum em soluções &lt;em&gt;open source&lt;/em&gt; e prioritárias. Vulnerabilidades encontradas nas soluções precisam ser mitigadas com pressa, para evitar danos a imagem e reputação da empresa.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gerenciamento&lt;/strong&gt; - por serem ferramentas sem gerenciamento, toda a responsabilidade de manter os sistemas rodando fica com a empresa. Isso não é um problema, porém será necessário infraestrutura e mão de obra para essas atividades.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Versionamento&lt;/strong&gt; - projetos &lt;em&gt;open source&lt;/em&gt; costumam ter &lt;em&gt;releases&lt;/em&gt; frequentes de novas versões, o que torna responsabilidade completa da empresa de manter os sistemas atualizados e com os devidos &lt;em&gt;patches&lt;/em&gt; aplicados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Contudo, nesse “jogo” não há apenas a empresa. Não podemos nos esquecer da &lt;strong&gt;comunidade&lt;/strong&gt;, que é quem mantém os projetos de pé, implementa funcionalidades novas e responde à vulnerabilidades e incidentes.&lt;/p&gt;
&lt;p&gt;A grande parte desses desenvolvedores fazem esses trabalhos em seu tempo livre, por &lt;em&gt;hobby&lt;/em&gt; e por acreditar nos projetos. São poucos os projetos que tem incentivos para influenciar no desenvolvimento.&lt;/p&gt;
&lt;p&gt;Dito isso, é extremamente importante que haja um retorno das empresas para a comunidade, permitindo assim que &lt;strong&gt;mantenhamos a saúde dos projetos e a comunidade engajada.&lt;/strong&gt;&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Contribuição para o &lt;em&gt;open source&lt;/em&gt; é algo voluntário. O engajamento da comunidade é o que faz os projetos crescerem e serem bem sucedidos. É crucial que as empresas tenham essa proposta de usufruir dos projetos e incentivar a comunidade a continuar com o trabalho.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Esse incentivo pode vir de diversas formas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Financeiro&lt;/strong&gt; - apoio (patrocínio) aos desenvolvedores e mantenedores do projeto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Suporte&lt;/strong&gt; - empresas auxiliam com os custos ligados ao projeto (infraestrutura, licenças para ferramentas, etc.).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contribuição&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Direta&lt;/strong&gt; - algumas empresas já adotaram a postura de permitir que seus engenheiros contribuam diretamente das contas e ambientes corporativos para projetos &lt;em&gt;open source&lt;/em&gt;. Isso geralmente exige uma série de camadas de segurança para proteção dos ativos da empresa e mitigação de possíveis vazamentos de dados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Indireta&lt;/strong&gt; - membros da comunidade são incentivados por suas empresas a contribuírem para os projetos, porém não podem utilizar sua identidade corporativa. Esse é o passo anterior a total integração das empresas no ecossistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project Ownership&lt;/strong&gt; - esse é um modelo de contribuição mais raro, onde a empresa doa um projeto (ou mais) para a comunidade. O &lt;em&gt;core&lt;/em&gt; de mantenedores pode ainda ser o mesmo, porém o código foi aberto e disponibilizado para a comunidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essas contribuições partindo das empresas mantém o ecossistema saudável e funcional e influencia outros &lt;em&gt;players&lt;/em&gt; do mercado a fazerem o mesmo.&lt;/p&gt;
&lt;p&gt;Nós, engenheiros e engenheiras, precisamos voltar a cobrar as nossas empresas dessa devolução para a comunidade e para o ecossistema. Como vimos, os incentivos podem ser realizados de diversas maneiras, porém é importante que eles sejam feitos!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;conclusão&quot;&gt;Conclusão&lt;/h1&gt;
&lt;p&gt;A grande verdade é que &lt;em&gt;open source&lt;/em&gt; pode (e deve) ser MUITO considerado como estratégico para sua empresa. Dar liberdade para que os engenheiros testem e experimentem soluções novas é a melhor forma de fazer com que seu ambiente se torne mais maduro e inovador.&lt;/p&gt;
&lt;p&gt;Como tudo na área de tecnologia, temos um &lt;em&gt;trade-off&lt;/em&gt;. A integração da sua empresa com a comunidade &lt;em&gt;open source&lt;/em&gt; deve ser avaliada de acordo com o seu cenário e a partir daí, as possibilidades devem ser exploradas. Os projetos precisam de apoio e é certo que uma hora ou outra, a conta dessa falta de contribuição, vai chegar.&lt;/p&gt;
&lt;p&gt;O importante é começarmos a engajar cada vez mais as empresas para manter o nosso ecossistema “afiado” como estamos acostumados a ver.&lt;/p&gt;
&lt;p&gt;Muito obrigado e até logo! &amp;#x3C;3&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Reforçando a segurança de acesso no Entra ID</title><link>https://pedroignacio.dev/post/reforcando-seguranca-de-acesso/</link><guid isPermaLink="true">https://pedroignacio.dev/post/reforcando-seguranca-de-acesso/</guid><description>Para as empresas que estão completamente na nuvem, a primeira camada de defesa é a camada de acesso, pois não tem que se preocupar com a proteção do ambiente físico. Hoje vamos falar de alguns recursos que nos permitem reforçar a segurança dos acesso...</description><pubDate>Tue, 29 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Para as empresas que estão completamente na nuvem, a primeira camada de defesa é a &lt;strong&gt;camada de acesso&lt;/strong&gt;, pois não tem que se preocupar com a proteção do ambiente físico. Hoje vamos falar de alguns recursos que nos permitem reforçar a segurança dos acessos através de políticas de senha, múltiplos fatores de autenticação e também autenticação &lt;em&gt;passwordless&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Dentro do &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt;, na seção “Proteção” temos a opção “Métodos de Autenticação”. Neste recurso, utilizaremos as diversas funcionalidades fornecidas pelo Entra para reforçar a segurança de acesso do nosso ambiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;introdução&quot;&gt;Introdução&lt;/h1&gt;
&lt;p&gt;Como comentado no início do texto, a segurança de acesso é a primeira camada de proteção que podemos utilizar para nosso ambiente em nuvem (para saber mais sobre segurança em profundidade, clique &lt;a href=&quot;https://predoignacio.medium.com/defesa-em-profundidade-com-microsoft-azure-7629913c647a&quot;&gt;aqui&lt;/a&gt;). Na realidade, antes da camada de acesso nós temos a camada física, porém para ambientes em nuvem a responsabilidade sob esse nível é completamente da provedora de serviços. Para empresas que contém seus próprios ambientes (&lt;em&gt;on-premise&lt;/em&gt;) essa responsabilidade entra em jogo.&lt;/p&gt;
&lt;p&gt;Existem diferentes maneiras de incrementarmos a segurança de acesso em nosso ambiente, podemos utilizar ferramentas de detecção de ameaças que monitorarão as contas para identificar atividades suspeitas, podemos impor políticas de senha, de dispositivo, exigir autenticações “mais fortes” de acordo com a necessidade, e além das possibilidades apresentadas, temos diversas outras que podem ser adotadas pela sua empresa.&lt;/p&gt;
&lt;p&gt;Hoje vamos falar especificamente de algumas das funcionalidades fornecidas pelo Entra para fortalecer os acessos às plataformas.&lt;/p&gt;
&lt;p&gt;Ao longo do texto você se irá se deparar algumas vezes com o termo &lt;em&gt;passwordless&lt;/em&gt;, então para evitar confusão, vou explicar brevemente o conceito.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Passwordless&lt;/strong&gt; (ou “sem senha” em português) é o método de autenticação que não exige que o usuário digite uma senha. A autenticação será feita utilizando outros recursos como um aplicativo autenticador (&lt;em&gt;Google Authenticator&lt;/em&gt;, &lt;em&gt;Microsoft Authenticator&lt;/em&gt;, etc.), identificação biométrica, identificação por voz, OTPs (&lt;em&gt;one-time passwords&lt;/em&gt;) e até tokens físicos (padrão FIDO). Esse método é altamente recomendado pois traz mais conforto aos usuários por retirar a necessidade da senha e oferece mais segurança, visto que a superfície de ataque é reduzida pois você estará utilizando &lt;strong&gt;algo que você tem&lt;/strong&gt;, impedindo que o atacante use o recurso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;proteção-porsenha&quot;&gt;Proteção por senha&lt;/h1&gt;
&lt;p&gt;Mesmo sendo um método de autenticação “fraco” devido sua superfície de ataques (engenharia social, &lt;em&gt;password spray&lt;/em&gt;, &lt;em&gt;man in the middle&lt;/em&gt;, etc.) grande parte das empresas ao redor do mundo ainda tem o processo de autenticação de seus funcionários baseado em senhas. Isso se dá não apenas pelo desejo de manter este método, mas também pela inexperiência das equipes de segurança e tecnologia e pela inefetividade na implementação de fatores mais seguros.&lt;/p&gt;
&lt;p&gt;Mesmo esse método sendo desencorajado hoje, não é correto que as equipes de segurança realizem uma mudança radical de uma hora para outra, implementando modelos e ferramentas mais modernas sem treinar suas equipes de suporte, segurança e principalmente os funcionários “comuns” (entende-se como &lt;em&gt;comuns&lt;/em&gt; as pessoas fora da área de tecnologia, que não necessariamente entendem todas as motivações pelas trocas), que utilizarão as ferramentas no dia a dia de trabalho. Além do extenso estudo, para entender as ferramentas que melhor se adequam à sua empresa, os testes e as &lt;em&gt;releases&lt;/em&gt; progressivas serão as principais garantidoras do sucesso da nova estratégia de segurança adotada pela empresa.&lt;/p&gt;
&lt;p&gt;Agora, não é porquê o método tem seu uso desencorajado que não é possível melhorar sua segurança para evitar problemas causados pelos ataques mais conhecidos e mencionados anteriormente.&lt;/p&gt;
&lt;p&gt;Dentro da seção “Proteção por senha” dos métodos de autenticação, podemos impor regras personalizadas para as senhas cadastradas pelos usuários no Entra ID.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-seguranca-de-acesso/bc655076-79f1-47dc-9cdf-d1850d76dec2.png&quot; alt=&quot;Formulário de configuração das políticas restritivas de senhas&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nas duas primeiras linhas podemos controlar a quantidade de tentativas permitidas antes de um bloqueio e também a duração do bloqueio. Não é recomendado deixar o número de tentativas tão alto, pois dessa maneira deixamos abertura para que atacantes tentem uma maior quantidade de senhas possível antes do bloqueio. Outro ponto é a duração do bloqueio, 60 segundos é um tempo curto e que habilita que o atacante volte a tentar possíveis senhas após o bloqueio. Sua empresa provavelmente tem um administrador ou até uma equipe de suporte, avalie se é necessário permitir que os usuários tentem tantas vezes suas senhas. &lt;strong&gt;Restringir essas duas propriedades pode salvar sua equipe de segurança de dores de cabeça consideráveis&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Agora vamos falar de uma funcionalidade legal, a lista de senhas personalizadas. É comum que as empresas tenham políticas de renovação de senha (nos melhores casos isso ocorre a cada 30 dias, mas conheço casos de empresas que permitiam a mesma senha por mais de 90 dias) e isso leva os funcionários a certo estresse quando o dia do vencimento da senha está próximo. “Qual senha devo colocar?”, “Já usei a senha … antes?”, “Se eu alterar apenas uma letrinha não terei problema algum.”, essas são frases que todo funcionário já pensou antes de trocar de senha. Esse recurso permite a criação de uma lista personalizada de palavras que deverão ser identificadas nas senhas dos usuários, não permitindo seu cadastramento.&lt;/p&gt;
&lt;p&gt;O limite é de até 1000 palavras e não é necessário pensar em variações. O Entra ID identifica automaticamente se uma palavra da lista foi utilizada substituindo caracteres por valores parecidos (como um “a” por “@” ou um “o” por “0”) e também identifica valores que utilizam letras maiúsculas mescladas com minúsculas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A lista de senha deve conter termos utilizados frequentemente na linha de negócio da sua empresa. A Microsoft já disponibiliza com o &lt;strong&gt;Entra ID Identity Protection&lt;/strong&gt; uma lista global de senhas comumente utilizadas e vazadas nas &lt;em&gt;dark webs&lt;/em&gt;, impedindo que os usuários tentem registrá-las.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Para cenários de autenticação híbrida, podemos estender as funcionalidades de proteção às senhas aos &lt;em&gt;Domain Controllers&lt;/em&gt; do Active Directory. Ao ativarmos a opção “Proteção de senha para o Windows Server Active Directory” os DCs receberão o reforço das políticas implementadas no Entra ID, desde que os agentes necessários estejam configurados.&lt;/p&gt;
&lt;p&gt;Por fim, não esqueça de ativar a execução da sua política. Manter a opção “Auditoria” ativa não implementará nenhum controle, os resultados de execução da política serão apenas logados e não implementados.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;pontos-fortes-de-autenticação&quot;&gt;Pontos fortes de autenticação&lt;/h1&gt;
&lt;p&gt;Levando em conta a fragilidade da autenticação por &lt;strong&gt;usuário + senha&lt;/strong&gt;, o Entra ID disponibiliza outros métodos que podem ser configurados e utilizados pela sua empresa. Alguns desses métodos são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Authenticator — aplicativo para &lt;em&gt;smartphone&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Windows Hello for Business — solução integrada com estações de trabalho que permite autenticação via biometria e PIN (depende da capacidade técnica da estação de trabalho);&lt;/li&gt;
&lt;li&gt;Autenticação por certificado — utiliza um certificado instalado na máquina para realizar a autenticação;&lt;/li&gt;
&lt;li&gt;Chave de segurança FIDO — tokens físicos multi-plataforma (&lt;em&gt;smartphones&lt;/em&gt; e &lt;em&gt;notebooks&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Na seção “Pontos fortes de autenticação” você pode configurar alguns conjuntos de métodos que serão impostos aos usuários quando configurados através das políticas de acesso condicional (na seção “Conceder” da política de acesso condicional, você pode selecionar a opção “Exigir força de autenticação” e selecionar uma das opções presentes na lista).&lt;/p&gt;
&lt;p&gt;Os administradores poderão escolher qualquer um dos métodos existentes e criar combinações de acordo com a necessidade.&lt;/p&gt;
&lt;p&gt;Ao acessar o recurso pela primeira vez, você irá se deparar com 3 combinações padrão:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-seguranca-de-acesso/cc86773f-bee4-4c96-aba2-cab876d35441.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Vamos falar um pouco sobre as três:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Multifactor Authentication&lt;/em&gt;: pensado para criar uma camada extra de segurança sem um propósito específico, essa configuração contém uma lista de recursos que podem ser utilizados para implementação da política de MFA. Se você clicar sobre ela, verá todos os métodos que poderão ser utilizados pelo usuário;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Passwordless MFA&lt;/em&gt;: como explicado no início do texto, esse modelo retira a necessidade da senha utilizando outros recursos no lugar. Diferente do modelo anterior, temos apenas 4 recursos disponíveis para serem utilizados pelo usuário;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Phishing-resistant MFA&lt;/em&gt;: visando evitar o roubo de credenciais, os métodos resistentes à &lt;em&gt;phishing&lt;/em&gt; foram atribuídos à essa coleção.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Você também pode criar suas próprias coleções de fatores de autenticação. Se por acaso sua empresa tenha alguma restrição sobre os fatores de autenticação que podem ser utilizados, essa é uma boa maneira de disponibilizar de maneira centralizada para seus usuários os recursos disponíveis.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Mais uma vez, espero que eu tenha conseguido te ajudar a proteger melhor seu ambiente. O Entra ID é uma ferramenta poderosíssima e que contém tantas capacidades de segurança que nós nos surpreendemos sempre com as possibilidades geradas por essa ferramenta.&lt;/p&gt;
&lt;p&gt;Torço para que tenha gostado do texto e te vejo em breve.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Reforçando sua postura de identidade com o Defender for Identity</title><link>https://pedroignacio.dev/post/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/</link><guid isPermaLink="true">https://pedroignacio.dev/post/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/</guid><description>Como aprendemos no último artigo, ter uma ferramenta de CSPM no seu ambiente pode te economizar muitas dores de cabeça e acima de tudo, muito dinheiro! Visando proteger seu ambiente de IAM, um dos &quot;módulos&quot; do Microsoft Defender for Cloud é o Defende...</description><pubDate>Wed, 06 Dec 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Como aprendemos no &lt;a href=&quot;https://pedroignacio.hashnode.dev/para-que-serve-um-cspm&quot;&gt;último artigo&lt;/a&gt;, ter uma ferramenta de CSPM no seu ambiente pode te economizar muitas dores de cabeça e acima de tudo, muito dinheiro! Visando proteger seu ambiente de IAM, um dos “módulos” do &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt; é o &lt;strong&gt;Defender for Identity&lt;/strong&gt;, direcionado exclusivamente para as soluções do Microsoft Entra e Active Directory. É sobre esse cara que falaremos hoje!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;pré-requisitos&quot;&gt;Pré-requisitos&lt;/h1&gt;
&lt;p&gt;Para iniciar o uso da ferramenta, o único pré-requisito que necessita ser cumprido, é a existência da licença &lt;em&gt;&lt;strong&gt;Enterprise Mobility + Security E5&lt;/strong&gt;&lt;/em&gt; ou &lt;em&gt;&lt;strong&gt;Microsoft 365 E5&lt;/strong&gt;&lt;/em&gt;. A licença será necessária para habilitação da ferramenta, consequentemente permitindo seu uso para o Entra ID e também para o Active Directory.&lt;/p&gt;
&lt;p&gt;Para um &lt;em&gt;deployment&lt;/em&gt; híbrido, é necessário a criação de uma máquina virtual que executará o &lt;strong&gt;Defender for Identity Sensor&lt;/strong&gt;. A recomendação é que essa máquina tenha no mínimo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sistema Operacional: &lt;em&gt;Windows Server 2016&lt;/em&gt; ou superior;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Microsoft .NET&lt;/em&gt; versão 4.7.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Lembrando que a instalação do sensor é feita no servidor do Active Directory Federation Services, então garante que seu componente esteja sendo executada em uma infraestrutura que atenda esses requisitos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;muito-mais-que-apenas-um-cloud-identity-cspm&quot;&gt;Muito mais que apenas um &lt;em&gt;cloud-identity CSPM&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Visando a cobertura de toda a suíte de produtos de identidade da Microsoft, o Defender for Identity foi projetado para proteger seu ambiente em nuvem e também seu ambiente &lt;em&gt;on-premise&lt;/em&gt;, tornando seu &lt;em&gt;deployment&lt;/em&gt; &lt;strong&gt;híbrido&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Por ser comum as empresas terem sua arquitetura de identidade no modelo híbrido, com &lt;em&gt;tenants&lt;/em&gt; do Entra e domínios do &lt;em&gt;Active Directory&lt;/em&gt;, o Defender veio para “cobrir” a segurança nesses dois ambientes. Por não ser uma solução &lt;em&gt;SaaS/PaaS&lt;/em&gt;, para protegermos nossos componentes do &lt;em&gt;Microsoft Active Directory&lt;/em&gt;, é necessária a instalação de um componente da solução que fará o monitoramento e a captura de eventos de segurança para serem processados no CSPM.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As especificações técnicas para instalação do Defender for Identity para proteger os componentes do Active Directory, podem ser visualizados &lt;a href=&quot;https://learn.microsoft.com/pt-br/defender-for-identity/quick-installation-guide&quot;&gt;neste link&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A arquitetura macro da solução será como a representada pela seguinte imagem, retirada das documentações oficiais da Microsoft:&lt;/p&gt;
&lt;p&gt;![Architecture - Microsoft Defender for Identity | Microsoft Learn](&lt;a href=&quot;https://learn.microsoft.com/en-us/defender-for-identity/media/architecture/architecture.png&quot;&gt;https://learn.microsoft.com/en-us/defender-for-identity/media/architecture/architecture.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;Nossa solução em nuvem se comunicará com os &lt;em&gt;tenants&lt;/em&gt; do &lt;strong&gt;Entra ID&lt;/strong&gt;, com &lt;strong&gt;Provedores de Identidade terceiros&lt;/strong&gt; e também com os componentes do &lt;strong&gt;Active Directory&lt;/strong&gt; (&lt;em&gt;Domain Controllers&lt;/em&gt;, &lt;em&gt;Federation Services&lt;/em&gt; e &lt;em&gt;Certificate Services&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Para termos dimensão do que podemos fazer em um ambiente híbrido, podemos consultar o &lt;a href=&quot;https://learn.microsoft.com/en-us/defender-for-identity/monitored-activities&quot;&gt;registro de eventos do Active Directory&lt;/a&gt;. Não temos a mesma cobertura que das soluções em nuvem, porém teremos uma cobertura efetiva do ambiente &lt;em&gt;on-premise&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;Já que compreendemos os diferentes ambientes que podem ser monitorados, agora o que basta é operarmos o portal para entender como utilizar a ferramenta de maneira efetiva e começar a incrementar nossa postura de identidade!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;acessando-o-portal&quot;&gt;Acessando o portal&lt;/h1&gt;
&lt;p&gt;Seguindo o padrão aplicado para soluções como o &lt;strong&gt;Microsoft Entra&lt;/strong&gt; e o &lt;strong&gt;Microsoft Purview&lt;/strong&gt;, o Defender for Identity também tem um portal central, que pode ser utilizado para todas as operações relacionadas à ferramenta.&lt;/p&gt;
&lt;p&gt;Acessando &lt;em&gt;&lt;a href=&quot;http://security.microsoft.com&quot;&gt;security.microsoft.com&lt;/a&gt;&lt;/em&gt; você será direcionado para a página principal da plataforma (caso seja seu primeiro acesso, pode ser que seja solicitado que você entre com suas credenciais), que se parece com a seguinte:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/cdc1454b-bc9b-43fa-8cf7-6d36f0f4ec53.png&quot; alt=&quot;Portal do Defender for Identity&quot;&gt;&lt;/p&gt;
&lt;p&gt;Caso seja sua primeira vez acessando o portal, você será apresentado com um tutorial guiado sobre as capacidades existentes. São informações básicas, para que você não se sinta perdido ao inicar suas operações.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Este portal é do Microsoft 365 Defender, por isso encontramos diversas outras capacidades além das relacionadas à identidade (o defender for identity faz parte deste portal por conta das recentes atualizações nos produtos realizadas pela Microsoft, onde o Entra passou a fazer parte da família do Microsoft 365). Como o foco do artigo é essa solução em específico, vou deixar para abordadar as capacidades restantes em outro momento.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;navegação&quot;&gt;Navegação&lt;/h2&gt;
&lt;p&gt;No menu lateral podemos navegar entre as funcionalidades da solução. Atente-se à seção “Assets &gt; Identity”, é nesta seção do portal que iremos conectar nosso Defender for Identity ao &lt;em&gt;tenant&lt;/em&gt; do Entra ID. Apenas siga os passos indicados e você irá ativar a coleta de dados do seu ambiente.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A primeira análise pode demorar algumas horas, então é importante que após conectar ao ambiente, você aguarde que ele realize a análise e recupere as informações disponíveis!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Após receber as informações do seu ambiente, você será apresentado com uma grande tabela e uma série de filtros, que serão de extrema utilidade quando você quiser procurar informações sobre usuários específicos.&lt;/p&gt;
&lt;p&gt;Algumas outras seções inclusas no portal são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detecção de ameaças - criação de &lt;em&gt;queries&lt;/em&gt; para análise e identificação de atividades suspeitas relacionadas às soluções do &lt;strong&gt;Microsoft 365&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;Secure score - postura de segurança do ambiente (CSPM);&lt;/li&gt;
&lt;li&gt;Cloud apps - capacidade de CASB (&lt;em&gt;Cloud Access Security Broker&lt;/em&gt;) do Defender, onde podemos conectar aplicações e realizar a aplicação de controles;&lt;/li&gt;
&lt;li&gt;Incidentes e alertas - visão unificada dos alertas gerados pelas &lt;em&gt;queries&lt;/em&gt; criadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Dica&lt;/strong&gt;: navegue pelo portal, entenda as capacidades existentes, explore os artigos e treinamentos recomendados. Se sentir confortável com a interface e as capacidades fornecidas, potencializará o que você conseguirá fazer com a solução!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;recomendações&quot;&gt;Recomendações&lt;/h1&gt;
&lt;p&gt;Após conectarmos nosso &lt;em&gt;tenant&lt;/em&gt; e aguardarmos para o recebimento dos eventos e a geração das análises pré-existentes, chegou a hora de começarmos a compreender os “buracos” existentes nas nossas configurações.&lt;/p&gt;
&lt;p&gt;Se navegarmos até “Secure Score”, conseguiremos ver a postura de segurança do nosso ambiente (gerada à partir do Benchmark da Microsoft), bem como as ações recomendadas para o ambiente, o histórico de mudanças na postura e também as métricas de segurança do ambiente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/c1be5065-4d49-4eb9-978e-b14312c658bf.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Gostaria de chamar atenção para a segunda seção destacada, “Recommended actions”. Dentro dessa seção, temos os direcionamentos gerados pelo &lt;strong&gt;Defender for Identity&lt;/strong&gt; para melhorar nossa postura de segurança. Vamos acessá-lo.&lt;/p&gt;
&lt;p&gt;Somos apresentado com uma lista de ações recomendadas, ordenadas por padrão para que as com maior impacto no &lt;em&gt;score&lt;/em&gt; sejam mostradas primeiramente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/63795054-6a3a-4122-87dd-c45706ea8d47.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cada recomendação contém uma série de métricas que nos permitem avaliar seu estado. Métricas como “Points achieved” e “Status” nos permitem compreender se a recomendação foi atendida como um todo ou se apenas parcialmente.&lt;/p&gt;
&lt;p&gt;Outras informações como por exemplo o histórico da recomendação, a data de realização e o produto afetado, podem ser visualizadas na mesma tabela.&lt;/p&gt;
&lt;p&gt;Para visualizarmos apenas as recomendações relacionadas às nossas soluções de identidade, devemos filtrar a categoria para o valor “&lt;strong&gt;Identity&lt;/strong&gt;”.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/7736a1a2-c746-42ba-b2e1-c08a9aee526b.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao clicar sobre qualquer uma das recomendações, um painel lateral será aberto ao lado direito do portal. Este painel conterá informações sobre a recomendação feita, histórico e sobre o plano de remediação da mesma. Vamos explorar essa parte na próxima seção do artigo!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;remediando-o-ambiente&quot;&gt;Remediando o ambiente&lt;/h1&gt;
&lt;p&gt;Ainda com a seção da recomendação aberta, vamos analisar as informações que nos são fornecidas e como elas nos auxiliarão na remediação do ambiente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/849c457f-0712-4d02-a44d-6ed597fd10d4.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Selecionei uma das minhas recomendações e com o painel aberto na seção “General” consigo visualizar algumas coisas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Descrição da recomendação;&lt;/li&gt;
&lt;li&gt;Progresso da implementação - métrica importante para monitorarmos a evolução do nosso ambiente;&lt;/li&gt;
&lt;li&gt;Impacto nos usuários - outro ponto que deve ser analisado com “carinho”. As remediações visam proteger o ambiente, porém não podemos esquecer de quem faz tudo acontecer, os usuários das soluções finais. Eles serão impactados direta e indiretamente com as implementações feitas por nós.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para as equipes que realizarão as atividades, a seção “Implementation” contém as informações mais valiosas:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/362100d7-9bf8-4e2a-bc45-be308ff2733a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Temos uma lista dos pré-requisitos necessários para a implementação da solução, bem como se já estão atendidos ou não;&lt;/li&gt;
&lt;li&gt;Passo a passo da implementação - deixando o trabalho dos analistas muito mais simples, visto que não precisam realizar extensas pesquisas sobre como realizar a implantação;&lt;/li&gt;
&lt;li&gt;Links extras - servem de apoio aos times para solucionar questões encontradas no processo de implantação.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Com esses mapeamentos realizados, os times podem começar a planejar as mudanças e a implantar as remediações!&lt;/p&gt;
&lt;h2 id=&quot;recomendação-atendida&quot;&gt;Recomendação atendida&lt;/h2&gt;
&lt;p&gt;O exemplo que visualizamos acima é o de uma recomendação sem implementação. Uma vez identificada e com seu plano de remediação concretizado, a recomendação estará representada da seguinte forma:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/f9c89447-d62f-4dfd-836d-c79fcdfe065c.png&quot; alt=&quot;Exemplo de remediação atendida&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/reforcando-sua-postura-de-identidade-com-o-defender-for-identity/c2754a98-6769-411a-8d98-470b617ddb7b.png&quot; alt=&quot;&amp;#x22;Blade&amp;#x22; que fornece informações sobre a recomendação&quot;&gt;&lt;/p&gt;
&lt;p&gt;Note que abaixo do título temos um “check” que demonstra o sucesso na implementação. Temos também ao lado direito o progresso da recomendação, seção muito útil quando estamos lidando com recomendações que devem ser realizadas em diversas etapas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Do lado direito, abaixo de “Protects against” temos uma série de ataques que são mitigados ao acatar a recomendação. Ao clicar sobre qualquer um dos links, você será apresentado com uma breve descrição do ataque!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;atualizações-do-ambiente&quot;&gt;Atualizações do ambiente&lt;/h2&gt;
&lt;p&gt;Após implementar as recomendações no ambiente, você deve aguardar algumas horas para que seu progresso seja computado e tenha efeito no &lt;em&gt;secure score&lt;/em&gt;. Os status das recomendações também podem demorar um pouco para aparecer, então aguarde algumas horas e cheque novamente sua lista de recomendações.&lt;/p&gt;
&lt;h2 id=&quot;extra-windows-active-directory&quot;&gt;Extra: Windows Active Directory&lt;/h2&gt;
&lt;p&gt;Comentamos brevemente sobre a extensão do Defender for Identity ao Windows Active Directory e sua capacidade de expandir a proteção de identidade às soluções &lt;em&gt;on-premise&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Em um ambiente que contém o &lt;strong&gt;Defender for Identity Sensor&lt;/strong&gt; instalado e configurado para monitorar os componentes do AD, as recomendações irão aparecer junto das referente ao ambiente em nuvem!&lt;/p&gt;
&lt;p&gt;Se a sua organização utiliza um modelo de implementação híbrido, é de suma importância a configuração dessa ferramenta para proteger seus usuários. Sua instalação e configuração é simples e os benefícios são diversos!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Espero que após a leitura desse artigo, você tenha compreendido a necessidade de se ter o CSPM monitorando as soluções de identidade.&lt;/p&gt;
&lt;p&gt;Estou à disposição para responder qualquer dúvida e auxiliá-los de alguma maneira.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Tipos de identidades no Azure</title><link>https://pedroignacio.dev/post/tipos-de-identidades-no-entraid/</link><guid isPermaLink="true">https://pedroignacio.dev/post/tipos-de-identidades-no-entraid/</guid><description>Você conhece todos os tipos de identidades existentes no Azure? Para que eles servem e quais suas peculiaridades? Hoje vamos falar sobre as identidades de usuários e os diferentes tipos de identidade para os workloads!

Para que são usadas?
As identi...</description><pubDate>Wed, 13 Sep 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Você conhece todos os tipos de identidades existentes no Azure? Para que eles servem e quais suas peculiaridades? Hoje vamos falar sobre as identidades de usuários e os diferentes tipos de identidade para os &lt;em&gt;workloads&lt;/em&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;para-que-sãousadas&quot;&gt;Para que são usadas?&lt;/h1&gt;
&lt;p&gt;As identidades são utilizadas para identificar algo, seja um usuário ou um recurso/aplicação e para termos uma maneira de controlar o acesso aos recursos da plataforma.&lt;/p&gt;
&lt;p&gt;Dentre as identidades existentes no Azure, temos 3 tipos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identidades de usuário;&lt;/li&gt;
&lt;li&gt;Identidades gerenciadas;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Service principals&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O funcionamento dos 3 tipos é muito parecido, seu propósito é o mesmo porém as características são muito diferentes.&lt;/p&gt;
&lt;p&gt;Nas próximas seções, vamos entender seus usos, suas características e como criá-las.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;usuários&quot;&gt;Usuários&lt;/h1&gt;
&lt;p&gt;Os usuários somos nós. Eu, você, nossos amigos e colegas que usam a plataforma. As identidades de usuário são utilizadas para representar uma pessoa no Entra ID. Esse usuário tem um nome, endereço de e-mail e também uma senha. Ele representa um funcionário, um terceiro, colaborador, ou qualquer outro usuário que vá acessar um recurso da plataforma.&lt;/p&gt;
&lt;p&gt;Antes da criação as &lt;em&gt;Service Principals&lt;/em&gt; era comum encontrarmos nos ambientes identidades de usuário que eram utilizadas por aplicações para controlar o acesso aos recursos. Com a criação das &lt;em&gt;SPs&lt;/em&gt;, hoje temos uma alternativa mais simples e que faz mais sentido para esse caso de uso.&lt;/p&gt;
&lt;p&gt;Um usuário não tem a característica dos outros tipos de identidade, ele deve representar apenas uma pessoa. Para representarmos aplicações e outros objetos, temos possibilidades distintas e que se assemelhem mais aos respectivos casos de uso.&lt;/p&gt;
&lt;p&gt;Um usuário tem propriedades como: endereço, data de nascimento, cargo, informações pessoais (como número de telefone), entre outras informações, então para distinguirmos um &lt;em&gt;user&lt;/em&gt; dentro de todos os outros objetos de identidade existentes na plataforma, podemos nos atentar à algumas informações como essas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;managed-identity&quot;&gt;Managed Identity&lt;/h1&gt;
&lt;p&gt;As &lt;em&gt;Managed Identities&lt;/em&gt; (ou Identidades Gerenciadas) são um tipo específico de identidade do Azure que nos permite autorizar o consumo de recursos da plataforma a partir de outros recursos. Ficou confuso? Vamos ao exemplo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/tipos-de-identidades-no-entraid/f965c330-53c3-4e60-bb4f-b04d39862d53.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Na arquitetura apresentada acima nós temos uma &lt;em&gt;Azure Functions&lt;/em&gt; recebendo requisições &lt;em&gt;HTTP/HTTPS&lt;/em&gt; e inserindo os eventos dentro de um tópico do &lt;em&gt;Azure Service Bus&lt;/em&gt;. Temos também uma outra &lt;em&gt;Azure Functions&lt;/em&gt; consumindo os eventos inseridos no tópico pelo &lt;em&gt;Function App A&lt;/em&gt; e inserindo algumas informações dentro de um &lt;em&gt;Azure CosmosDB&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Como bem sabemos, é uma péssima prática de segurança deixar nossos serviços expostos abertamente para consumo, é necessário que tenhamos um processo de autorização para utilização dos mesmos. As &lt;em&gt;Managed Identities&lt;/em&gt; nos permitem fazer uso do &lt;em&gt;RBAC&lt;/em&gt; (&lt;em&gt;Role-Based Access Control&lt;/em&gt;) para controlar o acesso aos recursos!&lt;/p&gt;
&lt;p&gt;Uma vez que criamos um recurso e atribuímos a ele uma &lt;em&gt;Managed Identity&lt;/em&gt; (isso pode ser feito em alguns recursos durante a criação e também após) nós poderemos navegar até os recursos de destino e atribuir à identidade uma &lt;em&gt;role&lt;/em&gt; que nos permita operar aquele recurso. As imagens a seguir mostram como isso é feito.&lt;/p&gt;
&lt;p&gt;Dentro da aba de IAM do recurso, nós:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/tipos-de-identidades-no-entraid/26740404-ba91-4827-a26e-b5a477be5c2d.png&quot; alt=&quot;Selecionamos qual role desejamos que seja atribuída&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/tipos-de-identidades-no-entraid/e5a89d8f-1f98-4ce0-adb2-680696f334da.png&quot; alt=&quot;Nessa etapa selecionamos qual a identidade receberá a role&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dessa forma nós temos um recurso que consome outro da maneira correta, sendo autorizado e seguindo as melhores práticas seguidas pelas empresas.&lt;/p&gt;
&lt;p&gt;Um outro ponto importante para mencionarmos quando falamos sobre as &lt;em&gt;Managed Identities&lt;/em&gt; são os dois tipos existentes.&lt;/p&gt;
&lt;h2 id=&quot;system-assigned-x-user-assigned&quot;&gt;System-Assigned x User-Assigned&lt;/h2&gt;
&lt;p&gt;O conceito das &lt;em&gt;Managed Identities&lt;/em&gt; se mantém para qualquer um dos dois tipos, o que muda neles é o seu ciclo de vida.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;&lt;strong&gt;System-Assigned Managed Identities&lt;/strong&gt;&lt;/em&gt; são criadas diretamente no recurso (no momento de criação dele ou após criado) e estarão atreladas a esse recurso por todo seu ciclo de vida. Isso implica em:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Enquanto o recurso existir, a identidade existirá com ele, caso ele seja excluído, a identidade será excluída junto.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As identidades &lt;em&gt;System-Assigned&lt;/em&gt; podem ser utilizadas em apenas um recurso, não podendo ser reaproveitadas em qualquer outro recurso do mesmo tipo. Elas são dedicadas apenas ao recurso em que foram criadas e como mencionei anteriormente, serão afetadas quando o recurso tiver seu ciclo de vida encerrado.&lt;/p&gt;
&lt;p&gt;Agora, as &lt;em&gt;&lt;strong&gt;User-Assigned Managed Identities&lt;/strong&gt;&lt;/em&gt; acabam por outro lado podendo ser utilizadas em mais de um recurso e não acompanharão todo o ciclo de vida do recurso.&lt;/p&gt;
&lt;p&gt;Elas são criadas como recursos separados, podendo ser visualizadas dentro do Portal do Azure na página de &lt;em&gt;Managed Identities&lt;/em&gt; ou pelo Cloud Shell utilizando o comando:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az identity list&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;O comando acima listará todas as identidades gerenciadas que você tem criadas na plataforma.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Para aplicações, as &lt;em&gt;Managed Identities&lt;/em&gt; são as mais seguras e quando seu uso é possível, são as mais recomendadas, pela facilidade no gerenciamento e também pela ausência de um segredo. As &lt;em&gt;System-Assigned Managed Identities&lt;/em&gt; fornece o maior conforto para os administradores pois o objeto será gerido completamente no seu recurso “pai”. As &lt;em&gt;User-Assigned Managed Identities&lt;/em&gt; ainda que não façam o uso de segredos, perdem para as &lt;em&gt;System-Assigned&lt;/em&gt; devido ao seu ciclo de vida ser gerenciado fora dos recursos, de maneira independente.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;service-principal&quot;&gt;Service Principal&lt;/h1&gt;
&lt;p&gt;Chegando para nosso último tipo de identidade, temos as &lt;em&gt;&lt;strong&gt;Service Principals&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/tipos-de-identidades-no-entraid/c3a8076d-8c8a-48d0-ae73-a16e081464a6.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O conceito das &lt;em&gt;Service Principals&lt;/em&gt; é tão simples quanto os outros modelos, no final das contas ela é uma identidade utilizada para recursos não humanos, ou seja, quase tudo que não seja usuário, mas diferente das &lt;em&gt;Managed Identities&lt;/em&gt;, elas são criadas e gerenciadas em um local e de uma maneira diferente.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;Service Principals&lt;/em&gt; são um objeto do Azure AD (Entra ID). Elas não tem um painel específico para elas onde podemos criar e gerenciar as mesmas dentro do Azure. Elas podem ser criadas através do Portal do Azure, &lt;em&gt;Azure CLI&lt;/em&gt;, &lt;em&gt;Powershell&lt;/em&gt;, &lt;em&gt;Graph API&lt;/em&gt;, entre outras ferramentas.&lt;/p&gt;
&lt;p&gt;Elas serão utilizadas para que aplicações possam se autenticar e ter o consumo dos recursos autorizado. Para realizar a autorização do consumo, poderemos utilizar as &lt;em&gt;roles&lt;/em&gt; dos recursos para atribuir à &lt;em&gt;Service Principal&lt;/em&gt; as permissões necessárias para realizar as operações desejadas.&lt;/p&gt;
&lt;p&gt;Uma diferença importante das &lt;em&gt;Service Principals&lt;/em&gt; para os outros modelos é a forma de autenticação. As &lt;em&gt;Managed Identities&lt;/em&gt; não necessitam a gestão dos segredos da identidade, não é nem possível visualizar essa informação pois ela é gerida completamente pela plataforma. Já nas &lt;em&gt;SPs&lt;/em&gt; nós precisamos nos preocupar com essa questão, pois para utilizar das &lt;em&gt;roles&lt;/em&gt; atribuídas será necessário no nível do código inserir as informações da &lt;em&gt;Service Principal&lt;/em&gt; para uso do SDK do recurso. Essas informações são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Object ID — identificador único utilizado para identificar o objeto dentro do &lt;em&gt;tenant&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Secret (opcional) — chave secreta utilizada como “senha” para autenticação das aplicações no consumo de recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O &lt;em&gt;secret&lt;/em&gt; está marcado como opcional pois também é possível autenticar uma &lt;em&gt;Service Principal&lt;/em&gt; através de certificado, mas essa questão não é o escopo do nosso artigo.&lt;/p&gt;
&lt;p&gt;A criação de uma &lt;em&gt;Service Principal&lt;/em&gt; pode ser realizada através do Portal do Azure na seção do Azure AD em “App Registration” ou pode ser feita através do seguinte comando no Cloud Shell:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;az ad sp create-for-rbac --skip-assignment&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;O comando acima cria uma &lt;em&gt;Service Principal&lt;/em&gt; e retorna no próprio &lt;em&gt;output&lt;/em&gt; do Cloud Shell as informações do objeto criado. Com a propriedade “ &lt;em&gt;— skip-assignment&lt;/em&gt;” não é necessário atribuir uma &lt;em&gt;role&lt;/em&gt; à identidade no momento de criação.&lt;/p&gt;
&lt;p&gt;Dentro dos tipos de identidade de aplicação que apresentamos, essa é a que gera mais riscos de segurança ao seu ambiente, por conta da necessidade de gerenciamento do segredo (quando utilizado) e por conta da necessidade do gerenciamento do ciclo de vida. Como as &lt;em&gt;SPs&lt;/em&gt; não contém nenhum tipo de vínculo com o recurso que a utilizará, é necessário uma boa gestão desse objeto visando evitar que suas credenciais caiam em mãos erradas!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Quando falamos sobre estratégia &lt;em&gt;&lt;strong&gt;Zero Trust&lt;/strong&gt;&lt;/em&gt; é importante pensarmos nos temas relacionados à identidade. Para garantir o &lt;strong&gt;Privilégio Mínimo&lt;/strong&gt; é necessário gerenciar corretamente as identidades e as permissões atribuídas a elas.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que eu tenha conseguido te explicar as diferenças entre os modelos, seus usos, benefícios e também possíveis riscos à segurança do seu ambiente.&lt;/p&gt;
&lt;p&gt;Estou à disposição para responder quaisquer perguntas que você tiver.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>User Risks e Sign-in Risks - Microsoft Entra ID</title><link>https://pedroignacio.dev/post/user-risks-e-sign-in-risks-microsoft-entra-id/</link><guid isPermaLink="true">https://pedroignacio.dev/post/user-risks-e-sign-in-risks-microsoft-entra-id/</guid><description>Com as identidades sendo a primeira barreira de defesa sob o controle do cliente em qualquer ambiente em nuvem, precisamos estabelecer políticas efetivas de segurança que considerem diferentes níveis de risco apresentados ao ambiente e que coletem a ...</description><pubDate>Wed, 03 Jan 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Com as identidades sendo a primeira barreira de defesa sob o controle do cliente em qualquer ambiente em nuvem, precisamos estabelecer políticas efetivas de segurança que considerem diferentes níveis de risco apresentados ao ambiente e que coletem a maior quantidade possíveis de informação. Pensando nisso, podemos potencializar a segurança de nosso ambiente com o Microsoft Entra ID Protection!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-a-primeira-barreira-de-proteção&quot;&gt;Entendendo a primeira barreira de proteção&lt;/h1&gt;
&lt;p&gt;Como mencionado na abertura do artigo, as identidades são a primeira barreira de proteção nos ambientes em nuvem. Mas o que isso quer dizer?&lt;/p&gt;
&lt;p&gt;Nos ambientes em nuvem a segurança física do ambiente não é preocupação do cliente. Essa responsabilidade é 100% exclusiva do &lt;em&gt;cloud service provider&lt;/em&gt;. No modelo de defesa em profundidade (&lt;em&gt;defense in-depth&lt;/em&gt;) a primeira camada é representada pela camada física. Não tendo influência sobre ela, o cliente pode desconsiderá-la da jogada e iniciar a proteção de seu ambiente pela próxima camada, a de identidade.&lt;/p&gt;
&lt;p&gt;O acesso aos nossos recursos em nuvem é feito sempre à partir de um IdP (&lt;em&gt;Identity Provider&lt;/em&gt;). Por padrão, os IdPs utilizados são os do próprio provedor de nuvem (ex: Azure - Entra ID, AWS - AWS IAM), porém é extremamente comum que em uma arquitetura empresarial multi-cloud, a gestão de acesso nos ambientes seja feita por um IdP centralizado, facilitando a gestão dos acessos e seguindo as melhores práticas de IAM.&lt;/p&gt;
&lt;h3 id=&quot;utilizando-o-entra-id-como-idp-empresarial&quot;&gt;Utilizando o Entra ID como IdP empresarial&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/cbae97a2-a54e-41b8-b889-20851455c97f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Considerando o &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; como o IdP de escolha da sua empresa, você poderá usufruir das capacidades de segurança que nele estão presentes. Capacidades essas que deixarão os acessos aos seus ambientes em nuvem e às suas aplicações federadas muito mais seguros!&lt;/p&gt;
&lt;p&gt;Na arquitetura apresentada acima, temos uma visão macro sobre como é representada a gestão de um ambiente multi-cloud com um IdP centralizado. Não entrarei nos detalhes técnicos de configuração, provisionamento de funções (&lt;em&gt;roles&lt;/em&gt;) e de outros objetos, mas com uma solução gerenciando os acessos aos múltiplos ambientes com apenas um conjunto de credenciais, nós teremos não apenas uma gestão mais eficiente do ciclo de vida das identidades, mas como também poderemos identificair os riscos atrelados aos acessos e às credenciais em aplicações de diferentes domínios e em diferentes ambientes!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;user-x-sign-in-risks&quot;&gt;User x Sign-in risks&lt;/h1&gt;
&lt;p&gt;Dentro do &lt;strong&gt;ID Protection&lt;/strong&gt; os riscos são classificados como &lt;em&gt;riscos de usuário&lt;/em&gt; e &lt;em&gt;riscos de login&lt;/em&gt;. Nas seções abaixo você terá mais informações sobre as identificações feitas e sobre os riscos em si.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Algumas detecções de riscos necessitam de uma licença P2 atribuída, enquanto outras são fornecidas de maneira gratuita pela Microsoft.Algumas detecções são feitas apenas no modo online, enquanto outras ocorrem de maneira offline.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Os parágrafos abaixo conterão tabelas com as informações sobre os riscos. Essas tabelas foram retiradas &lt;a href=&quot;https://learn.microsoft.com/en-us/entra/id-protection/concept-identity-protection-risks&quot;&gt;desta&lt;/a&gt; documentação oficial da Microsoft. As tabelas apresentarão em 3 colunas, respectivamente: &lt;strong&gt;a detecção&lt;/strong&gt;, &lt;strong&gt;tipo de detecção&lt;/strong&gt; (&lt;em&gt;offline&lt;/em&gt; ou &lt;em&gt;real-time&lt;/em&gt;) e &lt;strong&gt;o tipo de licença necessária.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Outro fator importante que devemos citar é que por mais que estejamos falando dos riscos identificados e mitigados à partir do Entra ID Protection, algumas detecções citadas abaixo necessitam de outras soluções para garantir sua aplicabilidade (soluções como o &lt;strong&gt;Defender for Endpoint&lt;/strong&gt;).&lt;/p&gt;
&lt;h3 id=&quot;user-risks&quot;&gt;User Risks&lt;/h3&gt;
&lt;p&gt;Os riscos atrelados aos usuários dizem respeito à suas credenciais e também às atividades realizadas na conta.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/a15f436e-7487-4310-9bd8-0cdaf0428bef.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Comentando sobre alguns dos riscos apresentados acima:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atividade anômala: é detectado que as operações realizadas na conta do usuário não são comuns ao seu padrão de uso. Isso pode indicar um possível uso indevido das credenciais daquele usuário;&lt;/li&gt;
&lt;li&gt;Credenciais vazadas: como parte do Entra ID, a Microsoft realiza varreduras em recursos na internet para identificar credenciais vazadas em explorações de vulnerabilidades bem sucedidas;&lt;/li&gt;
&lt;li&gt;(Bônus) Inteligência contra ameaças: capacitando as capacidades de defesa do Microsoft Entra, a solução utiliza de modelos de &lt;em&gt;machine learning&lt;/em&gt; para identificar vetores de ataque que apresentam ameaças à sua conta.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;sign-in-risks&quot;&gt;Sign-in Risks&lt;/h3&gt;
&lt;p&gt;As detecções de login acontecem quando uma tentativa de login é considerada arriscada pela análise da solução.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/50172645-230d-4049-aeb2-39c38cfa4ba9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como fizemos com os &lt;em&gt;user risks&lt;/em&gt;, vamos comentar um pouco sobre alguns dos riscos mencionados acima:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Viagem atípica: utiliza informações sobre a geocalização do usuário de de outras atividades realizadas na plataforma para compreender se os diferentes acessos vem de destinos onde seria impossível o transporte durante o período de tempo aplicado;&lt;/li&gt;
&lt;li&gt;Token anormal: identifica o uso indevido e anormal de um &lt;em&gt;token&lt;/em&gt; de acordo com as características do mesmo. Uma das detecções realizadas é o caso de &lt;em&gt;token replay&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Pulverização de senha (&lt;em&gt;password spray&lt;/em&gt;): múltiplas tentativas malsucedidas de login com credenciais diferentes podem indicar um ataque do tipo &lt;em&gt;password spray&lt;/em&gt;.;&lt;/li&gt;
&lt;li&gt;Acesso em massa a arquivos confidenciais: esse é um dos exemplos de risco detectado com a ajuda de uma solução auxiliar, nesse caso o &lt;strong&gt;Defender for Cloud Apps&lt;/strong&gt;. Essa solução identifica os acessos aos recursos protegidos e sensibiliza o ID Protection.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id=&quot;severidade-dos-riscos&quot;&gt;Severidade dos riscos&lt;/h1&gt;
&lt;p&gt;Antes de seguirmos para a aplicação das políticas é importante entendermos como o Entra ID classifica a severidade dos riscos.&lt;/p&gt;
&lt;p&gt;Tanto os riscos de usuário quanto os riscos de login, são classificados como &lt;strong&gt;baixo&lt;/strong&gt;, &lt;strong&gt;médio&lt;/strong&gt; e &lt;strong&gt;alto&lt;/strong&gt;. Essa classificação é dada de acordo com a avaliação dos pontos de informação coletados pela plataforma e análisado pelos algoritmos de detecção de ameaças implementados pela Microsoft.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;aplicação-das-políticas&quot;&gt;Aplicação das políticas&lt;/h1&gt;
&lt;p&gt;Após compreendermos o modelo de classificação dos riscos, seguiremos para a aplicação das políticas, tanto no modelo antigo quanto no modelo novo.&lt;/p&gt;
&lt;h2 id=&quot;versão-legado&quot;&gt;Versão legado&lt;/h2&gt;
&lt;p&gt;Hoje em dia essas configurações são todas feitas dentro das políticas de acesso condicional. Antigamente, dentro do &lt;em&gt;Identity Protection&lt;/em&gt; tínhamos uma seção específica para criação dessas políticas. Essa seção ainda está ativa, porém ao acessá-la, somos apresentados com o seguinte aviso:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/f1bf4329-6f03-412a-92ff-f372c5b708c6.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/85b2f15c-e50e-445e-a076-073afd6324b5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Aviso esses que menciona a migração das políticas para o &lt;em&gt;Conditional Access&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Neste modelo, era configurada 1 política de &lt;em&gt;user risk&lt;/em&gt; e 1 política de &lt;em&gt;sign-in risk&lt;/em&gt;. Nós selecionávamos os usuários e grupos que iriam sofrer os impactos da política, o risco dela (baixo, médio ou alto) e o controle. A grande diferença entre a política de &lt;em&gt;user risk&lt;/em&gt; e de &lt;em&gt;sign-in risk&lt;/em&gt; é: na detecção de um risco de usuário nós podíamos bloquear o acesso daquele usuário ou aprovar o acesso e requerer uma troca de senha, para as detecções de risco de login era possível bloquear o acesso ou aprovar e requerer o uso de um segundo fator de autenticação.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/d8fcf656-b335-4d7f-bfbd-0a18b4f7c71e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Neste modelo, os times de segurança tinham pouquíssima flexibilidade de proteção e poucos recursos para proteger da maneira correta o ambiente.&lt;/p&gt;
&lt;h2 id=&quot;versão-atual&quot;&gt;Versão atual&lt;/h2&gt;
&lt;p&gt;Nos modelos atuais, utilizamos as políticas de Acesso Condicional (&lt;em&gt;Conditional Access policies&lt;/em&gt;) para implementar os controles de segurança de acordo com a severidade do risco identificado.&lt;/p&gt;
&lt;p&gt;Dentro das políticas de acesso condicional, na seção “Conditions” nós conseguimos configurar qual a severidade do risco e qual tipo de risco aquela política deve monitorar e remediar, como mostra a imagem abaixo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/e6fb8188-dab9-410f-9446-90c25cd482a9.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Somado a isso, nós temos a extensa granularidade de controles que podem ser impostos ao usuário. Controles como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uso de &lt;em&gt;multi-factor authentication&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Acesso feito de dispositivo &lt;em&gt;compliant&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Mudança de senha.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Abaixo uma imagem com todos os controles aplicáveis.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/user-risks-e-sign-in-risks-microsoft-entra-id/18564f8c-a2df-4fad-8a22-ed535b795ef3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Conseguimos aplicar inúmeros controles a mais, isso somado a outros fatores como a localização de onde o usuário está fazendo os acessos, as aplicações acessadas, as plataformas usadas e muito mais!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;melhores-práticas&quot;&gt;Melhores práticas&lt;/h1&gt;
&lt;p&gt;De acordo com as documentações oficiais da Microsoft, para &lt;strong&gt;riscos de usuário&lt;/strong&gt; considerados &lt;strong&gt;alto&lt;/strong&gt;, você deve exigir a troca de senha. Essa implementação conta por padrão com a exigência do uso de &lt;em&gt;MFA&lt;/em&gt; antes da atualização da credencial.&lt;/p&gt;
&lt;p&gt;Para &lt;strong&gt;riscos de login&lt;/strong&gt; identificados como &lt;strong&gt;médio&lt;/strong&gt; ou &lt;strong&gt;alto&lt;/strong&gt;, o uso de &lt;em&gt;MFA&lt;/em&gt; já é suficiente.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Essas são recomendações genéricas e aplicáveis à maioria dos cenários. É importante que você não se prenda apenas ao que diz a documentação e analise seu caso de uso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Algumas aplicações de negócio podem oferecer acesso à recursos de extremo valor, logo as políticas de segurança aplicadas sobre o acesso à essas aplicações deve ser diferente das aplicações de uso geral. Múltiplas camadas de controle de acesso devem ser aplicadas, bem como diferentes níveis de remediação de acordo com o risco detectado.&lt;/p&gt;
&lt;p&gt;É essencial que as suas políticas de acesso condicional estejam bem estruturadas para tratar os casos genéricos e que se enquadram na maioria dos incidentes identificados, porém você deve se manter atento às exceções, aplicações que apresentam alto risco aos ativos da sua empresa. Essas exceções devem ser tratadas com extrema cautela e segurança reforçada!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Depois deste texto, você não apenas está capacitado para promover a segurança do seu ambiente mas também compreendeu a necessidade de se ter um olhar crítico para cada ambiente, não apenas seguir as recomendações padrão.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo e me coloco à disposição para responder suas dúvidas.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Autenticação no consumo de blobs com o Microsoft Entra</title><link>https://pedroignacio.dev/post/usando-o-entra-para-consumo-de-blobs/</link><guid isPermaLink="true">https://pedroignacio.dev/post/usando-o-entra-para-consumo-de-blobs/</guid><description>As storage accounts estão presentes em grande parte das arquiteturas em nuvem pública, devido a sua elasticidade, facilidade no uso e diversidade de recursos. Como qualquer outro recurso, a segurança é prioridade!
Além de controlar a qualidade dos re...</description><pubDate>Tue, 26 Dec 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As &lt;em&gt;storage accounts&lt;/em&gt; estão presentes em grande parte das arquiteturas em nuvem pública, devido a sua elasticidade, facilidade no uso e diversidade de recursos. Como qualquer outro recurso, a segurança é prioridade!&lt;/p&gt;
&lt;p&gt;Além de controlar a qualidade dos recursos que são inseridos na sua &lt;em&gt;storage account&lt;/em&gt;, é essencial que o controle de acesso à esses recursos seja realizado de maneira correta e seguindo as principais práticas recomendadas. Por isso, hoje vamos aprender como configurar a autenticação do Entra para as &lt;em&gt;&lt;strong&gt;Storage Accounts&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;tipos-de-autenticação-para-storage-accounts&quot;&gt;Tipos de autenticação para Storage Accounts&lt;/h1&gt;
&lt;p&gt;Quando estamos planejando a criação das nossas &lt;em&gt;Storage Accounts&lt;/em&gt;, é importante saber que temos mais de um modelo de autenticação disponível para proteger o consumo dos recursos. Os modelos existentes são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Access Keys&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared Access Signature&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Entra ID Authentication&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Os três modelos tem suas vantagens e desvantagens, como tudo na vida, então é importante que você escolha uma opção que cumpra seu papel de negócio, ou seja, permita que o objetivo do projeto seja atingido, mas também que seu ambiente esteja protegido e seus recursos seguros.&lt;/p&gt;
&lt;h2 id=&quot;access-keys&quot;&gt;Access Keys&lt;/h2&gt;
&lt;p&gt;Toda &lt;em&gt;storage account&lt;/em&gt; é criada contendo 2 &lt;em&gt;&lt;strong&gt;Access Keys&lt;/strong&gt;&lt;/em&gt;, essas sendo necessárias para permitir o acesso aos &lt;em&gt;blobs&lt;/em&gt; quando não estamos utilizando a autenticação do Entra.&lt;/p&gt;
&lt;p&gt;Ao acessar sua &lt;em&gt;storage account&lt;/em&gt;, você pode consultar suas &lt;em&gt;access keys&lt;/em&gt; na blade lateral, disponível à esquerda da sua tela. Você encontrará algo parecido com isso:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/4b9094a3-19c7-4a53-bd03-db83324426cb.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ao clicar sobre “&lt;em&gt;Show&lt;/em&gt;” à direita do input “&lt;em&gt;Key&lt;/em&gt;”, você será apresentado com o valor da sua &lt;em&gt;access key&lt;/em&gt;. O valor “&lt;em&gt;Connection string&lt;/em&gt;” é utilizado quando estamos desenvolvendo alguma aplicação que realizará acesso aos &lt;em&gt;blobs&lt;/em&gt; armazenados na &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Essas informações são extremamente sensíveis. Quem tiver posse de uma das chaves da sua storage account, pode trazer ao seu ambiente e aos seus recursos grande risco. Não as compartilhe com ninguém!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As &lt;em&gt;access keys&lt;/em&gt; podem ser utilizadas para permitir o acesso direto aos blobs, porém também são necessárias para habilitação do recurso que falaremos à seguir.&lt;/p&gt;
&lt;h2 id=&quot;shared-access-signatures&quot;&gt;Shared Access Signatures&lt;/h2&gt;
&lt;p&gt;As &lt;em&gt;Shared Access Signatures&lt;/em&gt; ou apenas SAS, são URIs criadas com diversos controles e assinadas por uma das &lt;em&gt;access keys&lt;/em&gt;. Essas URIs visam liberar acesso público à certos recursos da &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Com esses recursos, podemos limitar o escopo de acesso, os objetos que poderão ser acessados, as operações realizadas, determinar uma data de validade da URI de acesso e também controlar a origem do acesso através de endereços e ranges de IP.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note que caso o endereço de IP de origem não seja cadastrado, qualquer usuário que estiver em posse da URI, poderá acessar o recurso destinado.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/2f8f4353-1e0e-4777-9bc8-4bc5e74597e2.png&quot; alt=&quot;Exemplo de SAS token, com suas estruturas explicadas&quot;&gt;&lt;/p&gt;
&lt;p&gt;Outros dois pontos a serem observados são: o &lt;strong&gt;escopo de acesso&lt;/strong&gt; e as &lt;strong&gt;operações&lt;/strong&gt; permitidas. Caso sejam configurados errado, o usuário poderá acessar mais recursos que deveria e também poderá excluir ou modificar os objetos existentes nos contêineres da &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;entra-id&quot;&gt;Entra ID&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/c466f9a0-d689-4914-9b02-164a0de1bd58.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Utilizando o &lt;strong&gt;Microsoft Entra&lt;/strong&gt;, nós podemos utilizar de todas as capacidades de segurança fornecidas pela ferramenta para proteger o consumo dos nossos recursos.&lt;/p&gt;
&lt;p&gt;Utilizando o acesso baseado em função (&lt;em&gt;Role Based Access Control&lt;/em&gt;), podemos atribuir permissões aos usuários de acordo com a necessidade, tendo a tranquilidade de que apenas usuários conhecidos acessarão os recursos da &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Com a autenticação do Entra, o usuário se autenticará e a plataforma receberá um &lt;em&gt;access token&lt;/em&gt;, esse utilizado para verificar as permissões no escopo de acesso requisitado.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Esse modelo apresenta a melhor opção de segurança, pois permite a aplicação do &lt;strong&gt;zero trust&lt;/strong&gt; através do controle de acesso através de função.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;qual-modelo-eu-devo-escolher&quot;&gt;Qual modelo eu devo escolher?&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/7fda114a-b3c4-4b84-a3da-d62b0346746a.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Entendemos os 3 modelos existentes, agora chegou a hora de decidirmos qual é o mais adequado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; - oferece as melhores capacidades de segurança, permite o controle das operações e do escopo, garante que o acesso aos recursos venha apenas de usuários (ou &lt;em&gt;service principals&lt;/em&gt;) autorizados e não requer a publicação do objeto para a internet. &lt;strong&gt;É a melhor solução na maioria dos casos!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shared Access Signature&lt;/strong&gt; - permite o controle das operações e do escopo, podemos configurar um período para a expiração daquele acesso e podemos limitar o acesso à partir de endereços IP específicos. Tem como ponto negativo a dependência das &lt;em&gt;access keys&lt;/em&gt;. &lt;strong&gt;Caso o acesso público ao objeto seja necessário, essa é a melhor opção&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Access Keys&lt;/strong&gt; - por controlar todos os acessos aos objetos da &lt;em&gt;storage account&lt;/em&gt;, o uso das &lt;em&gt;access keys&lt;/em&gt; oferece grande risco ao ambiente caso caiam nas mãos de agentes indevidos. &lt;strong&gt;Não tem seu uso recomendado, apenas em cenários de exceção onde os dois modelos anteriores não são adequados&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Apresentados os cenários e os direcionamentos de uso, vamos comentar brevemente sobre como a autenticação com o Entra pode ser configurada.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;configurando-a-autenticação-com-o-entra&quot;&gt;Configurando a autenticação com o Entra&lt;/h1&gt;
&lt;p&gt;Definido o uso do Entra para autenticação no consumo dos seus &lt;em&gt;blobs&lt;/em&gt;, podemos facilitar a vida dos nossos usuários ao configurarmos a autenticação através do Entra por padrão para acesso através do Portal do Azure.&lt;/p&gt;
&lt;h3 id=&quot;habilitando-a-autenticação-através-do-entra-por-padrão&quot;&gt;Habilitando a autenticação através do Entra por padrão&lt;/h3&gt;
&lt;p&gt;No momento da criação da &lt;em&gt;storage account&lt;/em&gt;, você pode selecionar “&lt;em&gt;Default to Microsoft entra authorization in the Azure portal&lt;/em&gt;” na aba “&lt;em&gt;Advanced&lt;/em&gt;” para que em todas as requisições de acesso aos &lt;em&gt;blobs&lt;/em&gt;, a autenticação através do Entra seja a primeira a ser tentada.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/06742f87-e298-405b-ab4d-0c52ff05a480.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Caso não tenha selecionado a opção no momento de criação, você pode também navegar dentro da sua &lt;em&gt;storage account&lt;/em&gt; até “&lt;em&gt;Configuration&lt;/em&gt;” e ativar a opção.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/usando-o-entra-para-consumo-de-blobs/aa13b4e2-c48b-4f5f-9407-f4d003b1ecd2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;utilizando-o-rbac&quot;&gt;Utilizando o RBAC&lt;/h3&gt;
&lt;p&gt;Utilizando as &lt;em&gt;built-in&lt;/em&gt; ou &lt;em&gt;custom roles&lt;/em&gt;, poderemos aplicar o &lt;strong&gt;Zero Trust&lt;/strong&gt; aos acessos, mantendo nosso ambiente cada vez mais seguro.&lt;/p&gt;
&lt;p&gt;Para vizualização dos objetos via Portal do Azure, a identidade precisará de uma &lt;em&gt;role&lt;/em&gt; que permita a visualização da &lt;em&gt;storage account&lt;/em&gt; (no mínimo) e de uma que permita a leitura do conteúdo existente dentro dela. Aplicando o privilégio mínimo, as duas &lt;em&gt;roles&lt;/em&gt; necessárias para habilitar a vizualização são: &lt;strong&gt;Reader&lt;/strong&gt; com escopo na &lt;em&gt;storage account&lt;/em&gt; e &lt;strong&gt;Storage Blob Data Reader&lt;/strong&gt; com escopo na &lt;em&gt;storage account&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Para acesso dos objetos à partir da sua aplicação, utilizando uma &lt;em&gt;Managed Identity&lt;/em&gt; ou &lt;em&gt;Service Principal&lt;/em&gt;, não é necessário uma &lt;em&gt;role&lt;/em&gt; que permite a visualização do recurso. Você pode fornecer acesso apenas ao contêiner onde os objetos se encontram, seguindo assim o &lt;strong&gt;Princípio do Privilégio Mínimo&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nas aplicações, o uso da MSAL (Microsoft Authentication Library) facilitará as interações com o Entra, permitindo que você concentre seus esforços no desenvolvimento das funcionalidades de negócio!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;À partir de agora você é capaz de proteger suas &lt;em&gt;storage accounts&lt;/em&gt; da melhor maneira possível e não prejudicando a usabilidade e experiência dos seus usuários.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto. Estou à disposição para responder quaisquer dúvidas que tiver.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Uso seguro do Azure Key Vault</title><link>https://pedroignacio.dev/post/uso-seguro-do-azure-key-vault/</link><guid isPermaLink="true">https://pedroignacio.dev/post/uso-seguro-do-azure-key-vault/</guid><description>No último artigo falamos sobre o que são os cofres de senha, apresentamos o Azure Key Vault, comentamos sobre algumas das suas caracterísicas e sobre sua arquitetura. Hoje, olharemos para ele com um olhar de cibersegurança, pensando em como podemos r...</description><pubDate>Wed, 06 Mar 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No &lt;a href=&quot;https://pedroscloudsecurity.com/azure-key-vault&quot;&gt;último artigo&lt;/a&gt; falamos sobre o que são os cofres de senha, apresentamos o &lt;strong&gt;Azure Key Vault&lt;/strong&gt;, comentamos sobre algumas das suas caracterísicas e sobre sua arquitetura. Hoje, olharemos para ele com um olhar de cibersegurança, pensando em como podemos realizar o acesso seguro a esse componente quando estivermos desenvolvendo nossas aplicações.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;exposição-segura&quot;&gt;Exposição segura&lt;/h1&gt;
&lt;p&gt;Por ser uma solução &lt;em&gt;PaaS&lt;/em&gt; (&lt;em&gt;Platform as a Service&lt;/em&gt;), o Azure Key Vault permite que seus usuários se beneficiem do uso dos &lt;strong&gt;Service Endpoints&lt;/strong&gt; e &lt;strong&gt;Private Endpoints&lt;/strong&gt;, recursos disponíveis no Azure e que incrementam a segurança do tráfego roteado para certos recursos. A grande diferença entre eles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Service Endpoints&lt;/strong&gt;: permitem a restrição do consumo do serviço através das &lt;em&gt;virtual networks&lt;/em&gt; do Azure. O recurso (&lt;em&gt;Azure Key Vault&lt;/em&gt;) identifica que o tráfego está vindo da sua &lt;em&gt;virtual network&lt;/em&gt; e avalia o consumo de acordo com as políticas cadastradas. Com essa funcionalidade habilitada, o tráfego será roteado através do &lt;em&gt;backbone&lt;/em&gt; global da Microsoft até o recurso de destino, porém o &lt;em&gt;endpoint&lt;/em&gt; utilizado para acessar o componente, é o &lt;em&gt;endpoint&lt;/em&gt; &lt;strong&gt;público&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private Endpoints&lt;/strong&gt;: suportados pelo &lt;strong&gt;Azure Private Link&lt;/strong&gt;, os &lt;em&gt;private endpoints&lt;/em&gt; oferecem uma maneira de deixar o consumo dos seus recursos completamente privado. O tráfego não será direcionado para fora da &lt;em&gt;Virtual Network&lt;/em&gt; em momento algum, permanecendo completamente privado o caminho todo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/assets/uso-seguro-do-azure-key-vault/55632ef9-6d5c-446b-848b-a687d877b6f7.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O desenho acima mostra de maneira simplificada a utilização dos &lt;em&gt;private endpoints&lt;/em&gt; no consumo do Azure Key Vault.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Para os desenvolvedores, o método de consumo do recurso não mudará. Mesmo com o uso do &lt;em&gt;private endpoint&lt;/em&gt; se faz necessário a utilização do SDK para interação com o recurso e das identidades para autorização do consumo. Os &lt;em&gt;private endpoints&lt;/em&gt; &quot;modificam&quot; o funcionamento do recurso na camada de &lt;em&gt;networking&lt;/em&gt;, não havendo impacto nos times de desenvolvimento.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Sendo o principal recurso para proteção à níve de plataforma, uso dos &lt;em&gt;private endpoints&lt;/em&gt; pode gerar muitos benefícios para as organizações em geral. Alguns deles são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Redução da superfície de ataque&lt;/strong&gt;: pelo fato do &lt;em&gt;vault&lt;/em&gt; estar protegido do acesso externo e disponível apenas para os recursos existentes dentro da &lt;em&gt;Virtual Network&lt;/em&gt; em questão, a possibilidade de vazamento de informações sensíveis é reduzida drásticamente;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Restrição/Controle do Uso&lt;/strong&gt;: permitindo o controle de acesso via origem, os times de segurança conseguem controlar quem pode acessar o cofre também na camada de rede, garantindo a proteção do consumo além da camada de identidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ainda na camada de &lt;em&gt;networking&lt;/em&gt;, o consumo do recurso pode ser protegido através do &lt;strong&gt;Resource Firewall&lt;/strong&gt;, funcionalidade disponível no &lt;em&gt;vault&lt;/em&gt; e que nos permite restringir o acesso à &lt;em&gt;ranges&lt;/em&gt; de IP e endereços IP específicos.&lt;/p&gt;
&lt;p&gt;Quando falamos de proteção de plataforma, não temos muito a explorar além da camada de &lt;em&gt;networking&lt;/em&gt;, porém quando pensamos nas ações relacionadas à identidade, é possível controlarmos o acesso de muitas outras formas, como veremos na próxima seção.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;uso-de-identidades&quot;&gt;Uso de identidades&lt;/h1&gt;
&lt;p&gt;“Pulando” de camada, temos as identidades, que são a porta de entrada para qualquer ambiente em nuvem.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/uso-seguro-do-azure-key-vault/ba53d960-47a4-48df-ab71-2d290aac39aa.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dentro do Azure, nós temos diferentes tipos de identidade que podem ser utilizadas na autorização do consumo dos recursos da plataforma. Em sua grande maioria, a função delas é a mesma, o que diferencia é o modelo de uso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Managed Identities&lt;/strong&gt;: é o modelo mais seguro, porém o mais “limitado”. As &lt;em&gt;Managed Identities&lt;/em&gt; só podem ser utilizadas quando estamos autorizando um recurso da plataforma a consumir outro (ex: uma aplicação sendo executada via &lt;strong&gt;Azure Functions&lt;/strong&gt; precisa consumir uma &lt;em&gt;secret&lt;/em&gt; existente em um &lt;strong&gt;Azure Key Vault&lt;/strong&gt;, para facilitar a gestão dessa identidade, nós atribuímos uma &lt;em&gt;managed identity&lt;/em&gt; ao recurso consumidor e então atrelamos as permissões necessárias à ela);&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Service Principals&lt;/strong&gt;: sendo o modelo que oferece mais flexibilidade, as &lt;em&gt;Service Principals&lt;/em&gt; são utilizadas nos casos onde não conseguimos/devemos autorizar um sserviço de plataforma a consumir o recurso em questão (ex: uma aplicação executada no &lt;strong&gt;Azure Kubernetes Service&lt;/strong&gt; precisa consumir o &lt;strong&gt;Azure Key Vault&lt;/strong&gt; para recuperar uma chave utilizada para criptografar os dados manipulados pela solução, como a aplicação executada no &lt;em&gt;AKS&lt;/em&gt; não é um recurso de plataforma “tangível”, utilizamos as &lt;em&gt;Service Principals&lt;/em&gt;);&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Caso queira saber um pouco mais sobre os tipos de identidade existentes no Azure, tenho esse artigo aqui no &lt;em&gt;blog&lt;/em&gt;: &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://pedroscloudsecurity.com/tipos-de-identidades-no-entraid&quot; style=&quot;pointer-events: none&quot;&gt;Tipos de Identidades no Entra ID&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Os dois tipos de identidade podem ser utilizadas para consumir o &lt;em&gt;Vault&lt;/em&gt;, porém caso as &lt;em&gt;service principals&lt;/em&gt; sejam escolhidas, temos 2 maneiras de realizar a autenticação:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Certificados&lt;/strong&gt;: dentro do &lt;strong&gt;Entra ID&lt;/strong&gt; é possível realizar o &lt;em&gt;upload&lt;/em&gt; de um &lt;strong&gt;certificado&lt;/strong&gt; para ser utilizado como a credencial da identidade para a autenticação;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secrets&lt;/strong&gt;: no momento de cadastramento da identidade, podemos criar uma &lt;strong&gt;secret&lt;/strong&gt; para servir de “senha”, funcionando da mesma maneira que o certificado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O grande impasse entre utilizar &lt;strong&gt;certificados&lt;/strong&gt; e &lt;strong&gt;segredos&lt;/strong&gt; é a necessidade de se ter um processo bem estabelecido para realizar a atualização/rotação dessas credenciais, que podem gerar problemas ao ambiente se não forem bem gerenciadas.&lt;/p&gt;
&lt;p&gt;O uso das &lt;em&gt;Managed Identities&lt;/em&gt; é recomendado pelos &lt;em&gt;guidelines&lt;/em&gt; de segurança da Microsoft, porém sua limitação à autorização apenas através dos recursos de plataforma restringem sua utilização. Em casos onde não se é possível utilizar esse tipo de identidade, devemos seguir com as &lt;em&gt;service principals&lt;/em&gt; e o fator de autenticação de sua escolha.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;rbac&quot;&gt;RBAC&lt;/h1&gt;
&lt;p&gt;Seguindo para a última sessão do texto, temos o &lt;strong&gt;RBAC&lt;/strong&gt; (&lt;em&gt;Role Based Access Control&lt;/em&gt;), recurso que falamos no artigo anterior (&lt;a href=&quot;https://pedroscloudsecurity.com/azure-key-vault&quot;&gt;neste link&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;O modelo de &lt;em&gt;RBAC&lt;/em&gt; do &lt;em&gt;Azure Key Vault&lt;/em&gt; é um pouco diferente do modelo encontrado nos outros recursos do Azure. Primeiro, o &lt;em&gt;vault&lt;/em&gt; é divido em &lt;em&gt;management plane&lt;/em&gt; e &lt;em&gt;data plane&lt;/em&gt; e o controle de acesso é realizado de maneira segregada nos dois paineis.&lt;/p&gt;
&lt;p&gt;Essa arquitetura permite que os times de desenvolvimento tenham acesso exclusivamente aos dados que serão utilizados por eles. Com a criação das políticas de acesso ao &lt;em&gt;data plane&lt;/em&gt;, todos os recursos exisitentes no &lt;em&gt;vault&lt;/em&gt; e não pertencentes ao projeto em questão, estarão seguros dos acessos indevidos possívelmente realizados por outras equipes e até por agentes mal intencionados.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Essa seção é apenas uma menção ao modelo de RBAC que falamos no artigo anterior. Se desejar aprender um pouco mais sobre esse modelo, recomendo a leitura!&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;Os &lt;em&gt;vaults&lt;/em&gt; são extremamente úteis para armazenar informações sensíveis e sua segurança deve sempre ser pensada meticulosamente.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha conseguido contribuir com a segurança do seu ambiente.&lt;/p&gt;
&lt;p&gt;Até mais!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Utilizando o “What if” do Entra ID Conditional Access</title><link>https://pedroignacio.dev/post/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/</link><guid isPermaLink="true">https://pedroignacio.dev/post/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/</guid><description>No último texto falamos sobre a criação das políticas de acesso condicional e como elas podem enriquecer a segurança do seu ambiente. Hoje vamos falar sobre uma funcionalidade que nos permite testar a efetividade das políticas sem gerar impacto algum...</description><pubDate>Tue, 01 Aug 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No último texto falamos sobre a &lt;a href=&quot;https://medium.com/@predoignacio/criando-pol%C3%ADticas-de-acesso-condicional-f93e85bedab9&quot;&gt;criação das políticas de acesso condicional&lt;/a&gt; e como elas podem enriquecer a segurança do seu ambiente. Hoje vamos falar sobre uma funcionalidade que nos permite testar a efetividade das políticas sem gerar impacto algum aos usuários.&lt;/p&gt;
&lt;p&gt;É comum que os times de segurança da sua empresa se preocupem com o funcionamento das políticas existentes. É mais comum do que parece essa “desconfiança” na configuração e isso é resultado de duas coisas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;falta de conhecimento da ferramenta;&lt;/li&gt;
&lt;li&gt;ausência de testes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O primeiro motivo só pode ser superado com treinamento e capacitação dos funcionários da empresa.&lt;/p&gt;
&lt;p&gt;O Entra ID é uma solução utilizada globalmente por empresas dos mais diferentes ramos de atuação e dos mais diferentes tamanhos, além de ter sido criada por uma empresa histórica no mundo da tecnologia e que até hoje consta como uma das empresas mais importantes do mercado.&lt;/p&gt;
&lt;p&gt;Agora, se a sua desconfiança é resultado da falta de testes e provas de que as políticas de acesso condicional realmente funcionam, esse artigo é pra você!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;o-whatif&quot;&gt;O “What If”&lt;/h1&gt;
&lt;p&gt;Como comentado anteriormente, esse recurso do acesso condicional permite testar as políticas desejadas com certas origens, destinos e parâmetros específicos. Essa granularidade nos permite cobrir os mais diversos cenários de acesso.&lt;/p&gt;
&lt;p&gt;Se voltarmos ao texto de criação de políticas podemos analisar quais as “variáveis” captadas pelo Entra ID e disponibilizadas para construção das políticas. Essas variáveis são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Usuários, grupos e recursos&lt;/strong&gt; (identidades) afetados;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recursos de destino&lt;/strong&gt; (aplicações, contextos de autenticação e ações do usuário);&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Condições&lt;/strong&gt; (riscos de login, riscos de usuário, sistema operacional do dispositivo de acesso, local, aplicativo cliente e filtros);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Todas essas variáveis estão disponíveis para a construção do seu teste.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;utilizando-orecurso&quot;&gt;Utilizando o recurso&lt;/h1&gt;
&lt;p&gt;No &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;portal do entra&lt;/a&gt;, no painel de &lt;strong&gt;acesso condicional&lt;/strong&gt; (proteção &gt; acesso condicional) ao entrar na aba de &lt;strong&gt;políticas&lt;/strong&gt;, você vai se deparar com as seguintes opções:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/01a24159-c70b-42c0-9f5f-86aa3d5f3598.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Painel horizontal de opções na aba de políticas&lt;/p&gt;
&lt;p&gt;Clique no botão escrito “&lt;strong&gt;What If&lt;/strong&gt;” e será mostrado o seguinte formulário:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/ed376c27-1809-4811-9b03-ef8a1ff14956.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Neste formulário vamos preencher as informações que gostaríamos que fossem testadas contra as políticas de acesso condicional existentes.&lt;/p&gt;
&lt;p&gt;Se você desejar saber quais políticas existentes afetam acessos de risco &lt;strong&gt;médio&lt;/strong&gt;, você pode filtrar o “risco de entrada” para o valor médio.&lt;/p&gt;
&lt;p&gt;Ou talvez queira identificar quais políticas se aplicam ao presidente e aos diretores da sua empresa, para isso você pode selecioná-los em “Identidade do Usuário ou Carga de trabalho” ou escolher um grupo específico que contenha todos eles.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;resultado&quot;&gt;Resultado&lt;/h1&gt;
&lt;p&gt;Após preencher os campos, de maneira que os usuários escolhidos sejam atingidos pelas regras, basta realizar o teste clicando no botão azul no final da página.&lt;/p&gt;
&lt;p&gt;É importante lembrar que nas políticas de acesso condicional, nós podemos selecionar objetos para serem incluídos e para serem excluídos também. Por esse motivo, ao confirmar os campos preenchidos e solicitar a verificação das políticas, nós receberemos dois resultados:&lt;/p&gt;
&lt;h2 id=&quot;políticas-que-serão-aplicadas&quot;&gt;Políticas que serão aplicadas&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/f98dd111-e076-434b-a5ce-738c11d5f369.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A política acima será aplicada baseada nos filtros indicados no formulário.&lt;/p&gt;
&lt;p&gt;Podemos clicar sobre a política e teremos mais detalhes sobre suas configurações.&lt;/p&gt;
&lt;p&gt;Ao final da linha, podemos ver também o estado da política. Essa em questão está em “somente relatório”, ou seja, não está impactando o acesso dos usuários, mas apenas avaliando se a atividade seria impactada pela política em questão.&lt;/p&gt;
&lt;h2 id=&quot;políticas-que-não-serão-aplicadas&quot;&gt;Políticas que não serão aplicadas&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584/3c433f5f-3b49-4ef9-9432-91a8835c25cb.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Para as políticas que não terão impacto algum no usuário, temos uma aba dedicada.&lt;/p&gt;
&lt;p&gt;Essas políticas podem ser mostradas simplesmente por não terem nenhum tipo de condição que se aplique aos filtros ou pois os usuários selecionados estão na condição de “exclusão” da política.&lt;/p&gt;
&lt;p&gt;Além do nome da política (que também é um link para a própria), podemos visualizar o motivo da política não ser aplicada e como na aba anterior, o estado em que a política se encontra.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;É comum que grandes empresas tenham grandes quantidades de políticas criadas. Isso se dá por diversos motivos, como a mudança nas estratégias de segurança da empresa ou até devido ao cumprimento de normas internas.&lt;/p&gt;
&lt;p&gt;Quando se deparar com um acesso indevido ou quando um usuário estiver tendo dificuldades de acesso por algum tipo de restrição das políticas, lembre desse recurso. O “&lt;em&gt;debug&lt;/em&gt;” facilitará muito o trabalho dos administradores que estiverem tentando entender o motivo do acesso se comportar desta forma.&lt;/p&gt;
&lt;p&gt;Espero que a apresentação dessa simples funcionalidade o ajude a economizar tempo na hora de testar seus acessos.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Utilizando os templates das Políticas de Acesso Condicional do Entra ID</title><link>https://pedroignacio.dev/post/utilizando-os-templates-das-conditional-access-policies/</link><guid isPermaLink="true">https://pedroignacio.dev/post/utilizando-os-templates-das-conditional-access-policies/</guid><description>Visando facilitar a aplicação dos controles de acesso, o Entra ID disponibiliza uma série de templates com os controles mais “comuns” para facilitar sua aplicação. Hoje vamos conhecer a lista de templates e aplicá-las ao nosso ambiente.

Introdução
O...</description><pubDate>Wed, 25 Oct 2023 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Visando facilitar a aplicação dos controles de acesso, o Entra ID disponibiliza uma série de &lt;em&gt;templates&lt;/em&gt; com os controles mais “comuns” para facilitar sua aplicação. Hoje vamos conhecer a lista de &lt;em&gt;templates&lt;/em&gt; e aplicá-las ao nosso ambiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;introdução&quot;&gt;Introdução&lt;/h1&gt;
&lt;p&gt;Os benefícios que as políticas de acesso condicional geram para a empresa já são conhecidos, porém para empresas que estão iniciando sua utilização, muitas vezes os times responsáveis pela segurança dos ambientes não sabem por onde começar. Os novos templates de políticas são um bom começo.&lt;/p&gt;
&lt;p&gt;Visando a implementação dos controles que reforçam a aplicação de padrões de segurança (como o &lt;em&gt;zero trust&lt;/em&gt;), os templates permitem uma configuração simples e rápida para os times, com controles “básicos” para reforçar a segurança no seu ambiente.&lt;/p&gt;
&lt;p&gt;Hoje vamos falar sobre as categorias das políticas existentes, alguns controles que elas reforçam no ambiente, como aplicar algumas dessas políticas e os benefícios de tê-las configuradas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Para saber mais sobre as políticas de acesso condicional, acesse &lt;a href=&quot;https://predoignacio.medium.com/criando-pol%C3%ADticas-de-acesso-condicional-f93e85bedab9&quot;&gt;este link&lt;/a&gt;!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;visualizando-as-políticas&quot;&gt;Visualizando as políticas&lt;/h1&gt;
&lt;p&gt;Acessando o &lt;a href=&quot;http://entra.microsoft.com&quot;&gt;Portal do Entra&lt;/a&gt; e navegando até a aba de &lt;em&gt;Conditional Access&lt;/em&gt; (abaixo de &lt;em&gt;Protection&lt;/em&gt;) nós nos encontramos com a opção “Create new policy from templates”. Clique sobre ela e vamos estudar as políticas existentes.&lt;/p&gt;
&lt;p&gt;Logo de início, nos deparamos com a seguinte imagem:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-os-templates-das-conditional-access-policies/800693c3-ec84-4a58-a86f-976a57ed9338.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Através deste painel nós podemos visualizar as categorias nas quais as políticas foram divididas e já temos também uma breve descrição dos controles aplicados por cada uma.&lt;/p&gt;
&lt;p&gt;Vamos aproveitar essa política que está selecionada e clicar sobre a opção “&lt;em&gt;View&lt;/em&gt;”.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Você também pode realizar o &lt;em&gt;download&lt;/em&gt; do template em formato JSON, formato utilizado pelo Entra ID para exportar e importar novas políticas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À direita da sua tela uma seção foi aberta. Essa seção demonstra as configurações realizadas na política. As sessões demonstradas são as mesmas encontradas no formulário que utilizamos para construir as políticas do zero.&lt;/p&gt;
&lt;p&gt;Essa política que selecionamos aplica um controle básico em contas com privilégios de administrador. Contas que contém alto nível de privilégio de acesso aos recursos, devem ser protegidas por camadas adicionais além do login. Essa política exige que usuários que contém as &lt;em&gt;roles&lt;/em&gt; mostradas abaixo realizem a autenticação multi-fator disponível para eles.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-os-templates-das-conditional-access-policies/0d58dfd7-f240-4eb7-9d88-97ffeeb88bff.png&quot; alt=&quot;Lista de roles privilegiadas afetadas pela política&quot;&gt;&lt;/p&gt;
&lt;p&gt;Se navegarmos até a opção “&lt;em&gt;Emerging threats&lt;/em&gt;” nós veremos que temos apenas uma opção disponível. O template “&lt;em&gt;Require phishing-resistant multifactor authentication for admins&lt;/em&gt;” visa aplicar controles que garantem a utilização da autenticação multi-fator por administradores, porém através de mecanismos resistentes à &lt;em&gt;phishing&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phishing&lt;/strong&gt; é uma forma de ataque que visa obter as credenciais de certo usuário. Isso pode ser feito de diversas maneiras, como: e-mails enganosos, engenharia social, entre outras maneiras.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Os mecanismos de autenticação resistentes a &lt;em&gt;phishing&lt;/em&gt; disponíveis no Entra ID são: &lt;em&gt;&lt;strong&gt;certificados&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;FIDO2 key&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;Windows Hello for Business&lt;/strong&gt;&lt;/em&gt;. Essa política de acesso condicional exige que os usuários com &lt;em&gt;roles&lt;/em&gt; privilegiadas realizem a autenticação multi-fator utilizando um desses métodos. Se aplicada, o usuário com privilégios NÃO conseguirá utilizar nenhum dos outros métodos para autenticação multi-fator existentes no Entra, apenas os aceitos por essa política.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Esse controle sobre quais dispositivos de autenticação multi-fator o usuário poderá utilizar é feito através de um recurso chamado &lt;strong&gt;Authentication Strenghts&lt;/strong&gt;, que permite agrupar diferentes fatores de autenticação.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vimos que as políticas existentes já nos permitem aplicar uma série de controles básicos ao nosso ambiente. Agora vamos ao simples processo de ativação de uma delas.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;aplicando-uma-política-em-seuambiente&quot;&gt;Aplicando uma política em seu ambiente&lt;/h1&gt;
&lt;p&gt;Após escolher da lista de funções disponível a que você deseja aplicar, basta selecionar a opção “&lt;em&gt;Review + Create&lt;/em&gt;”. Você será levado para uma página que o permitirá alterar o nome da política e também selecionar o seu estado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/utilizando-os-templates-das-conditional-access-policies/a0acab71-b440-424f-8746-8758d2a2b71e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;É importante deixar claro que para conseguir ativar uma política de acesso condicional, é necessário que o &lt;em&gt;security defaults&lt;/em&gt; esteja desativado em seu &lt;em&gt;tenant&lt;/em&gt;, caso contrário a criação da política só poderá ser feita se estiver desligada ou no estado &lt;em&gt;report-only&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ao clicar sobre o botão “&lt;em&gt;Create&lt;/em&gt;” a sua política estará criada e no estado que foi definido!&lt;/p&gt;
&lt;p&gt;Caso deseje testá-la, você pode utilizar um recurso do Entra chamado “What If”. Te explico tudo que precisa saber sobre esse recurso e como utilizá-lo &lt;a href=&quot;https://predoignacio.medium.com/utilizando-o-what-if-do-entra-id-conditional-access-ee226dedb584&quot;&gt;neste artigo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pronto! Em questão de segundos você fortaleceu a segurança do seu ambiente, precisando de apenas alguns cliques e sem a necessidade de inúmeras reuniões para criação e configuração das políticas.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As políticas de acesso condicional realmente são extremamente importantes para a garantia de segurança no ambiente em nuvem pública, então espero que este artigo tenha agregado valor à sua jornada e acima de tudo, tenha permitido que você reforçasse a segurança do seu perímetro.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Windows containers in Kubernetes</title><link>https://pedroignacio.dev/post/windows-containers-in-kubernetes/</link><guid isPermaLink="true">https://pedroignacio.dev/post/windows-containers-in-kubernetes/</guid><description>Nós sabemos que boa parcela da infraestrutura que suporta as aplicações que mais utilizamos é baseada em sistemas Microsoft. Com o advento das tecnologias cloud native como o kubernetes, esses componentes parecem ter ficado para trás, porém isso não ...</description><pubDate>Tue, 17 Dec 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nós sabemos que boa parcela da infraestrutura que suporta as aplicações que mais utilizamos é baseada em sistemas Microsoft. Com o advento das tecnologias &lt;em&gt;cloud native&lt;/em&gt; como o &lt;em&gt;kubernetes&lt;/em&gt;, esses componentes parecem ter ficado para trás, porém isso não é totalmente verdade. Visando possibilitar a modernização dos sistemas baseados em &lt;em&gt;windows&lt;/em&gt;, temos no &lt;em&gt;kubernetes&lt;/em&gt; o suporte para &lt;em&gt;&lt;strong&gt;Windows Containers&lt;/strong&gt;&lt;/em&gt;, e é sobre ele que iremos falar hoje!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;motivadores&quot;&gt;Motivadores&lt;/h1&gt;
&lt;p&gt;Como comentado brevemente na introdução do artigo, uma boa parcela dos sistemas web que estão em execução hoje em dia rodam em ambientes &lt;em&gt;Microsoft&lt;/em&gt;, especialmente em ambientes &lt;em&gt;windows&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Dito isso, as razões que você pode considerar para executar &lt;em&gt;containers windows&lt;/em&gt; em um ambientes &lt;em&gt;kubernetes&lt;/em&gt; irão variar conforme as necessidades do seu negócio, ficando a seu critério a tomada de decisão referente ao direcionamento de uso dessa arquitetura.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/windows-containers-in-kubernetes/df315408-6026-44d4-80b9-21804217573f.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Um motivador muito comum para escolha dessa arquitetura é a falta de tempo para reformulação de uma aplicação que hoje já é executada em ambiente &lt;em&gt;Microsoft&lt;/em&gt; e que sofreu certo tipo de evolução, atingindo a marca de ser containerizada. Executar essa aplicação em &lt;em&gt;kubernetes&lt;/em&gt; pode trazer benefícios que um monolíto em um &lt;em&gt;windows server&lt;/em&gt; não poderia fornecer, como a capacidade de escalabilidade horizontal.&lt;/p&gt;
&lt;p&gt;Outro ponto também importante e frequentemente considerado na tomada de decisão é o uso de biblioteca do sistema. Caso sua aplicação utilize funcionalidades fornecidas a nível de sistema operacional, executar sua aplicação em um ambiente &lt;em&gt;linux&lt;/em&gt; retirará recursos essenciais para o funcionamento do serviço, a não ser que seu código tenha sido previamente refatorado.&lt;/p&gt;
&lt;p&gt;Em grandes empresas, onde o parque tecnológico é muito grande, é comum vermos diversas tecnologias diferentes sendo utilizadas para o mesmo propósito. Para reduzir essa complexidade, utilizar um orquestrador centralizado poderá economizar muita dor de cabeça dos times de tecnologia.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;características-técnicas&quot;&gt;Características técnicas&lt;/h1&gt;
&lt;p&gt;Como qualquer outra solução, os containers windows tem suas particularidades. Já há algum tempo, o ecossistema do &lt;em&gt;kubernetes&lt;/em&gt; foi preparado para permitir a execução de containers windows, garantindo o suporte da solução.&lt;/p&gt;
&lt;p&gt;Para habilitar essa execução o primeiro passo é ter em seu &lt;em&gt;cluster&lt;/em&gt; &lt;em&gt;&lt;strong&gt;nodes&lt;/strong&gt;&lt;/em&gt; que executem o sistema operacional &lt;em&gt;windows&lt;/em&gt;. Esse é um pré requisito extremamente necessário dado que não será possível executar seu container sem ele.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Gosto de trazer esse ponto logo de cara pois a grande maioria dos &lt;em&gt;clusters&lt;/em&gt; é composto apenas de &lt;em&gt;nodes&lt;/em&gt; que executam &lt;em&gt;linux&lt;/em&gt;. É importante garantir a execução de pelo menos um &lt;em&gt;node windows&lt;/em&gt; para possibilitar a criação dos recursos necessários.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tendo em mente uma arquitetura produtiva que faça uso de &lt;em&gt;nodes windows&lt;/em&gt; e &lt;em&gt;linux&lt;/em&gt;, é interessante separar os &lt;em&gt;nodes&lt;/em&gt; do seu &lt;em&gt;cluster&lt;/em&gt; de alguma forma que permita que o seu time consiga identificar qual o sistema operacional executado naquele &lt;em&gt;node&lt;/em&gt;, evitando dessa forma muita dor de cabeça em cenários de &lt;em&gt;troubleshooting&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/windows-containers-in-kubernetes/189d0ca7-33f7-401d-9926-e51f94c673f0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Uma solução para esse cenário é utilizar nos &lt;em&gt;nodes&lt;/em&gt; os chamados &lt;em&gt;&lt;strong&gt;node taints&lt;/strong&gt;&lt;/em&gt;, que nos permitem &lt;em&gt;taggear&lt;/em&gt; os &lt;em&gt;nodes&lt;/em&gt; conforme desejado e selecionarmos através das &lt;em&gt;labels&lt;/em&gt; onde desejamos que as aplicações tenham o &lt;em&gt;deployment&lt;/em&gt; feito.&lt;/p&gt;
&lt;p&gt;Com os &lt;em&gt;nodes taggeados&lt;/em&gt; podemos utilizar no &lt;em&gt;scheduling&lt;/em&gt; dos &lt;em&gt;pods&lt;/em&gt; os &lt;em&gt;Node Selectors&lt;/em&gt;, que nos permitirão selecionar quais &lt;em&gt;hosts&lt;/em&gt; deverão receber aqueles &lt;em&gt;pods&lt;/em&gt;. No cenário apresentado, os &lt;em&gt;nodes&lt;/em&gt; selecionados serão os que tem como sistema operacional o &lt;em&gt;windows&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;outros-pontos-para-ficar-de-olho&quot;&gt;Outros pontos para ficar de olho&lt;/h1&gt;
&lt;p&gt;Os reais motivadores para se utilizar &lt;em&gt;containers windows&lt;/em&gt; em ambientes &lt;em&gt;kubernetes&lt;/em&gt; já foram discutidos, mas de forma resumida, eles são “pessoais”, devendo ser determinados dentro da sua organização.&lt;/p&gt;
&lt;p&gt;O que nós não podemos deixar de comentar é: &lt;strong&gt;existem diferenças que não podem ser deixadas de lado&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A construção de sistemas que utilizam como base um ambiente &lt;em&gt;linux&lt;/em&gt; é totalmente diferente dos que utilizam ambientes &lt;em&gt;windows&lt;/em&gt;. Não são todas as funcionalidades que estão disponíveis e as APIs não foram completamente estendidas.&lt;/p&gt;
&lt;p&gt;Consultando diferentes fóruns na &lt;em&gt;internet&lt;/em&gt;, algumas das diferenças mais notáveis são:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permissionamento em arquivos - é configurado em um modelo de &lt;em&gt;ACL&lt;/em&gt; (&lt;em&gt;Access Control Lists&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;&lt;em&gt;File path&lt;/em&gt; - (quem nunca teve problema com isso, rs) onde utilizando &lt;em&gt;windows&lt;/em&gt;, representamos os &lt;em&gt;paths&lt;/em&gt; com a barra ao contrário (&lt;strong&gt;\&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esquecendo um pouco esses pontos de atenção, gostaria de mencionar o incentivo que a comunidade vem tendo para evoluir esse cenário. Constantemente me pego lendo as &lt;em&gt;releases notes&lt;/em&gt; das novas versões do &lt;em&gt;kubernetes&lt;/em&gt; e frequentemente encontro menções a novas &lt;em&gt;features&lt;/em&gt; que foram implementadas e que tem suporte para ambientes &lt;em&gt;windows&lt;/em&gt; containerizados.&lt;/p&gt;
&lt;p&gt;Portanto, independente do quão polêmico é o uso de &lt;em&gt;windows&lt;/em&gt; em &lt;em&gt;kubernetes&lt;/em&gt; é importante sabermos que a cada dia que se passa, essa combinação de tecnologias se torna ainda mais viável, abrindo as possibilidades para os mais diversos cenários que podemos encontrar!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Por menos convencional que seja, os &lt;em&gt;&lt;strong&gt;containers Windows&lt;/strong&gt;&lt;/em&gt; apresentam uma alternativa a execução de &lt;em&gt;workloads&lt;/em&gt; em ambientes &lt;em&gt;kubernetes&lt;/em&gt;. Você não precisa necessáriamente os utilizar, porém é interessante conhecer a possibilidade, que pode vir a ser útil a qualquer momento.&lt;/p&gt;
&lt;p&gt;Muito obrigado por acompanhar até aqui, caso tenha alguma dúvida não deixe de me contatar.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Zero Trust: identity at the center</title><link>https://pedroignacio.dev/post/zero-trust-identity-at-the-center/</link><guid isPermaLink="true">https://pedroignacio.dev/post/zero-trust-identity-at-the-center/</guid><description>Nas últimas semanas falamos sobre um tema constantemente abordado nas discussões sobre cibersegurança, o Zero Trust. Ao nos aprofundarmos no tema, percebemos que entre os três pilares que regem o conceito, temos 1 propriedade em comum, as Identidades...</description><pubDate>Wed, 01 May 2024 03:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nas últimas semanas falamos sobre um tema constantemente abordado nas discussões sobre cibersegurança, o &lt;strong&gt;Zero Trust&lt;/strong&gt;. Ao nos aprofundarmos no tema, percebemos que entre os três pilares que regem o conceito, temos 1 propriedade em comum, as &lt;strong&gt;Identidades&lt;/strong&gt;. Todos os controles implementados avaliam de alguma maneira a identidade do consumidor, sendo ele uma aplicação ou um usuário. Hoje vamos falar sobre como as identidades se aplicam dentro do conceito e quais controles podemos aplicar utilizando o &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;importância-do-zero-trust&quot;&gt;Importância do Zero Trust&lt;/h1&gt;
&lt;p&gt;![](&lt;a href=&quot;https://cdn-dynmedia-1.microsoft.com/is/image/microsoftcorp/RWIwt2_tbmnl_en-us?scl=1&quot;&gt;https://cdn-dynmedia-1.microsoft.com/is/image/microsoftcorp/RWIwt2_tbmnl_en-us?scl=1&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;A guinada das empresas para a nuvem pública levantou uma série de preocupações para os times de segurança.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Com menos controle sobre o ambiente, como será possível garantir a segurança em todas as etapas do processo?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Esse questionamento é gerado pela experiência dos administradores em manter ambientes próprios, onde o controle de acesso à infraestrutura era de completa responsabilidade da empresa, devendo garantir a proteção do acesso físico e também dos acessos lógicos.&lt;/p&gt;
&lt;p&gt;Essa perspectiva foi alterada com a chegada da nuvem pública e seu modelo de &lt;strong&gt;responsabilidade compartilhada&lt;/strong&gt;. Agora, os administradores e times de segurança só precisam se preocupar com o acesso lógico aos seus ambientes e soluções. Essa “redução” de responsabilidade pode representar uma maior facilidade na manutenção dos ambientes, porém para os usuários de ambientes em nuvem mais experientes, essa afirmação é completamente &lt;strong&gt;enganosa&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Com isso estabelecido, podemos tratar do “novo” modelo de segurança recomendado para os ambientes em nuvem pública, saindo do modelo de &lt;strong&gt;3 camaddas&lt;/strong&gt; e chegando com o modelo &lt;strong&gt;Zero Trust&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;identidade-nos-3-pilares&quot;&gt;Identidade nos 3 pilares&lt;/h1&gt;
&lt;p&gt;Centralizando nossa estratégia de segurança nas identidades, chegou a hora de avaliarmos o comportamento de cada um dos princípios e também a aplicação de alguns controles que nos permitirão ter sucesso em nossa implementação.&lt;/p&gt;
&lt;h2 id=&quot;minimum-privilege&quot;&gt;Minimum Privilege&lt;/h2&gt;
&lt;p&gt;Toda e qualquer operação dentro do nosso ambiente será executado por uma identidade, que terá o permissionamento necessário para executar tal ação. Independente do tipo de identidade utilizada (&lt;em&gt;humana&lt;/em&gt; para ações executadas por usuários e &lt;em&gt;sistêmica&lt;/em&gt; para atividades comandadas por aplicações), sempre teremos uma conta por trás da ação, permitindo primeiramente a autenticação e posteriormente a autorização da credencial.&lt;/p&gt;
&lt;p&gt;Pensando na execução da estratégia e implementação do pilar, temos o &lt;strong&gt;RBAC&lt;/strong&gt; (&lt;em&gt;Role Based Access Control&lt;/em&gt;) como principal “aliado”. Ao utilizarmos o mecanismo de &lt;em&gt;RBAC&lt;/em&gt; do nosso &lt;em&gt;Cloud Provider&lt;/em&gt; é possível granularizar o acesso aos recursos da plataforma, sejam eles feitos por usuários humanos ou contas de sistema.&lt;/p&gt;
&lt;p&gt;Atribuindo acesso apenas ao escopo necessário e com as permissões controladas para que a identidade possa realizar as ações requeridas, nós reduzimos a capacidade de danos que podem ser feitos ao nosso ambiente, caso aquela credencial seja comprometida ou o usuário por trás dela tenha más intenções.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/zero-trust-identity-at-the-center/12c54640-dbd6-48c8-98a5-442e3c8cc1b1.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O simples desenho acima mostra a aplicação das &lt;em&gt;&lt;strong&gt;roles&lt;/strong&gt;&lt;/em&gt; em diversos tipos de identidades (e trambém grupos) e seu uso para acessar os recursos da plataforma. Temos também o uso do &lt;em&gt;&lt;strong&gt;PIM&lt;/strong&gt;&lt;/em&gt;, feito para acessos privilegiados dentro do &lt;strong&gt;Azure&lt;/strong&gt; e do &lt;strong&gt;Entra&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;verify-explicitly&quot;&gt;Verify Explicitly&lt;/h2&gt;
&lt;p&gt;O nosso segundo pilar exige a validação de todas as requisições feitas para a plataforma, independente de quem esteja fazendo.&lt;/p&gt;
&lt;p&gt;Para requisições feitas para as APIs do &lt;em&gt;cloud provider&lt;/em&gt; esse conceito é aplicado por padrão. Todas as chamadas exigem que as credenciais do usuário que está acessando o recurso, sejam validadas. Quando utilizamos identidades sistêmicas (tanto &lt;em&gt;&lt;strong&gt;service principalls&lt;/strong&gt;&lt;/em&gt; quanto &lt;em&gt;&lt;strong&gt;managed identities&lt;/strong&gt;&lt;/em&gt;), as validações são as mesmas, sendo feitas pelo &lt;strong&gt;Entra&lt;/strong&gt; a cada chamada.&lt;/p&gt;
&lt;p&gt;O desenho abaixo mostra de maneira simplificada e sem detalhes de implementação, como as requisições são feitas e autorizadas pelo &lt;em&gt;IdP&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/zero-trust-identity-at-the-center/97a9d71e-5129-4e3b-80b2-3b9f72eb9df5.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As chamadas à plataforma são feitas utilizando um &lt;em&gt;access_token&lt;/em&gt;, gerado pelo &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt; e vaildado a cada passo da jornada.&lt;/p&gt;
&lt;h2 id=&quot;assume-breach&quot;&gt;Assume Breach&lt;/h2&gt;
&lt;p&gt;O último dos pilares determina que devemos tratar todo o nosso ambiente como “hostil”, assumindo que todos os acessos são &lt;strong&gt;inseguros&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A aplicação desse princípio permite assegurar que a identidade que está realizando o acesso é de fato uma identidade válida e poderá ter sua requisição permitida após todas as validações necessárias.&lt;/p&gt;
&lt;p&gt;Dentro da plataforma, outros controles devem ser aplicados para satisfazer esse pilar, porém com as nossas identidades, deveremos validar diferentes pontos de informação para garantir que aquela conta não está sendo utilizada indevidamente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/zero-trust-identity-at-the-center/0a845b78-fb10-4e0b-9838-2b32b21263c2.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O uso de algumas dessas funcionalidades requer a adesão de recursos extras, como &lt;strong&gt;licenças&lt;/strong&gt; do Entra e também o &lt;strong&gt;Microsoft Intune&lt;/strong&gt;, para gestão dos dispositivos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;garantindo-os-controles-com-o-microsoft-entra-id&quot;&gt;Garantindo os controles com o Microsoft Entra ID&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/assets/zero-trust-identity-at-the-center/90d26337-df67-41b9-8838-c87be0027d07.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Na seção anterior falamos sobre os pilares que compõem o &lt;strong&gt;Zero Trust&lt;/strong&gt; e como as identidades podem se tornar o centro de cada um deles. Utilizando o &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;, podemos implementar controles robustos, que permitirão proteger o acesso aos nosso recursos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Azure RBAC&lt;/strong&gt; e &lt;strong&gt;Entra RBAC&lt;/strong&gt;: utilizados para permissionar o acesso aos recursos, o acesso baseado em funções do Azure e do Entra nos permite aplicar o &lt;strong&gt;minimum privilege&lt;/strong&gt;, oferecendo diferentes escopos de acesso e níveis de privilégio;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificados&lt;/strong&gt;, &lt;strong&gt;Credenciais&lt;/strong&gt; e &lt;strong&gt;Passwordless&lt;/strong&gt;: para o &lt;strong&gt;verify explicitly&lt;/strong&gt; podemos configurar para a identidade diferentes tipos de autenticação. Para identidades de aplicação, temos disponíveis apenas as credenciais e certificados, porém para contas humandas, podemos configurar todas as opções existentes;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conditional Access&lt;/strong&gt;: recurso utilizado em todos os pilares, as políticas de acesso condicional nos permitem avaliar uma série de informações sobre um acesso feito por uma identidade. É com essas políticas que nós poderemos validar a origem da chamada feita pela identidade, o dispositivo que está sendo utilizado, o risco da atividade, entre outras informações.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses controles somados às soluções existentes do Azure (como as &lt;strong&gt;Azure Policies&lt;/strong&gt;) garantirão a excelência da postura de segurança da sua organização, bem como a boa operação das jornadas de negócio!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Identidade é um tema quente nas comunidades de cibersegurança, por isso é importante que você e sua organização estejam preparados para aplicar os controles mais modernos com o intuito de proteger seu ambiente da melhor maneira possível.&lt;/p&gt;
&lt;p&gt;Espero que de alguma forma eu tenha conseguido contribuir com a melhora na segurança do seu ambiente e que tenha gostado do texto.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated>Sat Apr 18 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</updated></item><item><title>Markdown Example</title><link>https://pedroignacio.dev/post/markdown/</link><guid isPermaLink="true">https://pedroignacio.dev/post/markdown/</guid><description>Check out how markdown is rendered!</description><pubDate>Thu, 09 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is an example blog post!&lt;/p&gt;
&lt;h1 id=&quot;heading-1&quot;&gt;Heading 1&lt;/h1&gt;
&lt;p&gt;This is an example lil thingy wow look at me!&lt;/p&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;Heading 2&lt;/h2&gt;
&lt;h3 id=&quot;heading-3&quot;&gt;Heading 3&lt;/h3&gt;
&lt;h4 id=&quot;heading-4&quot;&gt;Heading 4&lt;/h4&gt;
&lt;h5 id=&quot;heading-5&quot;&gt;Heading 5&lt;/h5&gt;
&lt;h6 id=&quot;heading-6&quot;&gt;Heading 6&lt;/h6&gt;
&lt;p&gt;I’m baby tumblr deep v franzen &lt;a href=&quot;https://google.com&quot;&gt;umami hammock&lt;/a&gt; scenester retro VHS, pop-up truffaut tacos polaroid gochujang. Jean ugh &lt;em&gt;vexillologist snackwave keytar williamsburg bitters pinterest&lt;/em&gt;. Photo booth schlitz quinoa tbh edison bulb vexillologist occupy single-origin dreamcatcher. &lt;strong&gt;Chartreuse meggings gochujang synth.&lt;/strong&gt; Narwhal green juice snackwave thundercats kickstarter XOXO deep v.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;numbered&lt;/li&gt;
&lt;li&gt;list&lt;/li&gt;
&lt;li&gt;of&lt;/li&gt;
&lt;li&gt;items&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hello there, welcome to my list.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;list&lt;/li&gt;
&lt;li&gt;of&lt;/li&gt;
&lt;li&gt;items
&lt;ul&gt;
&lt;li&gt;nested&lt;/li&gt;
&lt;li&gt;list&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;wow&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;hello-babies-i-think-that-you-need-to-understand-what-a-long-line-length-is&quot;&gt;Hello, babies, I think that you need to understand what a long line length is&lt;/h2&gt;
&lt;p&gt;V franzen umami hammock scenester retro VHS, pop-up truffaut tacos polaroid heirloom gochujang.&lt;/p&gt;
&lt;ul class=&quot;contains-task-list&quot;&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; checked disabled&gt; hello&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; disabled&gt; these&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; checked disabled&gt; are&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; disabled&gt; tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;bold&lt;/strong&gt; &lt;em&gt;italic&lt;/em&gt;
&lt;strong&gt;&lt;em&gt;bold and italic&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#545454;font-style:italic&quot;&gt;// This is an example of some React&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;useEffect&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt; =&gt;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#C792EA&quot;&gt;	let&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; isCurrent&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FF9CAC&quot;&gt; true&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;	if&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;isCurrent&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; ===&lt;/span&gt;&lt;span style=&quot;color:#FF9CAC&quot;&gt; true&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#82AAFF&quot;&gt;		fetch&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#C3E88D&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#F07178&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF;font-style:italic&quot;&gt;	return&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; ()&lt;/span&gt;&lt;span style=&quot;color:#C792EA&quot;&gt; =&gt;&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt;		isCurrent&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FF9CAC&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;	};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;color:#EEFFFF&quot;&gt; [])&lt;/span&gt;&lt;span style=&quot;color:#89DDFF&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Language-less:&lt;/p&gt;
&lt;pre class=&quot;astro-code material-theme-darker&quot; style=&quot;background-color:#212121;color:#EEFFFF; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;useEffect(() =&gt; { // wow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  let isCurrent = true;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  if (isCurrent === true) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  	fetch(&apos;...&apos;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  return () =&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  	isCurrent = false;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}, [])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A horizontal line:&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Some inline &lt;code&gt;code&lt;/code&gt; between normal text&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A blockquote, lorem ipsum dolor&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Just some normal text, wow.&lt;/p&gt;
&lt;hr&gt;

















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Example table&lt;/th&gt;&lt;th&gt;Example things&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;What&lt;/td&gt;&lt;td&gt;how&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Why&lt;/td&gt;&lt;td&gt;when&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Okay, that’s it! Good luck! Write more! Follow your dreams!&lt;/p&gt;</content:encoded><updated/></item><item><title>Exposição pública de objetos, é uma boa ideia?</title><link>https://pedroignacio.dev/post/exposicao-publica-de-objetos-e-uma-boa-ideia/</link><guid isPermaLink="true">https://pedroignacio.dev/post/exposicao-publica-de-objetos-e-uma-boa-ideia/</guid><description>Nós, engenheiros/arquitetos de nuvem pública, estamos acostumados com os benefícios gerados pelo uso de uma solução de storage (como o Azure Storage e o AWS S3). Comumente considerado um benefício, a possibilidade de exposição pública dos objetos per...</description><pubDate>Tue, 12 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nós, engenheiros/arquitetos de nuvem pública, estamos acostumados com os benefícios gerados pelo uso de uma solução de &lt;em&gt;storage&lt;/em&gt; (como o &lt;strong&gt;Azure Storage&lt;/strong&gt; e o &lt;strong&gt;AWS S3&lt;/strong&gt;). Comumente considerado um benefício, a possibilidade de exposição pública dos objetos permite que a solução aproveite a escalabilidade e alta disponibilidade nativa do recurso, mas como fica a segurança? Quais as preocupações existentes em uma solução que expõe seus objetos para a internet? É sobre esse assunto que vamos falar hoje!&lt;/p&gt;
&lt;hr&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Ao longo do texto, alguns termos farão referência às soluções de &lt;em&gt;storage&lt;/em&gt; em nuvem da &lt;strong&gt;Azure&lt;/strong&gt; e &lt;strong&gt;AWS&lt;/strong&gt;, porém os conceitos podem ser aplicados em qualquer outra solução de &lt;em&gt;storage&lt;/em&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;motivações&quot;&gt;Motivações&lt;/h1&gt;
&lt;p&gt;Os times de negócio apresentam aos arquitetos as mais diferentes necessidades. Todo o trabalho feito pelos times de tecnologia tem o intuito de atender da melhor forma a demanda de negócio e no final do &lt;em&gt;pipeline&lt;/em&gt;, o cliente final.&lt;/p&gt;
&lt;p&gt;Os clientes podem se beneficiar do uso de soluções de &lt;em&gt;storage&lt;/em&gt; para armazenamento de objetos estáticos, visto que essas soluções podem ser integradas com uma solução de &lt;strong&gt;CDN&lt;/strong&gt; (&lt;em&gt;Content Delivery Network&lt;/em&gt;) e oferecem alta disponibilidade e velocidade no acesso aos recursos.&lt;/p&gt;
&lt;p&gt;Utilizar os &lt;em&gt;object storages&lt;/em&gt; também pode facilitar a entrega de arquivos/documentos ao usuário final, bastando apenas disponibilizá-lo na estrutura e comunicar ao usuário ao link de acesso ao objeto.&lt;/p&gt;
&lt;p&gt;Vamos entender um pouco melhor como os &lt;em&gt;storages&lt;/em&gt; funcionam e tudo que permeia a exposição pública dos documentos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;estruturas-do-object-storage&quot;&gt;Estruturas do &lt;em&gt;Object Storage&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Nas soluções de &lt;em&gt;&lt;strong&gt;object storage&lt;/strong&gt;&lt;/em&gt; mais utilizadas no mercado, é comum nos depararmos com a possibilidade de organizar nosso recurso em uma estrutura hierarquica, dividindo em caminhos (&lt;em&gt;paths&lt;/em&gt;) diferentes os diversos tipos de objetos que serão armazenados ali.&lt;/p&gt;
&lt;p&gt;Dentro dos &lt;em&gt;storages&lt;/em&gt;, temos basicamente 3 níveis de organização que podem ser criados dentro dessa hirarquia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Repositório&lt;/strong&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pasta&lt;/strong&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Objeto&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O &lt;strong&gt;repositório&lt;/strong&gt; é o nome genérico dado ao recurso que realmente criamos dentro da plataforma. Para o &lt;em&gt;Azure&lt;/em&gt; ele é uma &lt;strong&gt;Azure Storage Account&lt;/strong&gt;, para a &lt;em&gt;AWS&lt;/em&gt; ele é um &lt;strong&gt;S3 Bucket&lt;/strong&gt;. Esse é o maior componente da estrutura e normalmente é criado com a responsabilidade de armazenar os objetos de uma mesma categoria em uma solução. As regras de criação desse componente costumam ser bem simples, devemos respeitar os padrões de nomenclatura impostos pelo provedor e nosso nome deve ser único globalmente dentro daquela plataforma.&lt;/p&gt;
&lt;p&gt;As &lt;strong&gt;pastas&lt;/strong&gt; são o segundo nível organizacional do nosso componente. Abaixo do repositório, podemos criar inúmeras pastas diferentes e inclusive incluí-las dentro de outras pastas. Além de se respeitar o tamanho máximo do nome da pasta imposto pelo provedor, pastas no mesmo nível não poderão ter nomes repetidos.&lt;/p&gt;
&lt;p&gt;O último nível da hierarquia são os objetos. Essas são as informações que nós realmente temos interesse e desejamos acessar. Não é possível criar nada abaixo dos objetos, os sacramentando como o último nível dentro do nosso recurso. Por padrão, não temos restrições relacionadas aos objetos, a não ser que durante a configuração do seu repositório, o time responsável tenha realizado alguma mudança nos valores padrão, como por exemplo para limitar o tamanho dos arquivos que poderão ser armazenados.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/exposicao-publica-de-objetos-e-uma-boa-ideia/faa4ba96-70e1-454e-b166-8ed848f9c76e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima representa graficamente a estrutura dos &lt;em&gt;objects storage&lt;/em&gt;. Temos um repositório contendo diversas pastas diferentes e as pastas contendo os objetos e outras pastas.&lt;/p&gt;
&lt;p&gt;Agora que entendemos esse modelo, vamos falar um pouco sobre as diferentes formas de exposição desses objetos de maneira pública.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;escopos-de-exposição&quot;&gt;Escopos de exposição&lt;/h1&gt;
&lt;p&gt;Entender como os &lt;em&gt;storages&lt;/em&gt; são estruturados é essencial para conseguirmos compreender e avaliar os modelos de exposição disponíveis. As estruturas existentes impactam diretamente como os recursos podem ser organizados e expostos. Vamos aos escopos!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/exposicao-publica-de-objetos-e-uma-boa-ideia/074dc8c4-161f-45c9-92c8-ebf6ca1414d3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;containerpasta&quot;&gt;Container/Pasta&lt;/h2&gt;
&lt;p&gt;Como apresentamos anteriormente, o repositório é composto internamente por pastas, essas que armazenarão os documentos que tornaremos disponíveis.&lt;/p&gt;
&lt;p&gt;Quando a exposição é configurada nesse nível, tudo que está dentro das pastas torna-se publicamente acessível.&lt;/p&gt;
&lt;p&gt;Neste caso as pastas também são expostas, permitindo que os usuários realizem requisições para o recurso e obtenham informações (e metadados) não apenas sobre os objetos, mas também sobre a estrutura onde estão presentes.&lt;/p&gt;
&lt;h2 id=&quot;objetos&quot;&gt;Objetos&lt;/h2&gt;
&lt;p&gt;Sendo a forma mais segura de expor publicamente os objetos, nesse modelo “nenhuma” informação sobre a estrutura de pastas fica disponível. Apenas o objeto em questão tem seu acesso liberado.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;Note as aspas em &lt;strong&gt;&lt;em&gt;nenhuma&lt;/em&gt;&lt;/strong&gt;. Expor apenas os blobs não permitirá que metadados das pastas sejam acessados, porém a estrutura de pastas até chegar ao objeto estará disponível na URI utilizada para acessar o recurso.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;modelos-de-exposição-dos-blobs&quot;&gt;Modelos de exposição dos &lt;em&gt;blobs&lt;/em&gt;&lt;/h1&gt;
&lt;p&gt;Passamos brevemente aos escopos pois é necessário compreendermos em quais níveis nós podemos publicar nossos recursos. Com isso estabelecido, agora falaremos sobre como esses objetos podem ser expostos.&lt;/p&gt;
&lt;h2 id=&quot;exposição-atemporal&quot;&gt;Exposição atemporal&lt;/h2&gt;
&lt;p&gt;Neste modelo nós habilitamos o acesso público aos recursos das pastas para todos os usuários e sem restrição de tempo. Os objetos serão acessíveis a qualquer momento e seu acesso será não será revogado automaticamente, devendo ser feito de maneira explícita.&lt;/p&gt;
&lt;p&gt;Este é o modelo mais simples, visto que selecionamos uma das estruturas de pastas e habilitamos o acesso à partir daquele nível. O que resta determinar é o escopo (como foi tratado na seção anterior).&lt;/p&gt;
&lt;p&gt;Todos os objetos presentes no escopo selecionado estarão visíveis até que o acesso público seja revogado por algum usuário com permissão suficiente.&lt;/p&gt;
&lt;h2 id=&quot;exposição-temporária&quot;&gt;Exposição temporária&lt;/h2&gt;
&lt;p&gt;Esse modelo faz uso de outra função dos &lt;em&gt;object storages&lt;/em&gt;, que permite a criação de um “link” de acesso que estará temporariamente disponível. O acesso ao recurso exposto pelo link será revogado quando o tempo de expiração cadastrado for atingido.&lt;/p&gt;
&lt;div data-node-type=&quot;callout&quot;&gt;
&lt;div data-node-type=&quot;callout-emoji&quot;&gt;&lt;/div&gt;
&lt;div data-node-type=&quot;callout-text&quot;&gt;No Azure esse recurso se chama &lt;strong&gt;SAS&lt;/strong&gt; (&lt;em&gt;Shared Access Signature&lt;/em&gt;) e utiliza as chaves de criptografia da storage account para construir a URL e assiná-la, a tornando disponível para uso.&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id=&quot;preocupações-de-segurança&quot;&gt;Preocupações de Segurança&lt;/h1&gt;
&lt;p&gt;Em qualquer um dos modelos e qualquer um dos escopos há preocupações de segurança. O principal ponto que deve ser considerado quando estivermos estruturando a nossa arquitetura é: &lt;strong&gt;que dados serão armazenados nos storages&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;Essa pergunta é importante pois ela que guiará qual modelo apresenta menos risco em relação aos outros.&lt;/p&gt;
&lt;p&gt;Arquivos públicos, que não contém dados sensíveis e que serão acessados por diferentes grupos de usuários, podem ter seu acesso liberado sem nenhum controle. Isso se dá ao fato de que as informações contidas nos documentos não geram nenhuma preocupação aos negócios da organização que a detém.&lt;/p&gt;
&lt;p&gt;Alguns documentos tem vida útil mais curta do que outros. Documentos que contém informações válidas por apenas algumas horas podem ter seu acesso liberado apenas pelo tempo em que se fazem úteis. Essa é uma boa estratégia de governar o ciclo de vida dos objetos armazenados nos &lt;em&gt;storages&lt;/em&gt;. O ponto de atenção desse cenário é o mesmo do anterior, os &lt;strong&gt;dados&lt;/strong&gt;. Mesmo temporariamente, o documento estará acessível de maneira irrestrita, permitindo que qualquer usuário com a URI do recurso possa acessá-lo.&lt;/p&gt;
&lt;p&gt;Esquecendo quais dados estarão presentes nos documentos, outra preocupação é a revelação da estrutura do &lt;em&gt;storage&lt;/em&gt;. A exposição dos objetos trará à tona parte da estrutura hierarquica de pastas existentes no &lt;em&gt;storage&lt;/em&gt;. Isso pode ser um problema caso seu recurso armazene não apenas documentos públicos, mas também informações que devem ser protegidas do acesso externo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A preocupação exposta pelo trecho anterior é agravada quando pensamos na possibilidade de erro de configuração. Expor publicamente mais do que era necessário pode causar sérios danos à organização, por isso além de ter um processo bem estabelecido para a liberação de acessos públicos, a arquitetura deve ser bem pensada para segregar informações sensíveis e públicas em repositórios diferentes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;As soluções de &lt;em&gt;object storage&lt;/em&gt; são utilizadas em grande parte das empresas que fazem uso de nuvem pública. Independente do provedor, os benefícios gerados por esse tipo de recurso são os mesmos, porém precisamos nos atentar para não acabarmos expondo nossa organização a ataques e para evitar o vazamento de dados sensíveis.&lt;/p&gt;
&lt;p&gt;Espero que esse texto te ajudado a compreender as preocupações existentes na exposição pública de documentos através de soluções de &lt;em&gt;storage&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated/></item><item><title>Azure Key Vault</title><link>https://pedroignacio.dev/post/azure-key-vault/</link><guid isPermaLink="true">https://pedroignacio.dev/post/azure-key-vault/</guid><description>Quando estamos consntruindo nossas soluções em nuvem, nos deparamos constantemente com questões relacionadas a segurança. &quot;Onde devo armazenar as credenciais do meu banco de dados?&quot;, &quot;Como posso implementar meu certificado para estabelecer uma comuni...</description><pubDate>Tue, 27 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Quando estamos consntruindo nossas soluções em nuvem, nos deparamos constantemente com questões relacionadas a segurança. “Onde devo armazenar as credenciais do meu banco de dados?”, “Como posso implementar meu certificado para estabelecer uma comunicação segura”, “De que forma devo armazenar a chave utilizada para criptografar meus arquivos em um blob storage?”, são alguns questionamentos que nos ocorrem. Para responder esses questionamentos, a resposta é a mesma: utilizando o &lt;strong&gt;Azure Key Vault&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;para-que-serve&quot;&gt;Para que serve?&lt;/h1&gt;
&lt;p&gt;Na introdução do texto, mencionei algumas funções para qual o Azure Key Vault pode ser utilizado, porém nessa sessão vamos descrevê-as de maneira mais detalhada.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/azure-key-vault/6b5f2581-63d2-43eb-bd18-2e350c99c962.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Os &lt;em&gt;vaults&lt;/em&gt; (não restritos apenas ao Azure Key Vault, mas também soluções com o &lt;em&gt;Hashicorp Vault&lt;/em&gt;) são utilizados para armazenarmos e acessarmos credenciais sensíveis de maneira segura e protegermos o acesso à elas.&lt;/p&gt;
&lt;p&gt;O Azure Key Vault é utilizado majoritariamente sob 3 tipos de recursos: &lt;strong&gt;chaves&lt;/strong&gt; (&lt;em&gt;keys&lt;/em&gt;), &lt;strong&gt;segredos&lt;/strong&gt; (&lt;em&gt;secrets&lt;/em&gt;) e &lt;strong&gt;certificados&lt;/strong&gt; (&lt;em&gt;certificates&lt;/em&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chaves&lt;/strong&gt; - são informações utilizadas para criptografar dados em outros serviços (ex: &lt;em&gt;storage accounts&lt;/em&gt;, &lt;em&gt;cosmos db&lt;/em&gt;, &lt;em&gt;sql database&lt;/em&gt;, etc);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Segredos&lt;/strong&gt; - podem ser várias coisas diferentes, como senhas, API Keys e outras informações que devem ter seu acesso público protegido;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Certificados&lt;/strong&gt; - utilizados para estabelecer comunicações seguras e autenticações, podemos gerenciar o ciclo de vida dos objetos dentro do &lt;em&gt;vault&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Os objetos mencionados acima e gerenciados pelo &lt;em&gt;Key Vault&lt;/em&gt; poderão ter seu ciclo de vida controlado pelo recurso (dentro das limitações existentes). Certificados poderão ser criados e excluídos, chaves poderão ser criadas, rotacionadas e excluídas, segredos poderão ser atualizados, e por aí vamos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Entendemos os recursos básicos do Azure Key Vault, mas agora, &lt;em&gt;para que ele serve&lt;/em&gt;?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/assets/azure-key-vault/f1ff9f3a-ed41-45d0-aa5d-76f9da8fcadc.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;O desenho acima mostra o cenário mais comum de uso do Azure Key Vault. Vemos uma aplicação consumindo não apenas um &lt;strong&gt;segredo&lt;/strong&gt; armazenado no &lt;em&gt;vault&lt;/em&gt; (e utilizado para acessar um banco de dados) mas também o consumo de um &lt;strong&gt;certificado&lt;/strong&gt; (utilizado para estabelecimento de comunicação TLS).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/azure-key-vault/e8eec79a-9834-41d5-81a0-92b8a20fe315.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;No segundo cenário, demonstrado acima, vemos uma Azure Storage Account consumindo uma chave armazenada no Azure Key Vault para criptografar os &lt;em&gt;blobs&lt;/em&gt; existentes dentro de si.&lt;/p&gt;
&lt;p&gt;Esses são dois dos cenários mais comuns de uso do &lt;em&gt;vault&lt;/em&gt;, mas não se limitam apenas a esses. Você pode utilizar um &lt;em&gt;vault&lt;/em&gt; como bem entender, desde que a solução proposta atenda a sua demanda.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;arquitetura&quot;&gt;Arquitetura&lt;/h1&gt;
&lt;p&gt;Sendo um &lt;em&gt;PaaS&lt;/em&gt; (&lt;em&gt;Platform as a Service&lt;/em&gt;) não temos o que gerenciar em relação à infraestrutura do &lt;em&gt;Key Vault&lt;/em&gt;, porém suas funções são segregadas de forma a termos um painel de gerenciamento e um de acesso aos dados contidos no cofre.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/azure-key-vault/3b060776-c9f1-4585-8c73-e8960a214699.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Essa divisão entre &lt;strong&gt;management plane&lt;/strong&gt; e &lt;strong&gt;data plane&lt;/strong&gt; não é visível pelos usuários finais (desenvolvedores, arquitetos, engenheros, etc), porém é altamente influente quando pensamos no controle de acesso (assunto da próxima sessão).&lt;/p&gt;
&lt;p&gt;A arquitetura desenhada para o Azure Key Vault nos permite ter maior controle e segurança dos nossos dados e de quem os acessa.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;controle-de-acesso&quot;&gt;Controle de acesso&lt;/h1&gt;
&lt;p&gt;Ainda no tema que finalizou a última sessão, o modelo de controle de acesso ao Azure Key Vault é um pouco diferente do que estamos acostumados a encontrar nos outros recursos.&lt;/p&gt;
&lt;p&gt;Da forma que foi projetado, é possível separar o uso dos gestores do &lt;em&gt;vault&lt;/em&gt; e dos consumidores, dessa maneira estabelecendo um controle granular mais efetivo das responsabilidades de cada um dos atores.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;management plane&lt;/strong&gt; é responsável por gerenciar todos os aspectos de funcionamento do &lt;em&gt;vault&lt;/em&gt;, como suas propriedades, permissões de acesso, configurações de segredos, chaves e certificados. Já o &lt;strong&gt;data plane&lt;/strong&gt; habilita o acesso às informações valiosas do recurso, como os valores dos segredos, as chaves e os certificados armazenados.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/azure-key-vault/d342f0db-897e-43b3-81e6-c6eeda2e704f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Como podemos ver no simples desenho acima, a granularidade das permissões existentes no &lt;strong&gt;data plane&lt;/strong&gt; permite maior controle sobre o que uma identidade pode fazer em um determinado tipo de objeto. Essa granularidade não existe no &lt;em&gt;RBAC&lt;/em&gt; do &lt;strong&gt;management plane&lt;/strong&gt;, pois o mesmo implementa grande parte das &lt;em&gt;roles&lt;/em&gt; existentes nos outros recursos do Azure (ex: &lt;em&gt;contributor&lt;/em&gt;, &lt;em&gt;reader&lt;/em&gt;, &lt;em&gt;admin&lt;/em&gt;, etc).&lt;/p&gt;
&lt;p&gt;Esse modelo permite que as aplicações recebam apenas os acessos necessários para realizarem as operações no objeto em questão. Não é necessário fornecer à aplicação visibilidade sobre as outras coisas que estão no cofre e muito menos do cofre em si. O acesso é feito diretamente ao recurso necessário, sem passar por qualquer outra “barreira”.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As soluções de cofre são de extrema utilidada quando estamos montando nossas soluções em nuvem. Soluções como o &lt;em&gt;Hashicorp Vault&lt;/em&gt;, &lt;em&gt;AWS KMS&lt;/em&gt; e o &lt;em&gt;Azure Key Vault&lt;/em&gt; oferecem maneiras de manter o acesso às informações seguro, seguindo as boas práticas da arquitetura de soluções em nuvem.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do texto e que de alguma forma eu tenha conseguido te ajudar no entendimento das funcionalidades do &lt;em&gt;vault&lt;/em&gt; bem como as formas com que ele possa utilizado nas suas soluções.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated/></item><item><title>Proteção de senhas</title><link>https://pedroignacio.dev/post/protecao-de-senhas/</link><guid isPermaLink="true">https://pedroignacio.dev/post/protecao-de-senhas/</guid><description>Possívelmente o modelo de autenticação mais antigo que ainda é utilizado em larga escala, as senhas fazem parte do dia a dia de grande parte das empresas. Em tempos de passwordless, muitas vezes, essas credenciais acabam sendo &quot;esquecidas&quot; e as empre...</description><pubDate>Thu, 14 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Possívelmente o modelo de autenticação mais antigo que ainda é utilizado em larga escala, as senhas fazem parte do dia a dia de grande parte das empresas. Em tempos de &lt;em&gt;&lt;strong&gt;passwordless&lt;/strong&gt;&lt;/em&gt;, muitas vezes, essas credenciais acabam sendo “esquecidas” e as empresas deixam de aplicar controles para evitar o compromentimento delas. Hoje falaremos um pouco sobre algumas características das senhas, alguns vetores de ataque e como incrementar a proteção das credenciais do seu usuário!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;cenários-de-uso-das-senhas&quot;&gt;Cenários de uso das senhas&lt;/h1&gt;
&lt;p&gt;As senhas são, de maneira simples, uma sequência de caracteres em texto plano. Normalmente, estão atribuídas a algum tipo de identificador, como um e-mail ou um &lt;em&gt;username&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Na empresa onde trabalhamos, estamos sujeitos às políticas e &lt;em&gt;guardrails&lt;/em&gt; de segurança aplicados pela organização, o que nos leva muitas vezes, a não ter opções a não ser seguir os direcionamentos dos times de segurança.&lt;/p&gt;
&lt;p&gt;Pensando como um usuário comum, fora do âmbito corporativo, as senhas ainda estão extremamente presentes no dia a dia. Elas são utilizadas para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;“Destravar” o &lt;em&gt;smartphone&lt;/em&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Acessar contas de redes sociais;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Desbloquear a estação de trabalho.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses foram apenas alguns exemplos, se explorarmos mais as atividades diárias do usuário comum, notaremos muito mais a presença desse recurso.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;vetores-de-ataque&quot;&gt;Vetores de ataque&lt;/h1&gt;
&lt;p&gt;Dada a alta taxa de uso das senhas, os ataques direcionados às credenciais ainda são extremamente presentes e eficientes. Todos os ataques visam obter acesso à conta do usuário, o que difere entre eles é a forma de se fazer isso e também o alvo.&lt;/p&gt;
&lt;h2 id=&quot;alvo&quot;&gt;Alvo&lt;/h2&gt;
&lt;p&gt;Temos 2 grandes alvos nesse quesito, o &lt;strong&gt;usuário&lt;/strong&gt; e a &lt;strong&gt;senha&lt;/strong&gt;. Alguns ataques visam obter as credenciais através do usuário, isso é, ele de alguma forma fornece as credenciais ou fornece dicas que levam os atacantes a descobrir elas. Os ataques direcionados às senhas consistem na exclusiva adivinhação das mesmas, utilizando ferramentas externas e também insumos gerados por outras fases dos ataques.&lt;/p&gt;
&lt;h2 id=&quot;ataques&quot;&gt;Ataques&lt;/h2&gt;
&lt;p&gt;Após compreender os 2 principais alvos dos ataques, chegou a hora de estudarmos brevemente os ataques mais comuns, utilizados hoje em dia e com grande efetividade, quando não se há políticas fortes de segurança de credenciais.&lt;/p&gt;
&lt;h3 id=&quot;phishing&quot;&gt;Phishing&lt;/h3&gt;
&lt;p&gt;![Imagem retirada do site Simplilearn](&lt;a href=&quot;https://www.simplilearn.com/ice9/free_resources_article_thumb/phishing_working_2-What_Is_Phishing.PNG&quot;&gt;https://www.simplilearn.com/ice9/free_resources_article_thumb/phishing_working_2-What_Is_Phishing.PNG&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;O famoso método do “você foi sorteado!”. Uma estratégia de &lt;em&gt;phishing&lt;/em&gt; visa enganar o usuário de maneira que o mesmo forneça suas credenciais aos atacantes. Isso pode ser feito de diversas maneiras, sendo o método mais comum, páginas na web que prometem prêmios/recompensas após o usuário fornecer algumas informações.&lt;/p&gt;
&lt;p&gt;Também é comum encontrarmos páginas simulando as &lt;em&gt;landing pages&lt;/em&gt; de grandes corporações, como bancos, que levam o usuário a fornecer seus dados bancários, comprometendo assim a integridade das suas contas.&lt;/p&gt;
&lt;h3 id=&quot;man-in-the-middle&quot;&gt;Man-in-the-middle&lt;/h3&gt;
&lt;p&gt;![Imagem retirada do site da Panda Security Mediacenter](&lt;a href=&quot;https://www.pandasecurity.com/en/mediacenter/src/uploads/2022/02/02-Phases-of-man-in-middle-attack.png&quot;&gt;https://www.pandasecurity.com/en/mediacenter/src/uploads/2022/02/02-Phases-of-man-in-middle-attack.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Uma forma mais sofisticada de se obter informações e que não tem o usuário como alvo.&lt;/p&gt;
&lt;p&gt;Aqui, um atacante consegue se “infiltrar” na comunicação entre o usuário e o sistema destino, se passando por um integrante confiável da comunicação e interceptando as informações trocadas entre as partes.&lt;/p&gt;
&lt;h3 id=&quot;social-engineering&quot;&gt;Social Engineering&lt;/h3&gt;
&lt;p&gt;![Imagem retirada do site Terranova Security](&lt;a href=&quot;https://now.symassets.com/content/dam/norton/global/images/non-product/misc/tlc/in-post-01-social-engineering-explained.png&quot;&gt;https://now.symassets.com/content/dam/norton/global/images/non-product/misc/tlc/in-post-01-social-engineering-explained.png&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Esse ataque utiliza como meio as relações interpessoais entre o atacante e sua vítima.&lt;/p&gt;
&lt;p&gt;O atacante se porta como alguém confiável à pessoa que deseja obter as informações, coleta diversos dados considerados “valiosos” e utiliza dessas informações para “acertar” a senha da vítima.&lt;/p&gt;
&lt;h3 id=&quot;brute-force&quot;&gt;Brute Force&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.google.com/url?sa=i&amp;#x26;url=https%3A%2F%2Fwww.manageengine.com%2Flog-management%2Fcyber-security-attacks%2Fwhat-is-brute-force-attack.html&amp;#x26;psig=AOvVaw1sZ-QOtCT47YmpUsJzMcqd&amp;#x26;ust=1702690741525000&amp;#x26;source=images&amp;#x26;cd=vfe&amp;#x26;opi=89978449&amp;#x26;ved=0CBMQjhxqFwoTCPDtuLinkIMDFQAAAAAdAAAAABAD&quot;&gt;![What is a brute attack? What are the types of brute force attacks and how  you can prevent it.](https://www.manageengine.com/log-management/images/cyber-security-attackswhat-is-brute-force-attack.png align=“center”)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Os ataques do tipo &lt;em&gt;brute force&lt;/em&gt; procuram ganhar acesso à conta do usuário por meio de tentativas de login.&lt;/p&gt;
&lt;p&gt;O atacante constrói uma automação que testa combinações de senhas até que uma delas seja uma tentativa bem sucedida!&lt;/p&gt;
&lt;h3 id=&quot;credential-stuffing&quot;&gt;Credential Stuffing&lt;/h3&gt;
&lt;p&gt;Este não é um ataque que visa “adivinhar” a senha do usuário. Também não é uma estratégia que pode ser utilizada como ponto de partida na obtenção das credenciais.&lt;/p&gt;
&lt;p&gt;O &lt;em&gt;credential stuffing&lt;/em&gt; é muitas vezes a segunda fase de um ataque do tipo &lt;em&gt;brute force&lt;/em&gt;. Esse método consiste na utilização de uma senha válida para tentativas de acesso à outras contas do mesmo usuário. É um ataque que tem como alvo, pessoas que utilizam a mesma senha para várias contas pessoais.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;protegendo-as-credenciais&quot;&gt;Protegendo as credenciais&lt;/h1&gt;
&lt;p&gt;Como vimos na seção anterior, os ataques são construídos de diferentes formas e aplicados com diferentes estratégias, mas sempre visando uma coisa: &lt;strong&gt;obter acesso às credenciais do usuário&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Para garantir a integridade das suas credenciais de acesso e evitar que você esteja exposto à qualquer um desses vetores, alguns controles podem ser aplicados. Os controles nem sempre vão garantir a segurança total das contas, mas habilitarão a proteção contra diversas ofensivas feitas aos seus ativos.&lt;/p&gt;
&lt;p&gt;Vamos comentar sobre algumas dessas estratégias defensivas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Lembrando que a proposta do texto é mencionar algumas formas de proteger as suas senhas. Não estamos falando de autenticação do tipo passwordless, que permitem a autenticação por outros métodos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;troca-periódica-de-senha&quot;&gt;Troca periódica de senha&lt;/h3&gt;
&lt;p&gt;Muito comum nas empresas e também uma boa estratégia para as suas contas pessoais, a rotação de senhas é um método efetivo para se garantir a segurança das suas contas.&lt;/p&gt;
&lt;p&gt;No caso de uma credencial vazada, a troca de senhas garante que aquela senha não poderá ser utilizada para acessar as contas comprometidas.&lt;/p&gt;
&lt;p&gt;Nos ambientes empresariais, é costume a exigência da rotação de senhas de maneira periódica (a cada X dias, por exemplo). Os usuários recebem avisos através do e-mail corporativo ou de algum portal interno da empresa, de que sua senha esta “expirando”. Esse aviso, simplifica a vida do usuário, que não precisa manter um histórico da sua última mudança de senha.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ataques relacionados&lt;/em&gt;: &lt;em&gt;phishing&lt;/em&gt;, &lt;em&gt;social engineering&lt;/em&gt;, &lt;em&gt;credential stuffing&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id=&quot;complexidade&quot;&gt;Complexidade&lt;/h3&gt;
&lt;p&gt;Esse controle é implementado em larga escala pelas diferentes plataformas. Quando iniciamos o processo de criação de conta em um aplicativo, estamos mais do que acostumados a ver uma série de requisitos mínimos que devem ser cumpridos para ter a criação da conta validada.&lt;/p&gt;
&lt;p&gt;Ex: é necessário que a sua senha tenha no mínimo &lt;strong&gt;8 caracteres&lt;/strong&gt;, &lt;strong&gt;1 número&lt;/strong&gt;, &lt;strong&gt;1 letra maiúscula&lt;/strong&gt; e &lt;strong&gt;1 caractere especial&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Implementar uma política de complexidade diminui a probabilidade de um ataque do tipo &lt;em&gt;brute force&lt;/em&gt; ter efeito. Ao adicionarmos números, letras maiúsculas e minúsculas e também caracteres especiais, aumentamos as combinações possíveis das senhas, dificultando muito a adivinhação delas.&lt;/p&gt;
&lt;p&gt;![Time Taken For Hackers to Crack Passwords Revealed - IT Security Guru](&lt;a href=&quot;https://specopssoft.com/wp-content/uploads/2023/05/Time-to-Crack-MD5-Hashed-Passwords_V.3.svg&quot;&gt;https://specopssoft.com/wp-content/uploads/2023/05/Time-to-Crack-MD5-Hashed-Passwords_V.3.svg&lt;/a&gt; align=“center”)&lt;/p&gt;
&lt;p&gt;Na imagem acima, retirada do site “IT Security Guru”, temos a representação de quanto tempo um ataque &lt;em&gt;brute force&lt;/em&gt; levaria para adivinhar sua senha de acordo com a complexidade dela.&lt;/p&gt;
&lt;p&gt;Conseguimos visualizar que quanto maior o tamanho e maior a combinação de caracteres, mais tempo será necessário para acertar a combinação correta.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ataques relacionados&lt;/em&gt;: &lt;em&gt;phishing&lt;/em&gt;, &lt;em&gt;brute force&lt;/em&gt;, &lt;em&gt;credential stuffing&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id=&quot;conscientização&quot;&gt;Conscientização&lt;/h3&gt;
&lt;p&gt;Este é uma implementação não-técnica para evitar que você tenha problemas com os ataques.&lt;/p&gt;
&lt;p&gt;Temos muitas iniciativas na internet que visam ensinar o básico da segurança da informação para as pessoas. Questões como: não clicar em links suspeitos, não fornecer suas credenciais para ninguém, não compartilhar dados sensíveis e pessoais nas redes sociais, são as principais ações compartilhadas nessas iniciativas.&lt;/p&gt;
&lt;p&gt;Dentro das empresas é comum que o time de segurança da informação realize diversas campanhas de conscientização. Além de cursos e plataformas de aprendizado, os colaboradores são sensibilizados periódicamente com mensagens nos canais de comunicação oficiais e também através de e-mails corporativos.&lt;/p&gt;
&lt;p&gt;O importante das políticas de conscientização é garantir a efetividade e a comunicação simples, fazendo com que tanto o usuário mais experiente, quanto o mais vulnerável (principal alvo), entendam a mensagem transmitida e saibam como aplicar esses cuidados em seu dia a dia.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ataques relacionados&lt;/em&gt;: todos.&lt;/p&gt;
&lt;h3 id=&quot;extra-microsoft-entra-id&quot;&gt;Extra: Microsoft Entra ID&lt;/h3&gt;
&lt;p&gt;Pensando em utilizar uma ferramenta que contenha formas de proteger seu usuário, temos a solução de AM (&lt;em&gt;Access Management&lt;/em&gt;) mais utilizada no mercado e lider no gartner, o Microsoft Entra ID.&lt;/p&gt;
&lt;p&gt;Com o Entra é possível aplicar políticas de senha como as mencionadas anteriormente, suspensão de contas (evitando assim os ataques do tipo &lt;em&gt;brute force&lt;/em&gt;), e também podemos utilizar através do &lt;strong&gt;Entra ID Protection&lt;/strong&gt;, as capacidades de &lt;em&gt;machine learning&lt;/em&gt; da Microsoft, que analisam as diversas interações dos usuários com os sistemas e identificam até os ataques mais sofisticados.&lt;/p&gt;
&lt;p&gt;Utilizar uma solução de &lt;em&gt;AM&lt;/em&gt; completa e com capacidades de proteção, pode economizar muito tempo e proteger sua empresa de danos reais contra seus ativos!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Entendemos alguns dos principais vetores de ataque existentes e ainda mais importante, algumas estratégias para defender o ambiente desses ataques mencionados.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo e que à partir de agora, você consiga se proteger e também o ambiente da sua organização.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated/></item><item><title>Para que serve um CSPM?</title><link>https://pedroignacio.dev/post/para-que-serve-um-cspm/</link><guid isPermaLink="true">https://pedroignacio.dev/post/para-que-serve-um-cspm/</guid><description>Não é preciso mencionar a criticidade de se manter os ambientes em nuvem pública seguros contra os ataques existentes, porém se pensarmos nas possíveis escalas de tamanho dos ambientes em nuvem das empresas, podemos nos encontrar em uma &quot;fria&quot; ao ten...</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Não é preciso mencionar a criticidade de se manter os ambientes em nuvem pública seguros contra os ataques existentes, porém se pensarmos nas possíveis escalas de tamanho dos ambientes em nuvem das empresas, podemos nos encontrar em uma “fria” ao tentar proteger esses ambientes sem nenhum modelo de referência. Dito isso, hoje falaremos sobre o &lt;strong&gt;CSPM&lt;/strong&gt; (&lt;em&gt;Cloud Security Posture Management&lt;/em&gt;, ou em português, Gestão de Postura de Segurança em Cloud), a solução que nos permite entender e evoluir o estado da segurança dos nossos ambientes em nuvem!&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;entendendo-as-escalas-do-problema&quot;&gt;Entendendo as escalas do problema&lt;/h1&gt;
&lt;p&gt;Como foi comentado na introdução do texto, o constante crescimento dos ambientes em nuvem pública das empresas demonstram aos times de segurança um grande desafio: &lt;strong&gt;como manter os ambientes protegidos?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/para-que-serve-um-cspm/77c65bfa-9ae1-438e-9b77-e6bac6d9c170.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cada vez mais, vemos empresas apostando em sua estratégia de nuvem pública sem foco em um único provedor, mas em múltiplos, movimento chamado &lt;em&gt;multi-cloud adoption&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;A granularidade dos ambientes acrescenta peso à preocupação dos times de segurança, visto que os ambientes &lt;strong&gt;não serão iguais nunca.&lt;/strong&gt; Em um provedor teremos &lt;em&gt;workloads&lt;/em&gt; de &lt;em&gt;analytics&lt;/em&gt; e &lt;em&gt;big data&lt;/em&gt;, no segundo teremos nossos &lt;em&gt;workloads&lt;/em&gt; de inteligência artificial e treinamento de modelos de &lt;em&gt;machine learning&lt;/em&gt;, no terceiro teremos nossos &lt;em&gt;workloads&lt;/em&gt; principais, que atendem os clientes da organização, e assim por diante.&lt;/p&gt;
&lt;p&gt;Conseguiu perceber a dificuldade? Cada ambiente tem sua peculiaridade, sua responsabilidade, suas tecnologias e principalmente o seu propósito. Não é possível planejar a implantação dos ambientes de acordo com 1 único &lt;em&gt;blueprint&lt;/em&gt; (planta/modelo), por conta dos diversos motivos comentados anteriormente e também pela diferença tecnológica dos provedores.&lt;/p&gt;
&lt;p&gt;Outro ponto relevante é a constante evolução dos ataques cibernéticos. É impossível manter a segurança dos ambientes &lt;em&gt;up-to-date&lt;/em&gt; sem o auxílio de uma ferramenta dedicada para isso. Os times não tem a capacidade de estarem buscando a todo momento os novos tipos de ataque e nem as evoluções dos ataques existentes. Se acrescermos a esse pensamento a necessidade de se entender como proteger o ambiente desses vetores, a tarefa fica realmente im-po-ssí-vel!&lt;/p&gt;
&lt;p&gt;Entendido o problema, vamos à seguinte pergunta:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Como podemos fazer para proteger os diferentes ambientes em nuvem e estar sempre alinhados com as melhores práticas de cibersegurança?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id=&quot;compreendendo-os-conceitos&quot;&gt;Compreendendo os conceitos&lt;/h1&gt;
&lt;p&gt;Após entendermos a necessidade de se ter uma ferramenta para gestão da segurança nos ambientes, vamos aprender sobre como as soluções realizam essa gestão.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: ao longo do texto, farei referências ao Microsoft Defender for Cloud, solução de CSPM da Microsoft. Talvez a solução que você utilize em seu ambiente faça uso de uma terminologia diferente da que eu estarei utilizando, porém não se preocupe, pois os conceitos se estendem entre as ferramentas.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;É importante entendermos alguns conceitos que são mencionados quando falamos de CSPM, então vamos comentar sobre alguns deles!&lt;/p&gt;
&lt;h2 id=&quot;ambientes&quot;&gt;Ambientes&lt;/h2&gt;
&lt;p&gt;O primeiro passo para começar a operacionalizar a sua soluçãod e CSPM é conectá-la aos ambientes que devem ser monitorados. No contexto deste artigo, estamos falando apenas de ambientes de nuvem pública, porém existem soluções de CSPM que nos permitem compreender também a postura de segurança dos nossos ambientes &lt;em&gt;on-premise&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Mencionando os principais provedores de cloud, você precisará conectar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AWS - organizations&lt;/strong&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Azure - subscriptions&lt;/strong&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GCP - projects&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Uma vez conetados, os ambientes passarão a ser monitorados pela ferramenta de maneira ativa, com checagens periódicas para atualização do &lt;strong&gt;Score de Segurança&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A primeira sincronização dos ambientes com a ferramenta de CSPM não será instantânea. É necessário aguardar algumas horas para que a ferramenta comece a retornar insights valiososo sobre a postura dos seus ambientes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;score-de-segurança&quot;&gt;&lt;strong&gt;Score de Segurança&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Traduzido do inglês para “pontuação”, o &lt;strong&gt;Score de Segurança&lt;/strong&gt; é a principal métrica gerada pelo CSPM. A pontuação representada demonstra o nível de segurança que os ambientes monitorados se encontram em relação aos padrões de mercado utilizados pela ferramenta como parâmetro.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/para-que-serve-um-cspm/b16f8540-e60a-4433-a133-50233db6611b.png&quot; alt=&quot;Gráfico existente no dashboard do Defender for Cloud que informa a postura dos ambientes conectados.&quot;&gt;&lt;/p&gt;
&lt;p&gt;A imagem acima informa a postura total dos ambientes conectados de acordo com a análise em cima dos &lt;em&gt;benchmarks&lt;/em&gt; utilizados pela ferramenta de CSPM.&lt;/p&gt;
&lt;p&gt;Repare bem no gráfico. Com essa representação, podemos visualizar como a postura do ambiente evoluiu do período de 25/09 até 30/10 e a sua regressão à partir do dia 04/11. Essa análise nos permite retirar 2 &lt;em&gt;insights&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;O ambiente está sendo continuamente monitorado;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As ações realizadas podem impactar de maneira positiva mas também de maneira negativa a nossa postura.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;benchmark&quot;&gt;Benchmark&lt;/h2&gt;
&lt;p&gt;As soluções de CSPM utilizam modelos centralizados de informações para conseguir gerar à partir do seu ambiente, as métricas importantes para a representação da postura.&lt;/p&gt;
&lt;p&gt;Dando o exemplo com o &lt;em&gt;Microsoft Defender for Cloud&lt;/em&gt;, o “modelo centralizado de informações” é o que a Microsoft chama de &lt;strong&gt;MCSB (Microsoft Cloud Security Benchmark)&lt;/strong&gt;. O MCSB é formado por um &lt;em&gt;benchmark&lt;/em&gt; de segurança para o Azure, um &lt;em&gt;benchmark&lt;/em&gt; de segurança para os outros provedores em cloud e um último &lt;em&gt;benchmark&lt;/em&gt; para os outros recursos de nuvem da Microsoft. A imagem abaixo materializa essa composição.&lt;/p&gt;
&lt;p&gt;![Image that shows the components that make up the Microsoft cloud security benchmark.](&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/concept-regulatory-compliance/microsoft-security-benchmark.png&quot;&gt;https://learn.microsoft.com/en-us/azure/defender-for-cloud/media/concept-regulatory-compliance/microsoft-security-benchmark.png&lt;/a&gt; align=“left”)&lt;/p&gt;
&lt;p&gt;O produto final da “soma” desses recursos é o MCSB, utilizado como &lt;em&gt;&lt;strong&gt;Golden Source&lt;/strong&gt;&lt;/em&gt; pelo CSPM para fornecer o &lt;em&gt;score&lt;/em&gt; do ambiente.&lt;/p&gt;
&lt;h2 id=&quot;security-recommendations&quot;&gt;Security Recommendations&lt;/h2&gt;
&lt;p&gt;Entendemos que a postura do ambiente é uma pontuação (valor numérico) que nos permite compreender o estado da segurança do nosso ambiente, porém para realmente extrair valor da utilização de uma ferramenta de CSPM, precisamos de alguma maneira utilizar esse &lt;em&gt;score&lt;/em&gt; para refletir a melhora de segurança nos ambientes. Para isso, temos as &lt;strong&gt;Recomendações de Segurança&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As recomendações capturam &lt;em&gt;insights&lt;/em&gt; fornecidos pela aplicação dos &lt;em&gt;benchmarks&lt;/em&gt; e os transformam em ações que podem ser executadas para incrementar a segurança do ambiente.&lt;/p&gt;
&lt;p&gt;É com essa funcionalidade que podemos ver de fato o valor gerado por um CSPM, visto que temos não apenas a visão de como está nosso ambiente, mas também como recebemos “dicas” e sugestões para reforçar os controles em pontos considerados falhos.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;escalando-a-utilização-do-seu-cspm&quot;&gt;Escalando a utilização do seu CSPM&lt;/h1&gt;
&lt;p&gt;Após entendermos os problemas enfrentados pelas empresas de diferentes segmentos no mercado, conhecermos a ferramenta que nos permite proteger nossos ambientes com os padrões reconhecidos e também compreender sobre os componentes principais da ferramenta, chegou a hora de falarmos sobre pontos importantes para a aplicação do CSPM em sua empresa, de modo que você consiga extrair dele o maior valor possível.&lt;/p&gt;
&lt;h2 id=&quot;escolha-da-ferramentamapeamento-do-ambiente-e-arquitetura&quot;&gt;Escolha da ferramenta/Mapeamento do ambiente e Arquitetura&lt;/h2&gt;
&lt;p&gt;(comentar sobre a necessidade de se conhecer bem o ambiente da empresa para poder selecionar uma ferramenta que se adeque às necessidades)&lt;/p&gt;
&lt;p&gt;O primeiro passo para a adoção de um CSPM é a escolha da ferramenta. É importante que você tenha conhecimento dos ambientes da sua empresa, para ser capaz de selecionar uma ferramenta adequada.&lt;/p&gt;
&lt;p&gt;Os múltiplos ambientes em nuvem pública, as soluções executadas no ambiente on-premise (caso exista), todos esses são pontos importantes e que devem ser considerados na escolha da ferramenta.&lt;/p&gt;
&lt;p&gt;Ferramentas como o &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt;, que mencionei anteriormente, realizam a cobertura de ambientes Azure, AWS e GCP, fato que também foi mencionado anteriormente. Porém, esses provedores também contém suas próprias soluções de CSPM.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A Google Cloud Platform faz uso do &lt;em&gt;&lt;strong&gt;Security Command Center&lt;/strong&gt;&lt;/em&gt;, solução prioritária de CSPM e outras capacidades de segurança;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A Amazon Web Services tem o &lt;em&gt;&lt;strong&gt;AWS Security Hub&lt;/strong&gt;&lt;/em&gt;, realizando o mesmo papel.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As soluções específicas de cada provedor de nuvem costumam apresentar um nível de cobertura maior e mais eficiente aos recursos daquela plataforma em questão. Por um lado nós podemos optar por utilizar uma solução que irá fornecer uma visão centralizada dos ambientes conectados, mas não terá análises uniformes dos diferentes ambientes. Em contraponto, podemos optar por utilizar a solução nativa de cada um dos provedores de cloud, obter o máximo de eficiência na cobertura dos ambientes mas precisar gerenciar múltiplas soluções ao mesmo tempo. Essa tomada de decisão, deve ser feita de forma conjunta, entre o time de arquitetura e os times de segurança e operações!&lt;/p&gt;
&lt;h2 id=&quot;automações&quot;&gt;Automações&lt;/h2&gt;
&lt;p&gt;(construir automações para reforçar automaticamente a postura de segurança gera o valor esperado do CSPM e desocupa os times de segurança, que podem focar em outras atividades)&lt;/p&gt;
&lt;p&gt;Para atender as recomendações geradas pelo CSPM, as soluções disponibilizam a capacidade de desenvolvimento de automações, que tornarão o trabalho de normalização do ambiente mais tranquilo.&lt;/p&gt;
&lt;p&gt;As automações serão desenvolvidas baseadas em recomendações recorrentes. Ex: máquinas virtuais estão sendo criadas sem serem registradas ao &lt;em&gt;Active Directory&lt;/em&gt; da empresa, realizando dessa forma um &lt;em&gt;bypass&lt;/em&gt; nas políticas de segurança reforçadas pelo AD. Esse cenário é “comum”, visto que máquinas virtuais serão criadas o tempo todo em um ambiente cloud. Para atender essa recomendação, o time responsável pode desenvolver uma automação que registra a máquina virtual no domínio desejado.&lt;/p&gt;
&lt;p&gt;Esse é apenas um exemplo, automações de diversas formas e modelos podem ser construídas para solucionar as diversas recomendações geradas pela ferramenta.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nem todas as recomendações poderão ser atendidas com automações. Algumas delas são pontuais e requerem a solução uma única vez.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;soluções-adicionais&quot;&gt;Soluções adicionais&lt;/h2&gt;
&lt;p&gt;Visando o reforço da segurança no seu ambiente e direcionando a segurança de recursos específicos, temos também as soluções auxiliares.&lt;/p&gt;
&lt;p&gt;Podemos configurar soluções que nos permitem ter uma visão mais a fundo da segurança em máquinas virtuais. Com a instalação de um agente ou de uma extensão na VM, é possível visualizar informações que o CSPM nativamente não visualizaria e gerar &lt;em&gt;insights&lt;/em&gt; que nos permitirão proteger os recursos contra vulnerabilidades.&lt;/p&gt;
&lt;p&gt;Constante em ambientes em nuvem pública, é uma ideia excelente termos uma ferramenta para análise dos ambientes &lt;em&gt;Kubernetes&lt;/em&gt; que temos em execução. Como a maioria das aplicações em nuvem são contêinerizadas, o ambiente de preferência das empresas para execução dessas aplicações são as variações do Kubernetes (Openshift, AKS, EKS, etc). A utilização de uma solução como o &lt;em&gt;Agentless Container Posture&lt;/em&gt; do Microsoft Defender for Cloud, nos auxiliará a previnir vulnerabilidades que podem causar sérios danos financeiros e à imagem da nossa empresa.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Pudemos entender melhor os motivadores para adoção de uma solução de CSPM e também algumas variáveis que devem ser consideradas quando você estiver estruturando seu ambiente.&lt;/p&gt;
&lt;p&gt;Espero que tenha gostado do conteúdo.&lt;/p&gt;
&lt;p&gt;Até logo!&lt;/p&gt;</content:encoded><updated/></item></channel></rss>