Amazon gestionó los permisos y las políticas de Grafana para las fuentes de datos AWS - Amazon Managed Grafana

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Amazon gestionó los permisos y las políticas de Grafana para las fuentes de datos AWS

Amazon Managed Grafana ofrece tres modos de permisos:

  • Permisos gestionados por el servicio para la cuenta corriente

  • Permisos gestionados por el servicio para organizaciones

  • Permisos gestionados por el cliente

Al crear un espacio de trabajo, se elige el modo de permiso que se va a utilizar. Si lo desea, también puede cambiarlo más adelante.

En cualquiera de los modos de permisos gestionados por el servicio, Amazon Managed Grafana crea las funciones y políticas necesarias para acceder a las fuentes de AWS datos de su cuenta u organización y descubrirlas. A continuación, puede editar estas políticas en la consola de IAM si así lo desea.

Permisos gestionados por el servicio para una sola cuenta

En este modo, Amazon Managed Grafana crea un rol llamado AmazonGrafanaServiceRolerandom-id. A continuación, Amazon Managed Grafana adjunta una política a este rol para cada AWS servicio al que seleccione acceder desde el espacio de trabajo de Amazon Managed Grafana.

CloudWatch

Amazon Managed Grafana adjunta la AWS política gestionada. AmazonGrafanaCloudWatchAccess

nota

Para los espacios de trabajo que se utilizaban CloudWatch antes de que se creara la política AmazonGrafanaCloudWatchAccessgestionada, Amazon Managed Grafana creó una política gestionada por el cliente con el nombre random-id. AmazonGrafanaCloudWatchPolicy

OpenSearch Servicio Amazon

Amazon Managed Grafana crea una política gestionada por el cliente con el nombre random-id. AmazonGrafanaOpenSearchPolicy Los permisos Get/Post son necesarios para acceder a la fuente de datos. Amazon Managed Grafana utiliza los permisos List/Describe para descubrir fuentes de datos, pero no son necesarios para que el complemento de fuentes de datos funcione. El contenido de la política es el siguiente:

{ "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 adjunta la AWS política gestionada. AWSIoTSiteWiseReadOnlyAccess

Amazon Redshift

Amazon Managed Grafana adjunta la AWS política gestionada. AmazonGrafanaRedshiftAccess

Amazon Athena

Amazon Managed Grafana adjunta la AWS política gestionada. AmazonGrafanaAthenaAccess

Servicio administrado por Amazon para Prometheus

Amazon Managed Grafana crea una política gestionada por el cliente con el nombre random-id. AmazonGrafanaPrometheusPolicy Amazon Managed Grafana utiliza los permisos List/Describe para descubrir fuentes de datos, pero no son necesarios para que el complemento funcione. El contenido de la política es el siguiente:

{ "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 crea una política gestionada por el cliente con el nombre AmazonGrafana SNSPolicy- random-id. La política le restringe el uso exclusivo de temas de redes sociales en su cuenta que comiencen por la cadena. grafana Esto no es necesario si crea su propia política. El contenido de la política es el siguiente:

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

Amazon Managed Grafana adjunta la AWS política gestionada. AmazonTimestreamReadOnlyAccess

X-Ray

Amazon Managed Grafana adjunta la AWS política gestionada. AWSXrayReadOnlyAccess

Permisos gestionados por el servicio para una organización

Este modo solo es compatible con los espacios de trabajo creados en cuentas de administración o cuentas de administrador delegado de una organización. Las cuentas de administrador delegado pueden crear y administrar conjuntos apilados para la organización. Para obtener más información sobre las cuentas de administrador delegado, consulte Registrar un administrador delegado.

nota

Crear recursos como los espacios de trabajo de Grafana gestionados por Amazon en la cuenta de administración de una organización va en contra de las mejores prácticas de AWS seguridad.

En este modo, Amazon Managed Grafana crea todas las funciones de IAM necesarias para acceder a AWS los recursos de otras cuentas de la organización. AWS En cada cuenta de las unidades organizativas que selecciones, Amazon Managed Grafana crea un rol denominado AmazonGrafanaOrgMemberRolerandom-id. La creación de este rol se realiza mediante una integración con. AWS CloudFormation StackSets

Este rol tiene una política adjunta para cada fuente de AWS datos que seleccione usar en el espacio de trabajo. Para ver el contenido de estas políticas de datos, consultePermisos gestionados por el servicio para una sola cuenta .

Amazon Managed Grafana también crea un rol llamado AmazonGrafanaOrgAdminRolerandom-id en la cuenta de administración de la organización. Esta función permite al espacio de trabajo de Grafana gestionado por Amazon acceder a otras cuentas de la organización. AWS Las políticas del canal de notificación de servicios también están asociadas a esta función. Usa el menú Fuente de AWS datos de tu espacio de trabajo para aprovisionar rápidamente las fuentes de datos para cada cuenta a la que pueda acceder tu espacio de trabajo

Para usar este modo, debes habilitar AWS CloudFormation Stacksets como un servicio de confianza en tu AWS organización. Para obtener más información, consulta Habilitar el acceso de confianza con. AWS Organizations

Este es el contenido del conjunto de pilas con identificadores aleatorios AmazonGrafanaStackSet:

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]

Este es el contenido 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" }] }

Permisos gestionados por el cliente

Si opta por utilizar permisos gestionados por el cliente, debe especificar un rol de IAM existente en su cuenta al crear un espacio de trabajo de Grafana gestionado por Amazon. El rol debe tener una política de confianza en la que se confíe. grafana.amazonaws.com

El siguiente es un ejemplo de una política de este tipo:

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

Para que esa función pueda acceder a las fuentes de AWS datos o los canales de notificación de esa cuenta, debe tener los permisos de las políticas enumeradas anteriormente en esta sección. Por ejemplo, para usar la fuente de CloudWatch datos, debe tener los permisos de la CloudWatch política que se indica enPermisos gestionados por el servicio para una sola cuenta .

Los Describe permisos List y permisos de las políticas de Amazon OpenSearch Service y Amazon Managed Service for Prometheus que se muestran Permisos gestionados por el servicio para una sola cuenta en ellas solo son necesarios para que la detección y el aprovisionamiento de la fuente de datos funcionen correctamente. No son necesarios si solo quieres configurar estas fuentes de datos manualmente.

Acceso entre cuentas

Cuando se crea un espacio de trabajo en la cuenta 1111, se debe proporcionar un rol en la cuenta 11111. Para este ejemplo, llame a este rol. WorkspaceRole Para acceder a los datos de la cuenta 379 9999, debe crear un rol en la cuenta 19 9999. Llámalo a eso. DataSourceRole Luego debe establecer una relación de confianza entre WorkspaceRoley DataSourceRole. Para obtener más información sobre cómo establecer la confianza entre dos funciones, consulte el tutorial de IAM: delegue el acceso entre AWS cuentas mediante funciones de IAM.

DataSourceRoledebe contener las declaraciones de política enumeradas anteriormente en esta sección para cada fuente de datos que desee utilizar. Una vez establecida la relación de confianza, puede especificar el ARN de DataSourceRole(arn:aws:iam: :379 9999:role:DataSourceRole) en el campo ARN para asumir el rol de la página de configuración de la fuente de datos de cualquier fuente de datos de su espacio de trabajo. AWS A continuación, la fuente de datos accede a la cuenta 897 9999 con los permisos que se definen en. DataSourceRole