Bom pessoal, com o segredo criado lá no Secrets Manager, nós podemos utilizar um Data Source para referenciar este segredo aqui no nosso arquivo de configurações. Então vamos lá. Vamos utilizar aqui o Data Source do tipo AWS Underline Secrets Manager Underline Secret. O nome que nós daremos para este Data Source é Secret. E aqui nós podemos identificar ou referenciar o nosso segredo através do ARN, que é um identificador da AWS, ou então nós podemos utilizar o próprio nome. Aqui no nosso exemplo nós utilizaremos o ARN, e para nós obtermos esse ARN basta nós navegarmos até o nosso segredo, que foi criado na aula anterior, e nós temos aqui Secret ARN. Voltando aqui, temos já a referência para o nosso Secret e esse data source, ele nos entrega as informações de metadata. Então, temos aqui o metadata desse segredo, mas através dele nós não conseguimos acessar de fato o valor do segredo, tá? Para que a gente consiga acessar o valor do segredo, nós temos um outro data source, que eu vou referenciar aqui, que é o AWS Secret Manager Secret Version. Nós podemos ter várias versões de um mesmo segredo e essas versões ficam todas armazenadas e podemos acessar a qualquer momento uma versão específica. No nosso caso, nós vamos acessar a versão corrente, a última versão. Então, nós teremos aqui Current, que vai ser o identificador desse data source e nós vamos aqui referenciar o nosso segredo o nosso data source secret então vamos utilizar aqui data.awssecretsmanager secret, colocamos aqui o nosso id, beleza? Por default então, nós sempre acessamos a current version, nós podemos também especificar outras versões utilizando aqui o version ID. Mas vamos deixar aqui com a versão corrente. Perfeito, agora sim nós podemos acessar o valor do segredo que foi criado. Como nós vamos utilizar esse valor de segredo? Nós utilizaremos aqui na nossa instância tá na ws o serviço e c2 nos oferece a possibilidade de passar um script para ser rodado para ser executado no momento em que a nossa máquina está se iniciando tá e é isso que nós faremos aqui então nós utilizaremos o user beira e aqui nós podemos passar o nosso script best nós vamos utilizar aqui essa anotação para que a gente consiga utilizar a multiline aqui no nosso user data e aqui nós teremos primeiro o nosso bin-bash, nós vamos dizer que nós vamos executar um script-bash e nós iremos criar uma variável primeiro que que eu chamarei aqui de DBString, tá? E aqui nós vamos supor que nós estamos montando uma string de conexão para o banco de dados. Nós teremos aqui server, e esse server, ele agora vai ser uma referência ao nosso data source. Então, nós teremos data, AWS, Secret Manager, Secret Version, Current, opa Current acabei colocando errado aqui Current, e aqui nós podemos acessar o Secret String beleza, e dessa forma aqui nós já temos acesso ao nosso segredo a questão, como você deve estar se perguntando aí é como nós vamos acessar especificamente a Key Server ou a Key Host que nós definimos lá no nosso deve estar se perguntando aí, é como nós vamos acessar especificamente a key server ou a key host que nós definimos lá no nosso segredo, porque aqui nós temos simplesmente o valor em JSON, já que nós definimos várias chaves e valores para esse segredo. E para isso nós podemos utilizar aqui uma função que o próprio Terraform nos oferece, que é o JSON decode. Deixa eu copiar ele aqui. JSON decode. Beleza? Nós vamos fazer o decode desse JSON. E aqui nós podemos acessar a nossa chave, que no caso é host. Só para confirmar, vamos voltar aqui. Vamos recuperar o valor do segredo. E temos aqui de fato a secret key host. E nós esperamos que a gente receba o valor local host. Além disso, nós vamos colocar aqui também, como exemplo, db. Não vou referenciar o username nem o password para este exemplo, porque só com estes dois exemplos aqui nós já temos a ideia de como utilizar este data source. Vamos copiar aqui de novo este trecho, onde nós fazemos o decode do JSON. E aqui nós iremos acessar DB. Perfeito, temos aqui uma variável já com a nossa string de conexão e agora nós, para nós vermos isso funcionando e vermos se isso de fato está disponível lá na nossa máquina virtual, nós vamos salvar essa variável em um arquivo, nós vamos colocar isso aqui em um arquivo test.txt. aqui no arquivo teste.txt, tá? Então, algo bem simples só para nós verificarmos se de fato está funcionando o acesso através do nosso Data Source ao Secrets Manager, beleza? Então, nós já temos aqui tudo configurado, agora eu vou abrir o terminal, nós vamos executar a WS, ou melhor dizendo, o Terraform, né? Terraform plan, vamos rodar o planejamento do Terraform aqui. Beleza? Já temos aqui o planejamento ok. Vamos dar uma olhada na nossa instância. Vamos verificar aqui se nós conseguimos encontrar a nossa instância. Perfeito. E aqui nós vamos ter o nosso user data, tá? User data. E aqui não nos é mostrado o valor desse UserData Porque ele já identifica que nós temos Secret, nós temos valores sensíveis ali, informações sensíveis Que elas não podem ser mostradas aqui no console, então para que a gente veja isso funcionando Nós vamos precisar acessar a nossa máquina virtual Depois de nós darmos o nosso Terraform Apply Então vamos rodar aqui, vamos simplesmente dar a confirmação, yes, e agora nós vamos esperar que o deploy aconteça, e quando nós já tivermos todos os nossos recursos criados, eu volto com a gravação da aula, beleza? Bom pessoal, estou de volta aqui, todos os nossos recursos foram criados, agora nós vamos verificar se tudo está certo através do console. Vamos acessar o serviço EC2 e vamos procurar a nossa máquina virtual. Temos uma instância rodando aqui, beleza, nós podemos, para nós verificarmos se de fato foi criado o arquivo, nós podemos acessar aqui a opção Connect, tá? Mas, ao nós tentarmos conectar aqui na nossa máquina, nós vemos esses dois warnings. Primeiro, que a porta 22, que é através dela que nós fazemos acesso SSH, ela não está autorizada. Então, nós não temos aqui autorização para acesso nessa porta no nosso Security Group. Nós não conseguimos fazer o acesso SSH. Além disso, a nossa instância não está em uma subnet pública. E isso pode parecer estranho, porque nós criamos um Internet Gateway, associamos a nossa VPC, mas aqui ele está dizendo que a nossa subnet não é pública. Por quê? Apesar de nós termos um Internet Gateway, de nós termos criado um Internet Gateway para permitir a criação do nosso Elastic IP, nós não criamos uma rota que permite a comunicação da nossa subnet através do nosso Internet Gateway. Então, a nossa subnet não consegue acessar a internet e vice-versa. Para isso, nós precisamos de criar uma rota que permita esse acesso. Então, nós teremos aqui vários outros recursos que nós precisaremos criar no nosso arquivo de configurações e nós falaremos sobre esses recursos na próxima aula. A ideia não é nos aprofundarmos muito nessas questões, novamente, a ideia aqui não é que você se torne um expert em AWS ou em redes, nós iremos na próxima aula bem brevemente criar esses recursos só para nós conseguirmos acessar a nossa máquina. Então vou dar um cancel e nós vamos voltar até a tela de listagem de instâncias, onde nós temos aqui a nossa máquina virtual rodando. Eu vou selecionar essa máquina virtual e eu vou acessar aqui a aba Security, onde nós podemos confirmar que há um Security Group associado a essa instância. E o Security Group, para você que não sabe, nada mais é do que uma lista de regras que dizem quais são as permissões de acesso que nós temos para essa máquina virtual. Aqui no nosso caso, nós temos um inbound rule, que é o acesso de fora para essa máquina, onde nós dizemos que nós estamos aqui liberando todas as portas, utilizando todos os protocolos, porém o source tem que ser esse mesmo, o Security Group. O que quer dizer isso? Qualquer máquina que nós tenhamos aqui, que tenha associado a ela esse Security Group, pode acessar essa máquina aqui, essa VM. Porém, se nós estamos conectando de fora, pela internet, através das nossas máquinas locais, claro que nós não vamos conseguir este acesso. Agora nós precisamos de ter uma security group aqui que tenha uma regra que permita o acesso através da internet a esta máquina virtual na porta 22, tá? Utilizando o protocolo SSH, beleza? Nós faremos isso então na nossa próxima aula, espero que você tenha gostado, vejo você lá!