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
-
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.
-
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çãokms: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" } } } ] } -
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-namemy_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" } } } ] }