Autorisations et politiques Amazon Managed Grafana pour les sources de données AWS - Amazon Managed Grafana

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisations et politiques Amazon Managed Grafana pour les sources de données AWS

Amazon Managed Grafana propose trois modes d'autorisation :

  • Autorisations gérées par le service pour le compte courant

  • Autorisations gérées par les services pour les organisations

  • Autorisations gérées par le client

Lorsque vous créez un espace de travail, vous choisissez le mode d'autorisation à utiliser. Vous pouvez également le modifier ultérieurement si vous le souhaitez.

Dans l'un ou l'autre des modes d'autorisation gérés par le service, Amazon Managed Grafana crée les rôles et les politiques nécessaires pour accéder aux sources de AWS données de votre compte ou de votre organisation et les découvrir. Vous pouvez ensuite modifier ces politiques dans la console IAM si vous le souhaitez.

Autorisations gérées par le service pour un seul compte

Dans ce mode, Amazon Managed Grafana crée un rôle appelé AmazonGrafanaServiceRole- random-id. Amazon Managed Grafana associe ensuite une politique à ce rôle pour chaque AWS service auquel vous choisissez d'accéder depuis l'espace de travail Amazon Managed Grafana.

CloudWatch

Amazon Managed Grafana joint la politique AWS gérée. AmazonGrafanaCloudWatchAccess

Note

Pour les espaces de travail utilisés CloudWatch avant la création de la politique AmazonGrafanaCloudWatchAccessgérée, Amazon Managed Grafana a créé une politique gérée par le client avec le nom « random-id ». AmazonGrafanaCloudWatchPolicy

Amazon OpenSearch Service

Amazon Managed Grafana crée une politique gérée par le client avec le nom « random-id ». AmazonGrafanaOpenSearchPolicy Les autorisations Get/Post sont nécessaires pour accéder aux sources de données. Les autorisations List/Describe sont utilisées par Amazon Managed Grafana pour la découverte de sources de données, mais elles ne sont pas requises pour que le plug-in de source de données fonctionne. Le contenu de cette politique est le suivant :

{ "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

Amazon Managed Grafana joint la politique AWS gérée. AWSIoTSiteWiseReadOnlyAccess

Amazon Redshift

Amazon Managed Grafana joint la politique AWS gérée. AmazonGrafanaRedshiftAccess

Amazon Athena

Amazon Managed Grafana joint la politique AWS gérée. AmazonGrafanaAthenaAccess

Amazon Managed Service for Prometheus

Amazon Managed Grafana crée une politique gérée par le client avec le nom « random-id ». AmazonGrafanaPrometheusPolicy Les autorisations List/Describe sont utilisées par Amazon Managed Grafana pour la découverte de sources de données. Elles ne sont pas requises pour que le plug-in fonctionne. Le contenu de cette politique est le suivant :

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

Amazon Managed Grafana crée une politique gérée par le client nommée SNSPolicy- random-id. AmazonGrafana La politique vous interdit d'utiliser uniquement les rubriques SNS de votre compte qui commencent par la chaîne. grafana Cela n'est pas nécessaire si vous créez votre propre politique. Le contenu de cette politique est le suivant :

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

Amazon Managed Grafana joint la politique AWS gérée. AmazonTimestreamReadOnlyAccess

X-Ray

Amazon Managed Grafana joint la politique AWS gérée. AWSXrayReadOnlyAccess

Autorisations gérées par les services pour une organisation

Ce mode n'est pris en charge que pour les espaces de travail créés dans des comptes de gestion ou des comptes d'administrateur délégué dans une organisation. Les comptes d'administrateur délégué peuvent créer et administrer des ensembles de piles pour l'organisation. Pour plus d'informations sur les comptes d'administrateur délégué, voir Enregistrer un administrateur délégué.

Note

La création de ressources telles que les espaces de travail Grafana gérés par Amazon dans le compte de gestion d'une organisation va à l'encontre des meilleures pratiques en matière de AWS sécurité.

Dans ce mode, Amazon Managed Grafana crée tous les rôles IAM nécessaires pour accéder aux AWS ressources des autres comptes de votre organisation. AWS Dans chaque compte des unités organisationnelles que vous sélectionnez, Amazon Managed Grafana crée un rôle appelé « AmazonGrafanaOrgMemberRolerandom-id ». Cette création de rôle s'effectue par le biais d'une intégration avec AWS CloudFormation StackSets.

Ce rôle est associé à une politique pour chaque source de AWS données que vous choisissez d'utiliser dans l'espace de travail. Pour le contenu de ces politiques relatives aux données, consultezAutorisations gérées par le service pour un seul compte .

Amazon Managed Grafana crée également un rôle appelé « AmazonGrafanaOrgAdminRolerandom-id » dans le compte de gestion de l'organisation. Ce rôle autorise l'espace de travail Amazon Managed Grafana à accéder à d'autres comptes de l'organisation. AWS les politiques du canal de notification de service sont également associées à ce rôle. Utilisez le menu Source de AWS données de votre espace de travail pour fournir rapidement des sources de données pour chaque compte auquel votre espace de travail peut accéder

Pour utiliser ce mode, vous devez activer AWS CloudFormation Stacksets en tant que service fiable dans votre AWS organisation. Pour plus d'informations, voir Activer l'accès sécurisé avec AWS Organizations.

Voici le contenu de l'ensemble de piles AmazonGrafanaStackSet- 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]

Voici le contenu 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" }] }

Autorisations gérées par le client

Si vous choisissez d'utiliser des autorisations gérées par le client, vous spécifiez un rôle IAM existant dans votre compte lorsque vous créez un espace de travail Grafana géré par Amazon. Le rôle doit avoir une politique de confiance basée sur la confiancegrafana.amazonaws.com.

Voici un exemple d'une telle politique :

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

Pour que ce rôle puisse accéder aux sources de AWS données ou aux canaux de notification de ce compte, il doit disposer des autorisations définies dans les politiques répertoriées plus haut dans cette section. Par exemple, pour utiliser la source de CloudWatch données, elle doit disposer des autorisations définies dans la CloudWatch politique répertoriée dansAutorisations gérées par le service pour un seul compte .

Les Describe autorisations List et définies dans les politiques relatives à Amazon OpenSearch Service et Amazon Managed Service for Prometheus présentées Autorisations gérées par le service pour un seul compte dans le document ne sont nécessaires que pour que la découverte et le provisionnement des sources de données fonctionnent correctement. Ils ne sont pas nécessaires si vous souhaitez simplement configurer ces sources de données manuellement.

Permettre l'accès entre comptes

Lorsqu'un espace de travail est créé dans le compte 111111111111, un rôle dans le compte 1111111111111 doit être fourni. Pour cet exemple, appelez ce rôle WorkspaceRole. Pour accéder aux données du compte 999999999999, vous devez créer un rôle dans le compte 999999999999. Appelle ça DataSourceRole. Vous devez ensuite établir une relation de confiance entre WorkspaceRoleet DataSourceRole. Pour plus d'informations sur l'établissement de la confiance entre deux rôles, consultez le didacticiel IAM : déléguer l'accès entre AWS comptes à l'aide de rôles IAM.

DataSourceRoledoit contenir les déclarations de politique répertoriées plus haut dans cette section pour chaque source de données que vous souhaitez utiliser. Une fois la relation de confiance établie, vous pouvez spécifier l'ARN de DataSourceRole(arn:aws:iam : :99999999999999:role :DataSourceRole) dans le champ ARN Assumer le rôle sur la page de configuration de la source de données de n'importe quelle source de données de votre espace de travail. AWS La source de données accède ensuite au compte 999999999999 avec les autorisations définies dans. DataSourceRole