Configurar políticas de acesso para o Performance Insights
Para acessar o Performance Insights, é necessário que uma entidade principal tenha as permissões apropriadas do AWS Identity and Access Management (IAM). Você pode conceder acesso das seguintes maneiras:
-
Anexe a política gerenciada
AmazonRDSPerformanceInsightsReadOnly
para um conjunto de permissões ou perfil para acessar todas as operações somente de leitura da API do Insights de Performance. -
Anexe a política gerenciada
AmazonRDSPerformanceInsightsFullAccess
para um conjunto de permissões ou perfil para acessar todas as operações da API do Insights de Performance. -
Crie uma política do IAM personalizada e anexe ela a um conjunto de permissões ou perfil.
Se você especificou uma chave gerenciada pelo cliente quando ativou o Performance Insights, verifique se os usuários em sua conta têm as permissões kms:Decrypt
e kms:GenerateDataKey
na chave do KMS.
Anexar a política AmazonRDSPerformanceInsightsReadOnly a uma entidade principal do IAM
O AmazonRDSPerformanceInsightsReadOnly
é uma política gerenciada pela AWS que concede acesso a todas as operações somente leitura da API do Insights de Performance do Amazon RDS.
Se você anexar AmazonRDSPerformanceInsightsReadOnly
a um conjunto de permissões ou perfil, o destinatário poderá usar o Insights de Performance com outros atributos do console.
Para obter mais informações, consulte Política gerenciada pela AWS: AmazonRDSPerformanceInsightsReadOnly.
Anexar a política AmazonRDSPerformanceInsightsFullAccess a uma entidade principal do IAM
A AmazonRDSPerformanceInsightsFullAccess
é uma política gerenciada pela AWS que concede acesso a todas as operações da API do Insights de Performance do Amazon RDS.
Se você anexar AmazonRDSPerformanceInsightsFullAccess
a um conjunto de permissões ou perfil, o destinatário poderá usar o Insights de Performance com outros atributos do console.
Para obter mais informações, consulte Política gerenciada pela AWS: AmazonRDSPerformanceInsightsFullAccess.
Criação de uma política de IAM personalizada para o Performance Insights
Para usuários que não têm a política AmazonRDSPerformanceInsightsReadOnly
ou AmazonRDSPerformanceInsightsFullAccess
, é possível conceder acesso ao Insights de Performance criando ou modificando uma política do IAM gerenciada pelo usuário. Quando você anexa a política a um conjunto de permissões ou perfil do IAM, o destinatário pode usar o Performance Insights.
Para criar uma política personalizada
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Policies (Políticas).
-
Escolha Create policy (Criar política).
-
Na página Create Policy (Criar política), escolha a guia JSON.
-
Copie e cole o texto fornecido na seção Documento de política JSON no Guia de referência de políticas gerenciadas pela AWS para a política AmazonRDSPerformanceInsightsReadOnly ou AmazonRDSPerformanceInsightsFullAccess.
-
Escolha Review policy (Revisar política).
-
Forneça um nome para a política e, se preferir, uma descrição. Em seguida, escolha Create policy (Criar política).
Agora você pode anexar a política a um conjunto de permissões ou perfil. O procedimento a seguir pressupõe que você já tem um usuário disponível para essa finalidade.
Como anexar a política a um usuário
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Usuários.
-
Escolha um usuário existente na lista.
Importante
Para usar o Performance Insights, você deve ter acesso ao Amazon RDS e à política personalizada. Por exemplo, a política predefinida
AmazonRDSPerformanceInsightsReadOnly
concede acesso somente leitura ao Amazon RDS. Para obter mais informações, consulte Gerenciamento do acesso usando políticas. -
Na página Summary (Resumo), escolha Add permissions (Adicionar permissões).
-
Escolha Attach existing policies directly (Anexar políticas existentes diretamente). Em Search (Pesquisar), digite os primeiros caracteres do nome da sua política, conforme mostrado a seguir.
-
Escolha a política e, em seguida, escolha Next: Review (Próximo: revisar).
-
Escolha Add permissions (Adicionar permissões).
Como configurar uma política do AWS KMS para o Performance Insights
O Performance Insights usa uma AWS KMS key para criptografar dados sigilosos. Ao habilitar o Performance Insights por meio da API ou do console, você poderá seguir um destes procedimentos:
-
Escolha o Chave gerenciada pela AWS padrão.
O Amazon RDS usa a Chave gerenciada pela AWS para a sua nova instância de banco de dados. O Amazon RDS cria uma Chave gerenciada pela AWS para a sua Conta da AWS. A sua Conta da AWS tem uma Chave gerenciada pela AWS diferente para o Amazon RDS para cada Região da AWS.
-
Escolha uma chave gerenciada pelo cliente.
Se você especificar uma chave gerenciada pelo cliente, os usuários em sua conta que chamam a API do Performance Insights precisarão das permissões
kms:Decrypt
ekms:GenerateDataKey
na chave do KMS. Você pode configurar essas permissões por meio de políticas do IAM. No entanto, recomendamos que você gerencie essas permissões por meio da política de chaves do KMS. Para obter mais informações, consulte o tópico sobre como Utilizar políticas de chaves no AWS KMS.
O exemplo a seguir mostra como adicionar instruções à sua política da chaves do KMS. Essas instruções permitem acesso ao Performance Insights. Dependendo de como você usa a chave KMS, talvez você queira alterar algumas restrições. Antes de adicionar instruções à política, remova todos os comentários.
{ "Version" : "2012-10-17", "Id" : "your-policy", "Statement" : [ { //This represents a statement that currently exists in your policy. } ...., //Starting here, add new statement to your policy for Performance Insights. //We recommend that you add one new statement for every RDS instance { "Sid" : "Allow viewing RDS Performance Insights", "Effect": "Allow", "Principal": { "AWS": [ //One or more principals allowed to access Performance Insights "arn:aws:iam::
444455556666
:role/Role1
" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition" : { "StringEquals" : { //Restrict access to only RDS APIs (including Performance Insights). //Replaceregion
with your AWS Region. //For example, specify us-west-2. "kms:ViaService" : "rds.region
.amazonaws.com" }, "ForAnyValue:StringEquals": { //Restrict access to only data encrypted by Performance Insights. "kms:EncryptionContext:aws:pi:service": "rds", "kms:EncryptionContext:service": "pi", //Restrict access to a specific RDS instance. //The value is a DbiResourceId. "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE
" } } }
Como o Insights de Performance usa a chave do AWS KMS gerenciada pelo cliente
O Insights de Performance usa chaves gerenciadas pelo cliente para criptografar dados sigilosos. Ao ativar o Insights de Performance, você pode fornecer uma chave do AWS KMS por meio da API. O Insights de Performance cria permissões do KMS nessa chave. Ele usa a chave e executa as operações necessárias para processar dados sigilosos. Os dados sigilosos incluem campos como usuário, banco de dados, aplicação e texto de consulta SQL. O Insights de Performance garante que os dados permaneçam criptografados tanto em repouso quanto em trânsito.
Como o Insights de Performance e o IAM funcionam com o AWS KMS
O IAM concede permissões para APIs específicas. O Insights de Performance tem as seguintes APIs públicas, que você pode restringir usando políticas do IAM:
DescribeDimensionKeys
GetDimensionKeyDetails
GetResourceMetadata
GetResourceMetrics
ListAvailableResourceDimensions
ListAvailableResourceMetrics
Você pode usar as solicitações de API a seguir para obter dados sigilosos.
DescribeDimensionKeys
GetDimensionKeyDetails
GetResourceMetrics
Quando você usa a API para obter dados sigilosos, o Insights de Performance utiliza as credenciais do chamador. Essa verificação garante que o acesso a dados sigilosos seja limitado àqueles com acesso à chave do KMS.
Ao chamar essas APIs, você precisa de permissões para chamar a API por meio da política do IAM e de permissões para invocar a ação kms:decrypt
por meio da política de chave AWS KMS.
A API GetResourceMetrics
pode retornar dados sigilosos e não sigilosos. Os parâmetros da solicitação determinam se a resposta deve incluir dados sigilosos. A API retorna dados sigilosos quando a solicitação inclui uma dimensão confidencial nos parâmetros filtrar ou agrupar por.
Para obter mais informações sobre as dimensões que você pode usar com a API GetResourceMetrics
, consulte DimensionGroup.
exemplo Exemplos
O seguinte exemplo solicita dados sigilosos para o 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 }
O seguinte exemplo solicita dados não sigilosos para o grupo 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 }