Integrando AWS Secrets Manager e IAM com Laravel para gerenciamento seguro de credenciais

Aumente a segurança das suas aplicações com o uso de um moderno cofre de senhas.

Integrando AWS Secrets Manager e IAM com Laravel para gerenciamento seguro de credenciais
Gunnar Correa
Gunnar Correa
19/09/2026 6 minutos

Quando estamos desenvolvendo uma aplicação, a segurança das credenciais é um dos aspectos mais importantes. A AWS (Amazon Web Services) oferece ferramentas poderosas para garantir que suas credenciais sejam armazenadas de forma segura e acessíveis apenas para quem tem permissão. Neste artigo, vamos explorar como integrar a AWS IAM (Identity and Access Management) e o AWS Secrets Manager com um projeto Laravel.

Ao final do artigo, você será capaz de configurar a AWS IAM para gerenciar as permissões de acesso, armazenar segredos no AWS Secrets Manager e integrar tudo isso com sua aplicação Laravel de maneira segura.

Criando um usuário no AWS IAM e concedendo permissões

O primeiro passo para integrar sua aplicação Laravel com a AWS é configurar o IAM (Identity and Access Management), que permite que você crie e gerencie usuários e permissões dentro da AWS.

O que é o IAM?

O AWS IAM é um serviço que permite gerenciar o acesso a serviços e recursos da AWS de maneira controlada. Usando o IAM, podemos criar usuários específicos, conceder permissões de acesso e garantir que apenas as pessoas ou sistemas autorizados possam acessar nossos recursos.

Criando um novo usuário IAM

  1. Acesse o painel do AWS IAM.
  2. No menu lateral, clique em Users e, em seguida, clique em Add user.
  3. Escolha a opção Programmatic access para criar um usuário com acesso via chave de acesso.
  4. Na tela de permissões, você pode adicionar permissões diretamente ou adicionar o usuário a um grupo com permissões predefinidas. Para o nosso caso, adicione a política SecretsManagerReadWrite, que permite acesso ao Secrets Manager.
  5. Conclua o processo e anote a Access Key ID e Secret Access Key geradas. Esses valores serão usados para configurar o acesso ao Secrets Manager na aplicação Laravel.

Criando um segredo no AWS Secrets Manager

Agora que o IAM está configurado e temos um usuário com permissões adequadas, vamos criar um segredo no AWS Secrets Manager. O Secrets Manager é um serviço da AWS que permite armazenar e gerenciar credenciais de forma segura.

O que é o Secrets Manager?

O AWS Secrets Manager é projetado para armazenar segredos, como senhas, chaves API e outras informações sensíveis, de forma segura. Ele permite que você recupere esses segredos de maneira programática, evitando a exposição de informações sensíveis no código-fonte da aplicação.

  1. Acesse o painel do AWS Secrets Manager.
  2. Clique em Store a new secret.
  3. Selecione o tipo de segredo que você deseja armazenar. Por exemplo, para armazenar credenciais de banco de dados, selecione Other type of secret e adicione chaves como DB_USERNAME e DB_PASSWORD.
  4. Escolha um nome para o segredo. Por exemplo: my-app-secret.
  5. Finalize a criação do segredo e anote o nome dele. Você precisará desse nome ao configurar o Laravel para acessar o segredo.

Criando um Novo Projeto Laravel

Agora que temos tudo configurado na AWS, vamos para o Laravel. O primeiro passo é criar um novo projeto Laravel.

Abra o terminal em uma pasta do seu sistema e execute o seguinte comando para criar um novo projeto Laravel:

bash
composer create-project laravel/laravel nome-do-projeto

Esse comando criará um diretório com a estrutura básica do Laravel e todas as dependências necessárias.

Instalando o SDK da AWS no Laravel

Com o projeto Laravel criado, o próximo passo é instalar o SDK da AWS para que possamos interagir com o Secrets Manager.

No terminal, dentro da pasta do projeto Laravel, execute o comando:

bash
composer require aws/aws-sdk-php

O SDK da AWS fornece uma maneira fácil de interagir com todos os serviços da AWS, incluindo o Secrets Manager, diretamente de dentro do seu projeto Laravel.

Configurando o .env

Antes de prosseguir para o código, precisamos definir as credenciais da AWS no arquivo .env do Laravel. Esse arquivo é onde armazenamos as variáveis de ambiente, como as chaves de acesso e o nome do segredo.

No arquivo .env, adicione as seguintes variáveis para configurar o acesso à AWS:

bash
AWS_ACCESS_KEY_ID=seu_access_key_id
AWS_SECRET_ACCESS_KEY=seu_secret_access_key
AWS_DEFAULT_REGION=us-east-1
AWS_SECRET_MANAGER_SECRET=my-app-secret
  • AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY: As credenciais que você obteve ao criar o usuário IAM.
  • AWS_DEFAULT_REGION: A região onde seu segredo está armazenado (por exemplo, us-east-1).
  • AWS_SECRET_MANAGER_SECRET: O nome do segredo que você criou no Secrets Manager.

Criando o Provider no Laravel

Agora, vamos criar um provider no Laravel que será responsável por acessar o segredo armazenado no AWS Secrets Manager e configurar as variáveis de ambiente automaticamente.

No terminal, execute o seguinte comando para criar um novo provider:

bash
php artisan make:provider SecretsServiceProvider

Abra o arquivo app/Providers/SecretsServiceProvider.php e insira o seguinte código:

php
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Aws\SecretsManager\SecretsManagerClient;
use Aws\Exception\AwsException;
use Illuminate\Support\Facades\Log;

class SecretsServiceProvider extends ServiceProvider
{
    public function register()
    {
        // Cliente do Secrets Manager
        $client = new SecretsManagerClient([
            'region' => env('AWS_DEFAULT_REGION'),
            'version' => 'latest',
        ]);

        // Recupera o nome do segredo do .env
        $secretName = env('AWS_SECRET_MANAGER_SECRET');

        try {
            // Obtém o segredo do Secrets Manager
            $result = $client->getSecretValue([
                'SecretId' => $secretName,
            ]);

            // O segredo será retornado em formato JSON
            $secret = json_decode($result['SecretString'], true);

            // Define os valores das variáveis de ambiente com base nas chaves do segredo
            foreach ($secret as $key => $value) {
                // Usa o método env() para configurar o valor no ambiente
                putenv("{$key}={$value}");
            }
        } catch (AwsException $e) {
            Log::error("Erro ao acessar o Secrets Manager: " . $e->getMessage());

            dd($e->getMessage());
        }
    }

    public function boot() {}
}

Esse código cria um cliente do AWS Secrets Manager, recupera o segredo e define as variáveis de ambiente com base nas chaves do segredo.

Registrando o Provider no Laravel

Agora que o provider está pronto, precisamos registrá-lo no Laravel para que ele seja carregado corretamente.

Abra o arquivo bootstrap/app.php e adicione o seguinte código ao array de providers:

php
<?php

return [
    App\Providers\AppServiceProvider::class,
    App\Providers\SecretsServiceProvider::class,
    App\Providers\SecretsServiceProvider::class //Adicione o seu provider
];

Limpando Cache e refazendo Autoload

Para garantir que o Laravel carregue corretamente o provider e as variáveis de ambiente, execute os seguintes comandos:

bash
php artisan config:clear
php artisan cache:clear
php artisan config:cache


composer dump-autoload

Acessando as variáveis de ambiente no Laravel

Agora que tudo está configurado, você pode acessar suas variáveis de ambiente no Laravel de qualquer lugar. Por exemplo, para acessar o nome do segredo, basta usar o comando:

php
$secretName = env('AWS_SECRET_MANAGER_SECRET');

Conclusão

Você agora configurou com sucesso a integração entre a AWS e o Laravel usando o IAM e o Secrets Manager. Isso permitirá que sua aplicação Laravel acesse segredos de maneira segura, sem a necessidade de armazenar credenciais diretamente no código.

Quer aprender mais? Assista à nossa videoaula completa sobre como integrar o AWS IAM e o Secrets Manager com Laravel. No vídeo, mostramos o passo a passo de forma prática, com exemplos detalhados para que você consiga implementar tudo isso no seu projeto sem dificuldades.

Nossos cursos

Nossos cursos

Leia também

Recursos para Download

Os arquivos foram escaneados por software antivírus; no entanto, não nos responsabilizamos por quaisquer danos que possam ser causados.

Para baixar este recurso, é necessário estar autenticado. Crie uma conta gratuita na SatellaSoft.

Entrar ou Registrar-se
Gunnar Correa
Gunnar Correa

Deixe um comentário

Para deixar um comentário, é necessário estar autenticado. Crie uma conta gratuita na SatellaSoft.

Entrar ou Registrar-se
Gunnar Correa
Gunnar Correa Publicado em 07/02/2026 às 12:31
O [Moderado: linguagem ofensiva] é um texto modelo da indústria [Moderado: dados pessoais]e de impressão. O Lorem Ipsum tem vindo a ser o texto padrão usado por estas indústrias desde o ano de 1500, quando uma misturou os caracteres de um texto para criar um espécime de livro. Este texto não só sobreviveu 5 [Moderado: conteúdo fora do tema], mas também o salto para a tipografia electrónica, mantendo-se essencialmente inalterada. Foi popularizada nos anos 60 com a disponibilização das folhas de Letraset, que continham passagens com Lorem Ipsum.
Gunnar Correa
Gunnar Correa Publicado em 07/02/2026 às 12:44
Removido pelo autor