Configurar a autenticação do IAM para o RDS Proxy - Amazon Aurora

Configurar a autenticação do IAM para o RDS Proxy

Para configurar a autenticação do AWS Identity and Access Management (IAM) para o RDS Proxy no Amazon RDS, crie e configure uma política do IAM que conceda as permissões necessárias.

Este tópico apresenta as etapas para configurar a autenticação do IAM para o RDS Proxy, bem como para criar a política do IAM necessária e anexá-la a um perfil do IAM.

dica

Este procedimento só é necessário se você quiser criar seu próprio perfil do IAM. Caso contrário, o RDS pode criar automaticamente o perfil necessário ao configurar o proxy, para que você possa pular essas etapas.

Pré-requisitos

Antes de configurar a autenticação do IAM para o RDS Proxy, você deve ter o seguinte:

  • AWS Secrets Manager: pelo menos um segredo armazenado que contenha as credenciais do banco de dados. Para obter instruções sobre como criar esses segredos, consulte Configurar credenciais de banco de dados para RDS Proxy.

    Isso não será necessário se você estiver usando a autenticação de ponta a ponta do IAM.

  • Permissões do IAM: um perfil ou usuário do IAM com permissões para criar e gerenciar políticas, perfis e segredos do IAM no AWS Secrets Manager.

Criar uma política do IAM para a autenticação de ponta a ponta do IAM

Ao usar a autenticação de ponta a ponta do IAM, o RDS Proxy se conecta ao seu banco de dados usando a autenticação do IAM em vez de recuperar as credenciais do Secrets Manager. Isso requer configurar seu perfil do IAM com permissões rds-db:connect para as contas de banco de dados que você deseja usar com o proxy.

Para autenticar o RDS Proxy no banco de dados usando o IAM, crie um perfil do IAM com uma política que conceda as permissões de conexão com o banco de dados.

Como criar um perfil para autenticação de ponta a ponta do IAM com seu proxy
  1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. Crie uma política de permissões para o perfil. Para ver as etapas gerais, consulte Criar políticas do IAM (console).

    Cole essa política no editor de JSON e faça as seguintes alterações:

    • Substitua o ID da sua própria conta.

    • Substitua us-east-2 pela região onde o proxy deverá residir.

    • Substitua os IDs de recursos do banco de dados e os nomes de usuário pelos que você deseja usar. O formato dos IDs de recursos difere entre as instâncias do RDS e Aurora clusters.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] }
  3. Crie o perfil e anexe a política de permissões a ele. Para ver as etapas gerais, consulte Criar um perfil para delegar permissões a um serviço da AWS.

    Em Tipo de entidade confiável, escolha Serviço da AWS. Em Caso de uso, selecione RDS e escolha RDS - Adicionar perfil ao banco de dados para o caso de uso.

  4. Em Políticas de permissões, escolha a política que você criou.

  5. Em Selecionar entidades confiáveis, insira a seguinte política de confiança para o perfil:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Para criar o perfil usando a AWS CLI, envie a seguinte solicitação:

aws iam create-role \ --role-name my_e2e_iam_role_name \ --assume-role-policy-document '{"Version":"2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'

Depois, anexe a política ao perfil:

aws iam put-role-policy \ --role-name my_e2e_iam_role_name \ --policy-name e2e_iam_db_connect_policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] }'

Com as permissões e o perfil do IAM configurados para a autenticação de ponta a ponta do IAM, agora você pode criar um proxy com DefaultAuthScheme definido como IAM_AUTH. Esse proxy se autentica diretamente no banco de dados usando o IAM sem exigir segredos do Secrets Manager. Para instruções, consulte Criar um proxy para o Amazon Aurora.

Ao usar a autenticação de ponta a ponta do IAM, garanta que os usuários do banco de dados estejam configurados para a autenticação do IAM, conforme descrito em Criar uma conta de banco de dados usando autenticação do IAM.

Criar uma política do IAM para acesso ao Secrets Manager

Para permitir que o RDS Proxy recupere as credenciais do banco de dados do Secrets Manager, crie um perfil do IAM com uma política que conceda as permissões necessárias.

Como criar um perfil para acessar segredos e usá-los com o proxy
  1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. Crie uma política de permissões para o perfil. Para ver as etapas gerais, consulte Criar políticas do IAM (console).

    Cole essa política no editor de JSON e faça as seguintes alterações:

    • Substitua o ID da sua própria conta.

    • Substitua us-east-2 pela região onde o proxy residirá.

    • Substitua os nomes dos segredos pelos que você criou. Para ter mais informações, consulte Specifying KMS keys in IAM policy statements.

    • Substitua o ID da chave do KMS pelo que você usou para criptografar os segredos do Secrets Manager, seja a chave padrão ou sua própria chave.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1", "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2" ] }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }
  3. Crie o perfil e anexe a política de permissões a ele. Para ver as etapas gerais, consulte Criar um perfil para delegar permissões a um serviço da AWS.

    Em Tipo de entidade confiável, escolha Serviço da AWS. Em Caso de uso, selecione RDS e escolha RDS - Adicionar perfil ao banco de dados para o caso de uso.

  4. Em Políticas de permissões, escolha a política que você criou.

  5. Em Selecionar entidades confiáveis, insira a seguinte política de confiança para o perfil:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Para criar o perfil usando a AWS CLI, envie a seguinte solicitação:

aws iam create-role \ --role-name my_role_name \ --assume-role-policy-document '{"Version": "2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'

Depois, anexe a política ao perfil:

aws iam put-role-policy \ --role-name my_role_name \ --policy-name secret_reader_policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1", "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }'

Com o perfil e as permissões do IAM configurados, agora você pode criar um proxy e associá-lo a esse perfil. Isso permite que o proxy recupere seguramente as credenciais do banco de dados por meio do AWS Secrets Manager e habilite a autenticação do IAM para suas aplicações. Para instruções, consulte Criar um proxy para o Amazon Aurora.