Configuración de políticas de AWS Identity and Access Management (IAM) para RDS Proxy - Amazon Relational Database Service

Configuración de políticas de AWS Identity and Access Management (IAM) para RDS Proxy

Después de crear los secretos en Secrets Manager, se crea una política de IAM que puede acceder a esos secretos. Para obtener más información acerca del uso de la IAM, consulte Administración de la identidad y el acceso en Amazon RDS.

sugerencia

El procedimiento siguiente se aplica si utiliza la consola de IAM. Si utiliza la AWS Management Console para RDS, RDS puede crear automáticamente la política de IAM. En ese caso, puede omitir el siguiente procedimiento.

Para crear una política de IAM que acceda a sus secretos de Secrets Manager para su uso con su proxy
  1. Inicie sesión en la consola de IAM. Siga el proceso de Crear rol, tal como se describe en Creación de roles de IAM, y elija Crear un rol para delegar permisos a un servicio de AWS.

    Elija Servicio de AWS en Tipo de entidad de confianza. En Caso de uso, seleccione RDS en el menú desplegable Casos de uso para otros servicios de AWS. Elija RDS: Añadir rol a la base de datos.

  2. Para el nuevo rol, realice el paso Add inline policy (Añadir política en línea). Utilice los mismos procedimientos generales que en Edición de políticas de IAM. Pegue el siguiente JSON en el cuadro de texto de JSON. Sustituya su propio ID de cuenta. Sustituya su región de AWS por us-east-2. Sustituya los nombres de recurso de Amazon (ARN) por los secretos que ha creado. Consulte Especificación de claves KMS en declaraciones de políticas de IAM. Para la acción kms:Decrypt, sustituya el ARN de la clave de KMS predeterminada AWS KMS key o su propia clave de KMS. El que utilice depende del que haya utilizado para cifrar los secretos de 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. Modifique la política de confianza para este rol de IAM. Pegue el siguiente JSON en el cuadro de texto de JSON.

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

Los comandos siguientes realizan la misma operación a través de la 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" } } } ] }