Cambio de una política de AWS KMS para Información de base de datos
Información de base de datos utiliza una AWS KMS key para cifrar información confidencial. Cuando active Información de base de datos a través de la API o de la consola, podrá hacer una de las siguientes cosas:
-
Elegir la predeterminada Clave administrada de AWS.
Amazon RDS utiliza la Clave administrada de AWS para su nueva instancia de base de datos. Amazon RDS crea una Clave administrada de AWS para su cuenta de Cuenta de AWS. Su cuenta de Cuenta de AWS tiene una Clave administrada de AWS diferente para Amazon RDS para cada Región de AWS.
-
Elija una clave administrada por el cliente.
Si especifica una clave administrada por el cliente, los usuarios de la cuenta que llamen a la API de Información de base de datos necesitarán los permisos
kms:Decryptykms:GenerateDataKeysobre la clave de KMS. Puede configurar estos permisos a través de directivas de IAM. Sin embargo, le recomendamos que administre estos permisos a través de su política de claves de KMS. Para obtener más información, consulte Políticas de claves en AWS KMS en la Guía para desarrolladores de AWS Key Management Service.
ejemplo
En el siguiente ejemplo se muestra cómo agregar instrucciones a la política de claves de KMS. Estas instrucciones permiten el acceso a Información de base de datos. Dependiendo de cómo utilice la clave KMS, es posible que desee cambiar algunas restricciones. Antes de agregar sentencias a la directiva, elimine todos los comentarios.
Cómo Información de base de datos utiliza la clave administrada por el cliente de AWS KMS
Información de base de datos utiliza claves administradas por el cliente para cifrar información confidencial. Al activar Información de base de datos, puede proporcionar una clave de AWS KMS a través de la API. Información de base de datos crea permisos de AWS KMS en esta clave. Utiliza la clave y realiza las operaciones necesarias para procesar los datos confidenciales. Los datos confidenciales incluyen campos como el usuario, la base de datos, la aplicación y el texto de la consulta SQL. Información de base de datos garantiza que los datos permanezcan cifrados tanto en reposo como en tránsito.
Cómo funciona la IAM de Información de base de datos con AWS KMS
IAM otorga permisos a API específicas. Información de base de datos tiene las siguientes API públicas, que puede restringir mediante políticas de IAM:
DescribeDimensionKeysGetDimensionKeyDetailsGetResourceMetadataGetResourceMetricsListAvailableResourceDimensionsListAvailableResourceMetrics
Puede utilizar las siguientes solicitudes de API para obtener datos confidenciales.
DescribeDimensionKeysGetDimensionKeyDetailsGetResourceMetrics
Cuando utiliza la API para obtener información confidencial, Información de base de datos aprovecha las credenciales del intermediario. Esta comprobación garantiza que el acceso a los datos confidenciales esté limitado a quienes tengan acceso a la clave de KMS.
Al llamar a estas API, necesita permisos para llamar a la API a través de la política de IAM y permisos para invocar la acción kms:decrypt a través de la política de claves de AWS KMS.
La API GetResourceMetrics puede devolver datos confidenciales y no confidenciales. Los parámetros de la solicitud determinan si la respuesta debe incluir datos confidenciales. La API devuelve datos confidenciales cuando la solicitud incluye una dimensión confidencial en los parámetros del filtro o de grupo.
Para obtener más información acerca de las dimensiones que puede utilizar con la API GetResourceMetrics, consulte DimensionGroup.
ejemplo Ejemplos
En el siguiente ejemplo se solicitan los datos confidenciales del grupo:db.user
POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.user", "Limit": 2 } } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }
ejemplo
En el siguiente ejemplo se solicitan los datos no confidenciales de la métrica:db.load.avg
POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg" } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }