Olá pessoal, tudo bem? Bem-vindos de volta à nossa jornada cloud. E hoje a gente vai estar começando a falar sobre um dos serviços de segurança mais importantes da AWS. Ele não é um serviço obrigatório, deixando bem claro, ele não é um serviço que você tenha que usar, mas ele é uma forma que as empresas usam para melhorar a segurança das suas aplicações. Estamos falando aqui do AWS Key Management Service, ou seja, o AWS KMS. Basicamente, o que ele é? Ele é o seu gerenciador de chaves de criptografia, tá bom? Então, você tendo ali chaves de criptografia, você vai ter funções que você pode exercitar a partir dessas chaves, seja criptografar ou decriptografar dados, tá? O AWS KMS, ele está presente na maioria dos serviços da AWS, tá bom? Então, a gente já usou esse cara aqui em outras aulas de forma meio que encapsulada, gerenciada pela AWS. O que a gente vai trazer aqui para vocês é a possibilidade de você gerenciar esse serviço, tá bom? de você gerenciar esse serviço, tá bom? Então, onde é que a gente já viu o KMS, por exemplo, tá? Vamos dar uma olhada lá no nosso S3, no bucket que a gente tem, ou quando a gente está criando um outro bucket, né? Uma das coisas que a gente tem na propriedade, ou quando a gente vai criar, é qual vai ser a chave de criptografia que a gente vai estar usando. Como a gente criou um bucket no padrão AWS, sem muita mexida, um bucket ali com as suas configurações default, né? A gente criou usando SSS3. Isso aqui é uma chave de criptografia, só que ela não é gerenciada pela gente, tá? Outra coisa, quando a gente criou ali o nosso SNS, né? Nosso tópico SNS, naquele tópico que a gente criou, ele também tem uma chave, né? KMS, ele tem aqui uma criptografia que eu poderia habilitar nele. Então, você pode olhar, quando eu vou criar um serviço na AWS, eu já tenho chaves prontas. Eu posso adicionar chaves a esses itens ou eu posso usar algumas chaves que a AWS gerencia. posso usar algumas chaves que a AWS gerencia. Então, sempre que eu vou criar um bucket, uma fila, um SMS, eu tenho a opção de colocar chaves simétricas ou chaves assimétricas. Eu posso definir o que eu posso criptografar ou decriptografar, qual é o uso e qual o modelo de chaves que eu estou criando. Lembrando ali que a criptografia simétrica, ela costuma ser também chamada de criptografia de chave secreta, ela tem como característica principal o fato de utilizar apenas uma chave, tanto para criptografar quanto para decriptografar. E a criptografia simétrica, ela requer ali duas chaves de criptografar quanto para decriptografar e a criptografia assimétrica ela requer ali duas chaves de criptografia para você ela tem uma chave que você vai que a chave pública e a outra chave é a chave privada essa criptografia assimétrica ela é muito usada aí no mundo das criptomoedas tá então a chave pública pública é usada para cifrar, ou seja, encriptar os dados que eu vou transmitir ou armazenar. Eu tenho criptografia em repouso, eu tenho criptografia em trânsito. Então, a chave pública é usada para cifrar, encriptar dados que serão ali transmitidos ou armazenados, como o próprio nome sugere, uma chave pública. E a chave privada, que é usada para decifrar, ou seja, desencriptar os dados, desse modo ela consegue fazer as modificações. Então, a chave pública ela usa para fazer uma transmissão e a chave privada ela usa para decriptografar o dado. Então, ela pode ser usada para alterar o dado, editar o dado. Então, a gente não precisa nem falar também que a chave pública, a chave privada, melhor dizendo, ela não deve ser compartilhada. Então, eu tenho ali chave pública e chave privada. Então, vamos lembrar que a criptografia simétrica, eu tenho uma chave que é responsável tanto para criptografar quanto para descriptografar. E a chave assimétrica, eu tenho duas chaves distintas, uma pública e uma privada. A chave pública é utilizada para cifrar, para encriptar os dados que são transmitidos ou os dados que estão em repouso. E a chave privada é usada para decriptografar os dados. decriptografar os dados e o KMS ele me permite ter tanto chaves públicas como chaves privadas tá bom pessoal dentro do KMS ele tem ali chaves ou simétricas ou assimétricas então tenho toda essa forma de trabalhar essa criptografia tá bom então falando de custos eu vou ter dois custos atrelados ao uso do KMS tá bom vamos aqui pra linha de preço você vai entender a primeira coisa é o custo da chave tá então ele vai me cobrar a AWS ela vai me cobrar um dólar por chave KMS, tá bom? Então, eu criei uma chave, automaticamente, eu já estou pagando um dólar somente por ter criado essa chave, tá? Que a AWS vai estar gerindo aí para mim, tá bom? Eu estou criando, é uma coisa gerenciada por mim, tem aquela ideia que a gente já tem falado aí de responsabilidade dividida, né? a ideia que a gente já tem falado aí de responsabilidade dividida, né? Onde a AWS, ela tem ali a responsabilidade sobre a gestão do item e eu tenho que criar ele e mantê-lo da melhor forma possível, tá bom? Então, criei. Já tem ali um custo de um dólar, tá bom? Mas eu tenho também o custo da consulta disso. Então, o fato de eu ter criado uma chave no AWS KMS, vamos dar um exemplo aqui. Eu criei aqui meu bucket S3, certo? E no meu bucket, na hora que eu for criar, eu vou falar para ele que eu vou usar uma criptografia sse-kms, tá vendo? Vou clicar aqui e ele vai me falar posso escolher entre as minhas chaves, no caso aqui, poderia criar uma chave pra ele, tá bom? Ou eu posso inserir um Rn de uma chave que eu também já criei aqui dentro do KMS, tá bom? Posso colocar aqui um RM dele, tá? Então, no momento que eu colocar isso aqui, quer dizer o quê? Todos os dados que entrarem dentro do bucket precisam entrar atrelados a essa chave. Eu tenho que, na hora que eu for postar um objeto ali dentro, ele vai usar essa chave para criptografar o repouso disso. Na hora que eu for requisitar um objeto também, a SDK, a aplicação, a Lambda que estiver buscando esse objeto, ou a minha aplicação no ECS que estiver requisitando esse objeto, ele vai ter que ter acesso a essa chave QMS também. Então, lá na pólice que você vai colocar na sua Lambda, no seu EC2, no seu ECS, você vai ter que colocar também a permissão para ele decriptografar ou criptografar dados a partir do KMS, tá bom? Então, você vai ter que atrelar essa pólice a ele também. Então, uma vez que eu crio objetos nisso e o meu SDK está buscando, você entende que se eu estou saindo de uma lambda para colocar um objeto dentro da API do S3, lá dentro do meu banco, estou pedindo grave esse objeto lá dentro, com essa chave, ele vai precisar chamar a API do KMS e atrelar essa chave ali dentro? Então, isso também é cobrado. Então, eu sou cobrado por chave que eu tenho criada e eu sou cobrado por solicitação de API do KMS para criptografar ou para decriptografar. E aquele que está tendo esse acesso precisa estar com a sua pólice correta. Então, como que ele vai me cobrar ali, por exemplo, tá bom? Exemplo do S3 ainda está colocando aqui ó ele vai cobrar uma chave que é ms eu posso ter aqui ó 100 mil solicitações uma solicitação de 10 mil objetos né então ele vai ter um preço aqui que ele vai me cobrar para cada serviço ele vai ter um precinho diferente então o kms ele não é uma coisa tão assim tão trivial a nível de custo. Dependendo do modelo de chave, da forma como eu estou indo, eu posso acabar pagando um pouco mais, um pouco menos, porque eu pago, tem nível gratuito? Tem aqui, por exemplo, até 20 mil solicitações de API, de criptografia e criptografia estão aí no nível gratuito para mim. Mas eu posso pagar mais, eu posso pagar menos, vai depender do quanto que eu uso essas chaves, tá bom? Então, quando você vai criar ali seu bucket, quando você for criar um SQS, uma fila no SQS, ele vai te perguntar aí se você vai ter criptografia, entendeu? Usa o SSE SQS? Não. Usa a chave SSE KMS? Está vendo? Então, ele vai criar aqui chaves para você, ele vai gerenciar isso e fazendo isso, para publicar nessa fila, a Lambda, o serviço, tem que ter acesso a essa chave. Para poder ler dessa fila, ele também tem que ter acesso a essa chave, sen pra poder ler dessa filha também tem acesso a chaves não usados um palito de cifrado ele não vai conseguir fazer nada do ponto de vista útil tá bom das suas aplicações está então pra você criar uma chave você pode inclusive importar chaves da sua empresa dentro do KMS, tá? Basta você vir em KMS, Key Management Service, e você tem aqui chaves gerenciadas pela AWS e chaves gerenciadas pelo cliente. Também tem o armazenamento de chaves externas, tá bom? Então, você pode pegar aqui chaves que você quer, é simplesmente criar a chave, ó, muito simples. Então, configurar a chave, simétrico ou assimétrica, tá? Definir as permissões administrativas, permissões de uso, no final você revisa e cria. E lembrando, o simples fato de criar, você já paga um dólar por isso, tá bom? Então, assim, se você for fazer esse teste, se você quiser entender um pouco disso, esteja ciente de que você tem custos atrelados e o custo disso está muito diferente dos custos que a gente está acostumado a trabalhar aqui dentro das outras coisas que a gente já falou, que é o uso de lambda, fargate, CS, C2, que eles cobram ali por uso, por minuto. Aqui ele vai cobrar por existência e não apenas por requisição. Tá bom? Então, se você tiver aí 100 chaves criadas dentro da sua corporação, você vai pagar, aí estou usando os preços aqui de Norte Virgínia, tá bom? Você vai pagar aí um dólar por isso. Vamos ver quanto eu pagaria aqui em São Paulo? Dentro de São Paulo, o uso da chave, vamos ver. Eu pagaria aqui, ó, 3 centavos de dólar pelas primeiras 10 mil solicitações na API do KMS. Está vendo? solicitações na API do KMS, tá vendo? Então, continua o mesmo 1 dólar, mas eu começo a ter outros preços aqui atrelados à pesquisa. Então, pessoal, esse é o KMS. É uma ferramenta muito importante para a empresa, se a empresa quer lidar com segurança dos seus dados, a criptografia, a AWS garante isso. Como eu falei, quando você cria aqui um S3 você já está usando uma criptografia padrão da AWS mas essa chave não é gerenciada por você é uma criptografia gerenciada pela própria AWS, tá bom? Uma outra coisa interessante é a rotação disso, tá? Então assim conforme ela vai tendo rotação. Se eu estiver falando de chaves que eu gerenciei, tá bom? Que eu importei para a AWS, a rotação disso é opcional e o período é 365 dias da rotação. Então, se eu estiver falando de uma chave gerenciada pela AWS, a rotação é obrigatória e o período disso é de 1095 dias para a rotação dessa chave. É como eles trabalham quando a gerência está de fato dentro da AWS. E onde é que eu posso usar? Vamos lá de novo. Em tudo, eu posso usar uma chave TMS no meu S3, em um bucket eu posso usar uma chave KMS dentro de uma SNS, dentro de uma SQS. A gerência disso, a depender da forma como eu quero aplicar, começa a ficar muito mais complexa, tá? Porque eu começo a ter que definir políticas muito mais específicas para cada item de escrita ou de leitura de dados. Mas o KMS é algo que é importante ser conhecido e se você preza por uma criptografia onde você queira ter esse controle ou se por acaso você está vindo de uma cloud privada onde você já tem chaves de criptografia dispostas para o seu uso o serviço que você vai usar para importar para armazenar para ter aí as suas chaves manutenciadas ou por você ou pela aws é o kms tá bom pessoal então é muito importante saber que o custo disso é um pouco caro, é diferenciado, mas é uma possibilidade muito importante para quem preza esse tipo de necessidade. Então é isso, muito obrigado, use o KMS nas suas aplicações quando houver necessidade e mais uma vez boa sorte!