適 AWS 用於資料來源的 Amazon 受管 Grafana 許可和政策 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適 AWS 用於資料來源的 Amazon 受管 Grafana 許可和政策

Amazon 管理 Grafana 提供三種權限模式:

  • 目前帳戶的服務管理權限

  • 組織的服務管理權限

  • 客戶管理的權限

建立工作區時,您可以選擇要使用的權限模式。如果需要,您也可以稍後更改此設置。

在任一服務管理許可模式下,Amazon Managed Grafana 都會建立存取和探索帳戶或組織中 AWS 資料來源所需的角色和政策。然後,您可以視需要在 IAM 主控台中編輯這些政策。

單一帳戶的服務管理權限

在這種模式下,Amazon 託管 Grafana 創建一個名為 AmazonGrafanaServiceRole- 隨機 ID 的角色。然後,Amazon 受管的 Grafana 會針對您選擇從 Amazon 受管的 Grafana 工作區存取的每個 AWS 服務,附加政策至此角色。

CloudWatch

Amazon 受管的 Grafana 附加 AWS 受管政策。AmazonGrafanaCloudWatchAccess

注意

對於在建立AmazonGrafanaCloudWatchAccess受管政策 CloudWatch 之前使用的工作區,Amazon Managed Grafana 建立名稱AmazonGrafanaCloudWatchPolicy為隨機識別碼的客戶管理政策。

Amazon OpenSearch 服務

Amazon 受管的 Grafana 建立名稱AmazonGrafanaOpenSearchPolicy為隨機識別碼的客戶管理政策。資料來源存取需要「取得/張貼」權限。Amazon Managed Grafana 會使用「清單/描述」權限進行資料來源探索,但資料來源外掛程式不需要這些權限才能運作。該政策的內容如下:

{ "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 受管的 Grafana 附加 AWS 受管政策。AWSIoTSiteWiseReadOnlyAccess

Amazon Redshift

Amazon 受管的 Grafana 附加 AWS 受管政策。AmazonGrafanaRedshiftAccess

Amazon Athena

Amazon 受管的 Grafana 附加 AWS 受管政策。AmazonGrafanaAthenaAccess

Amazon Managed Service for Prometheus

Amazon 受管的 Grafana 建立名稱AmazonGrafanaPrometheusPolicy為隨機識別碼的客戶管理政策。Amazon Managed Grafana 會使用「清單/描述」權限進行資料來源探索,外掛程式不需要這些權限即可運作。該政策的內容如下:

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

Amazon 受管的 Grafana 建立名稱為 AmazonGrafanaSN SPolicy 隨機識別碼的客戶管理政策。此原則會限制您只能在帳戶中使用以字串grafana開頭的 SNS 主題。如果您建立自己的原則,則不需要這麼做。該政策的內容如下:

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

Amazon 受管的 Grafana 附加 AWS 受管政策。AmazonTimestreamReadOnlyAccess

X-Ray

Amazon 受管的 Grafana 附加 AWS 受管政策。AWSXrayReadOnlyAccess

組織的服務管理權限

只有在管理帳戶或組織中委派管理員帳戶中建立的工作區才支援此模式。委派的管理員帳戶可以建立和管理組織的堆疊集。如需委派管理員帳戶的相關資訊,請參閱註冊委派的系統管理員

注意

在組織的管理帳戶中建立資源 (例如 Amazon Managed Grafana 工作區) 是違反 AWS 安全最佳實務的做法。

在此模式中,Amazon 受管 Grafana 會建立存取組織中其他帳戶資 AWS 源所需的 AWS 所有 IAM 角色。在您選取的組織單位中的每個帳戶中,Amazon 受管的 Grafana 都會建立名為 AmazonGrafanaOrgMemberRole「隨機識別碼」的角色。此角色建立是透過與整合來執行 AWS CloudFormation StackSets。

此角色會為您選取要在工作區中使用的每個 AWS 資料來源附加原則。如需這些資料政策的內容,請參閱單一帳戶的服務管理權限

Amazon 受管的 Grafana 也會在組織的管理帳戶中建立名為 AmazonGrafanaOrgAdminRole「隨機識別碼」的角色。此角色允許 Amazon 受管的 Grafana 工作區權限存取組織中的其他帳戶。 AWS 服務通知通道策略也會附加到此角色。使用工作區中的「AWS 資料來源」功能表,為您的工作區可存取的每個帳戶快速佈建資料來源

若要使用此模式,您必須啟用 AWS CloudFormation Stackset 做為 AWS 組織中的信任服務。如需詳細資訊,請參閱使用啟用受信任的存取 AWS Organizations

以下是 AmazonGrafanaStackSet-隨機 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]

這裡是的內容 AmazonGrafanaOrgAdminPolicy-隨機 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" }] }

客戶管理的權限

如果您選擇使用客戶管理許可,則在建立 Amazon 受管的 Grafana 工作區時,可以在帳戶中指定現有的 IAM 角色。角色必須具有信任的信任原則grafana.amazonaws.com

以下是此類政策的範例:

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

若要讓該角色存取該帳戶中的 AWS 資料來源或通知通道,該角色必須具有本節前面列出之策略中的權限。例如,若要使用 CloudWatch 資料來源,資料來源必須具有中所列 CloudWatch 策略中的權限單一帳戶的服務管理權限

中顯示List的適用於 Prometheus 的 Amazon OpenSearch 服務和 Amazon 受管服務政策中的和Describe許可單一帳戶的服務管理權限 只需要資料來源探索和佈建才能正常運作。如果您只想手動設定這些資料來源,則不需要這些資料來源。

跨帳戶存取

在帳戶 111111111111 中建立工作區時,必須提供帳戶 1111111111111 中的角色。在此範例中,呼叫此角色WorkspaceRole。若要存取帳戶 99999999 中的資料,您必須在帳戶 999999999999 中建立角色。打電話給那DataSourceRole個 然後,您必須在WorkspaceRole和之間建立信任關係DataSourceRole。如需在兩個角色之間建立信任的詳細資訊,請參閱 IAM 教學課程:使用 IAM 角色跨 AWS 帳戶委派存取權

DataSourceRole需要針對您要使用的每個資料來源,包含本節稍早列出的政策陳述式。建立信任關係之後,您可以在工作區中任何資料來源的資料來源組態頁面的假設角色 ARN 欄位中,指定 DataSourceRole(arn: aw: iam:: 9999999999999999: 角色:DataSourceRole) 的 ARN。 AWS 然後,資料來源會以中定義的權限存取帳戶 999999999999。DataSourceRole