Configurar políticas do AWS Identity and Access Management (IAM) para o RDS Proxy - Amazon Relational Database Service

Configurar políticas do AWS Identity and Access Management (IAM) para o RDS Proxy

Depois de criar os segredos no Secrets Manager, crie uma política do IAM que possa acessar esses segredos. Para obter mais informações sobre como usar a IAM, consulte Gerenciamento de identidade e acesso no Amazon RDS.

dica

O procedimento a seguir se aplicará se você usar o console do IAM. Se você usar o AWS Management Console para RDS, o RDS poderá criar a política do IAM para você automaticamente. Nesse caso, você pode ignorar o procedimento a seguir.

Como criar uma política do IAM que acessa os segredos do Secrets Manager para uso com o proxy
  1. Faça login no console do IAM. Siga o processo Criar perfil, conforme descrito em Criar perfis do IAM, selecionando Criar um perfil para delegar permissões a um serviço da AWS.

    Selecione Serviço da AWS para o Tipo de entidade confiável. Em Caso de uso, selecione RDS no menu suspenso Casos de uso para outros serviços da AWS. Selecione RDS: adicionar perfil ao banco de dados.

  2. Para a nova função, execute a etapa Add inline policy (Adicionar política em linha). Use os mesmos procedimentos gerais que em Editar políticas do IAM. Cole o seguinte JSON na caixa de texto JSON. Substitua o ID da sua própria conta. Substitua sua região da AWS por us-east-2. Substitua os nomes de recurso da Amazon (ARNs) pelos segredos criados. Consulte Especificar chaves do KMS em instruções de política do IAM. Para a ação kms:Decrypt, substitua o ARN da chave padrão AWS KMS key ou sua própria chave do KMS. O que você usa depende de qual deles você usou para criptografar os segredos do Secrets Manager.

    { "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" } } } ] }
  3. Edite a política de confiança desse perfil do IAM. Cole o seguinte JSON na caixa de texto JSON.

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

O comando a seguir executa a mesma operação na AWS CLI.

PREFIX=my_identifier USER_ARN=$(aws sts get-caller-identity --query "Arn" --output text) 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"}]}' ROLE_ARN=arn:aws:iam::account_id:role/my_role_name aws iam put-role-policy --role-name my_role_name \ --policy-name $PREFIX-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" } } } ] }