Atribuir acesso refinado para o Insights de Performance
O controle de acesso refinado oferece formas adicionais de controlar o acesso para o Insights de Performance. Esse controle de acesso pode permitir ou negar acesso a dimensões individuais para as ações GetResourceMetrics, DescribeDimensionKeys e GetDimensionKeyDetails do Insights de Performance. Para usar o acesso refinado, especifique as dimensões na política do IAM usando chaves de condição. A avaliação do acesso segue a lógica de avaliação da política do IAM. Para acessar mais informações, consulte Lógica da avaliação de política no Guia do usuário do IAM. Se a declaração de política do IAM não especificar nenhuma dimensão, a declaração controlará o acesso a todas as dimensões da ação especificada. Para ver a lista de dimensões disponíveis, consulte DimensionGroup.
Para descobrir as dimensões que as credenciais estão autorizadas a acessar, use o parâmetro AuthorizedActions em ListAvailableResourceDimensions e especifique a ação. Os valores permitidos para AuthorizedActions são os seguintes:
-
GetResourceMetrics -
DescribeDimensionKeys -
GetDimensionKeyDetails
Por exemplo, se você especificar GetResourceMetrics como o parâmetro AuthorizedActions, ListAvailableResourceDimensions exibirá a lista de dimensões que a ação GetResourceMetrics está autorizada a acessar. Se você especificar várias ações no parâmetro AuthorizedActions, ListAvailableResourceDimensions exibirá uma interseção de dimensões que essas ações estão autorizadas a acessar.
O exemplo a seguir concede acesso às dimensões especificadas para as ações GetResourceMetrics e DescribeDimensionKeys.
Veja abaixo a resposta para a dimensão solicitada:
// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, // { "Identifier": "db.sql_tokenized.db_id" }, // not included because not allows in the IAM Policy { "Identifier": "db.sql_tokenized.statement" } ] } ] } ] }
O exemplo a seguir especifica uma permissão e duas negações de acesso às dimensões.
Veja abaixo a resposta para as dimensões solicitadas:
// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["GetResourceMetrics"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // removed from response because denied by the IAM Policy // { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }
// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // allowed for DescribeDimensionKeys because our IAM Policy // denies it only for GetResourceMetrics { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }