Permissões e políticas do Amazon Managed Grafana para AWS fontes de dados - Amazon Managed Grafana

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Permissões e políticas do Amazon Managed Grafana para AWS fontes de dados

O Amazon Managed Grafana oferece três modos de permissão:

  • Permissões gerenciadas pelo serviço para a conta atual

  • Permissões gerenciadas por serviços para organizações

  • Permissões gerenciadas pelo cliente

Ao criar um espaço de trabalho, você escolhe qual modo de permissão usar. Você também pode alterar isso mais tarde, se quiser.

Em qualquer um dos modos de permissão gerenciados pelo serviço, o Amazon Managed Grafana cria funções e políticas que são necessárias para acessar e descobrir fontes de AWS dados em sua conta ou organização. Em seguida, você pode editar essas políticas no console do IAM, se quiser.

Permissões gerenciadas pelo serviço para uma única conta

Nesse modo, o Amazon Managed Grafana cria uma função chamada AmazonGrafanaServiceRole- random-id. Em seguida, o Amazon Managed Grafana atribui uma política a essa função para cada AWS serviço que você seleciona para acessar a partir do espaço de trabalho Amazon Managed Grafana.

CloudWatch

O Amazon Managed Grafana anexa a política gerenciada AWS . AmazonGrafanaCloudWatchAccess

nota

Para espaços de trabalho usados CloudWatch antes da criação da política AmazonGrafanaCloudWatchAccessgerenciada, o Amazon Managed Grafana criou uma política gerenciada pelo cliente com o nome - random-id. AmazonGrafanaCloudWatchPolicy

OpenSearch Serviço Amazon

O Amazon Managed Grafana cria uma política gerenciada pelo cliente com o nome - random-id. AmazonGrafanaOpenSearchPolicy As permissões Get/Post são necessárias para o acesso à fonte de dados. As permissões Listar/Descrever são usadas pelo Amazon Managed Grafana para a descoberta da fonte de dados, mas não são necessárias para que o plug-in da fonte de dados funcione. O conteúdo da política é o seguinte:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpGet", "es:DescribeElasticsearchDomains", "es:ListDomainNames" ], "Resource": "*" }, { "Effect": "Allow", "Action": "es:ESHttpPost", "Resource": [ "arn:aws:es:*:*:domain/*/_msearch*", "arn:aws:es:*:*:domain/*/_opendistro/_ppl" ] } ] }
AWS IoT SiteWise

O Amazon Managed Grafana anexa a política gerenciada AWS . AWSIoTSiteWiseReadOnlyAccess

Amazon Redshift

O Amazon Managed Grafana anexa a política gerenciada AWS . AmazonGrafanaRedshiftAccess

Amazon Athena

O Amazon Managed Grafana anexa a política gerenciada AWS . AmazonGrafanaAthenaAccess

Amazon Managed Service for Prometheus

O Amazon Managed Grafana cria uma política gerenciada pelo cliente com o nome - random-id. AmazonGrafanaPrometheusPolicy As permissões Listar/Descrever são usadas pelo Amazon Managed Grafana para a descoberta da fonte de dados. Elas não são necessárias para que o plug-in funcione. O conteúdo da política é o seguinte:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aps:ListWorkspaces", "aps:DescribeWorkspace", "aps:QueryMetrics", "aps:GetLabels", "aps:GetSeries", "aps:GetMetricMetadata" ], "Resource": "*" } ] }
Amazon SNS

O Amazon Managed Grafana cria uma política gerenciada pelo cliente com o nome AmazonGrafana SNSPolicy- random-id. A política restringe você a usar somente tópicos do SNS em sua conta que comecem com a string. grafana Isso não é necessário se você criar sua própria política. O conteúdo da política é o seguinte:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:accountId:grafana*" ] } ] }
Timestream

O Amazon Managed Grafana anexa a política gerenciada AWS . AmazonTimestreamReadOnlyAccess

X-Ray

O Amazon Managed Grafana anexa a política gerenciada AWS . AWSXrayReadOnlyAccess

Permissões gerenciadas por serviços para uma organização

Esse modo é suportado somente para espaços de trabalho criados em contas de gerenciamento ou contas de administrador delegado em uma organização. As contas de administrador delegado podem criar e administrar conjuntos de pilhas para a organização. Para obter mais informações sobre contas de administrador delegado, consulte Registrar um administrador delegado.

nota

Criar recursos como espaços de trabalho Amazon Managed Grafana na conta de gerenciamento de uma organização é contra as melhores práticas de AWS segurança.

Nesse modo, o Amazon Managed Grafana cria todas as funções do IAM necessárias para acessar AWS recursos em outras contas em sua AWS organização. Em cada conta nas unidades organizacionais que você seleciona, o Amazon Managed Grafana cria uma função chamada AmazonGrafanaOrgMemberRole- random-id. Essa criação de função é realizada por meio de uma integração com AWS CloudFormation StackSets.

Essa função tem uma política anexada para cada fonte de AWS dados que você seleciona para usar no espaço de trabalho. Para obter o conteúdo dessas políticas de dados, consultePermissões gerenciadas pelo serviço para uma única conta .

O Amazon Managed Grafana também cria uma função chamada AmazonGrafanaOrgAdminRole- random-id na conta de gerenciamento da organização. Essa função permite que o espaço de trabalho Amazon Managed Grafana acesse outras contas na organização. AWS as políticas do canal de notificação de serviço também são associadas a essa função. Use o menu Fonte de AWS dados em seu espaço de trabalho para provisionar rapidamente fontes de dados para cada conta que seu espaço de trabalho pode acessar

Para usar esse modo, você deve habilitar o AWS CloudFormation Stacksets como um serviço confiável em sua AWS organização. Para obter mais informações, consulte Habilitar acesso confiável com AWS Organizations.

Aqui está o conteúdo do conjunto de AmazonGrafanaStackSetpilhas - random-id:

Parameters: IncludePrometheusPolicy: Description: Whether to include Amazon Prometheus access in the role Type: String AllowedValues: - true - false Default: false IncludeAESPolicy: Description: Whether to include Amazon Elasticsearch access in the role Type: String AllowedValues: - true - false Default: false IncludeCloudWatchPolicy: Description: Whether to include CloudWatch access in the role Type: String AllowedValues: - true - false Default: false IncludeTimestreamPolicy: Description: Whether to include Amazon Timestream access in the role Type: String AllowedValues: - true - false Default: false IncludeXrayPolicy: Description: Whether to include AWS X-Ray access in the role Type: String AllowedValues: - true - false Default: false IncludeSitewisePolicy: Description: Whether to include AWS IoT SiteWise access in the role Type: String AllowedValues: - true - false Default: false IncludeRedshiftPolicy: Description: Whether to include Amazon Redshift access in the role Type: String AllowedValues: - true - false Default: false IncludeAthenaPolicy: Description: Whether to include Amazon Athena access in the role Type: String AllowedValues: - true - false Default: false RoleName: Description: Name of the role to create Type: String AdminAccountId: Description: Account ID of the Amazon Grafana org admin Type: String Conditions: addPrometheus: !Equals [!Ref IncludePrometheusPolicy, true] addAES: !Equals [!Ref IncludeAESPolicy, true] addCloudWatch: !Equals [!Ref IncludeCloudWatchPolicy, true] addTimestream: !Equals [!Ref IncludeTimestreamPolicy, true] addXray: !Equals [!Ref IncludeXrayPolicy, true] addSitewise: !Equals [!Ref IncludeSitewisePolicy, true] addRedshift: !Equals [!Ref IncludeRedshiftPolicy, true] addAthena: !Equals [!Ref IncludeAthenaPolicy, true] Resources: PrometheusPolicy: Type: AWS::IAM::Policy Condition: addPrometheus Properties: Roles: - !Ref GrafanaMemberServiceRole PolicyName: AmazonGrafanaPrometheusPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - aps:QueryMetrics - aps:GetLabels - aps:GetSeries - aps:GetMetricMetadata - aps:ListWorkspaces - aps:DescribeWorkspace Resource: '*' AESPolicy: Type: AWS::IAM::Policy Condition: addAES Properties: Roles: - !Ref GrafanaMemberServiceRole PolicyName: AmazonGrafanaElasticsearchPolicy PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowReadingESDomains Effect: Allow Action: - es:ESHttpGet - es:ESHttpPost - es:ListDomainNames - es:DescribeElasticsearchDomains Resource: '*' CloudWatchPolicy: Type: AWS::IAM::Policy Condition: addCloudWatch Properties: Roles: - !Ref GrafanaMemberServiceRole PolicyName: AmazonGrafanaCloudWatchPolicy PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowReadingMetricsFromCloudWatch Effect: Allow Action: - cloudwatch:DescribeAlarmsForMetric - cloudwatch:DescribeAlarmHistory - cloudwatch:DescribeAlarms - cloudwatch:ListMetrics - cloudwatch:GetMetricStatistics - cloudwatch:GetMetricData - cloudwatch:GetInsightRuleReport Resource: "*" - Sid: AllowReadingLogsFromCloudWatch Effect: Allow Action: - logs:DescribeLogGroups - logs:GetLogGroupFields - logs:StartQuery - logs:StopQuery - logs:GetQueryResults - logs:GetLogEvents Resource: "*" - Sid: AllowReadingTagsInstancesRegionsFromEC2 Effect: Allow Action: - ec2:DescribeTags - ec2:DescribeInstances - ec2:DescribeRegions Resource: "*" - Sid: AllowReadingResourcesForTags Effect: Allow Action: - tag:GetResources Resource: "*" GrafanaMemberServiceRole: Type: 'AWS::IAM::Role' Properties: RoleName: !Ref RoleName AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: AWS: !Sub arn:aws:iam::${AdminAccountId}:root Action: - 'sts:AssumeRole' Path: /service-role/ ManagedPolicyArns: - !If [addTimestream, arn:aws:iam::aws:policy/AmazonTimestreamReadOnlyAccess, !Ref AWS::NoValue] - !If [addXray, arn:aws:iam::aws:policy/AWSXrayReadOnlyAccess, !Ref AWS::NoValue] - !If [addSitewise, arn:aws:iam::aws:policy/AWSIoTSiteWiseReadOnlyAccess, !Ref AWS::NoValue] - !If [addRedshift, arn:aws:iam::aws:policy/service-role/AmazonGrafanaRedshiftAccess, !Ref AWS::NoValue] - !If [addAthena, arn:aws:iam::aws:policy/service-role/AmazonGrafanaAthenaAccess, !Ref AWS::NoValue]

Aqui está o conteúdo de AmazonGrafanaOrgAdminPolicy- random-id.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "organizations:ListAccountsForParent", "organizations:ListOrganizationalUnitsForParent" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-organizationId" } } }, { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::*:role/service-role/AmazonGrafanaOrgMemberRole-random-Id" }] }

Permissões gerenciadas pelo cliente

Se você optar por usar permissões gerenciadas pelo cliente, você especifica uma função do IAM existente em sua conta ao criar um espaço de trabalho Amazon Managed Grafana. A função deve ter uma política de confiança em que grafana.amazonaws.com confie.

Veja a seguir um exemplo dessa política:

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

Para que essa função acesse fontes de AWS dados ou canais de notificação nessa conta, ela deve ter as permissões nas políticas listadas anteriormente nesta seção. Por exemplo, para usar a fonte de CloudWatch dados, ela deve ter as permissões na CloudWatch política listada emPermissões gerenciadas pelo serviço para uma única conta .

As Describe permissões List e as políticas do Amazon OpenSearch Service e do Amazon Managed Service para Prometheus mostradas Permissões gerenciadas pelo serviço para uma única conta em são necessárias somente para que a descoberta e o provisionamento da fonte de dados funcionem corretamente. Eles não são necessários se você quiser apenas configurar essas fontes de dados manualmente.

Acesso entre contas

Quando um espaço de trabalho é criado na conta 111111111111, uma função na conta 1111111111111 deve ser fornecida. Neste exemplo, chame essa função WorkspaceRole. Para acessar dados na conta 999999999999, você deve criar uma função na conta 999999999999. Chame isso DataSourceRole. Você deve então estabelecer uma relação de confiança entre WorkspaceRoleDataSourceRolee. Para obter mais informações sobre como estabelecer confiança entre duas funções, consulte o Tutorial do IAM: Delegar acesso entre AWS contas usando funções do IAM.

DataSourceRoleprecisa conter as declarações de política listadas anteriormente nesta seção para cada fonte de dados que você deseja usar. Depois que a relação de confiança for estabelecida, você poderá especificar o ARN de DataSourceRole(arn:aws:iam: :9999999999:role:DataSourceRole) no campo Assumir função ARN na página de configuração da fonte de dados de qualquer fonte de dados em seu espaço de trabalho. AWS A fonte de dados então acessa a conta 999999999999 com as permissões definidas em. DataSourceRole