데이터 소스에 대한 Amazon 관리형 Grafana 권한 및 정책 AWS - Amazon Managed Grafana

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 소스에 대한 Amazon 관리형 Grafana 권한 및 정책 AWS

아마존 매니지드 그라파나는 세 가지 권한 모드를 제공합니다.

  • 현재 계정의 서비스 관리 권한

  • 조직의 서비스 관리 권한

  • 고객 관리 권한

작업 영역을 생성할 때 사용할 권한 모드를 선택합니다. 원하는 경우 나중에 변경할 수도 있습니다.

Amazon Managed Grafana는 서비스 관리형 권한 모드 중 하나에서 계정 또는 조직의 AWS 데이터 소스에 액세스하고 검색하는 데 필요한 역할과 정책을 생성합니다. 그런 다음 원하는 경우 IAM 콘솔에서 이러한 정책을 편집할 수 있습니다.

단일 계정의 서비스 관리 권한

이 모드에서 아마존 매니지드 그라파나는 - random-id라는 역할을 AmazonGrafanaServiceRole 생성합니다. 그러면 Amazon Managed Grafana가 Amazon Managed Grafana 워크스페이스에서 액세스하도록 선택한 AWS 각 서비스에 대해 이 역할에 정책을 연결합니다.

CloudWatch

Amazon Managed Grafana는 관리형 정책을 연결합니다 AWS . AmazonGrafanaCloudWatchAccess

참고

AmazonGrafanaCloudWatchAccess관리형 정책이 CloudWatch 생성되기 전에 사용했던 작업 영역의 경우 Amazon Managed Grafana는 random-id라는 이름으로 고객 관리형 정책을 생성했습니다. AmazonGrafanaCloudWatchPolicy

아마존 OpenSearch 서비스

아마존 매니지드 그라파나는 random-id라는 이름으로 고객 관리형 정책을 생성합니다. AmazonGrafanaOpenSearchPolicy 데이터 소스 액세스에는 Get/Post 권한이 필요합니다. 목록/설명 권한은 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 Managed Grafana는 관리형 정책을 연결합니다 AWS . AWSIoTSiteWiseReadOnlyAccess

Amazon Redshift

Amazon Managed Grafana는 관리형 정책을 연결합니다 AWS . AmazonGrafanaRedshiftAccess

Amazon Athena

Amazon Managed Grafana는 관리형 정책을 연결합니다 AWS . AmazonGrafanaAthenaAccess

Amazon Managed Service for Prometheus

아마존 매니지드 그라파나는 random-id라는 이름으로 고객 관리형 정책을 생성합니다. 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

아마존 매니지드 그라파나는 SNSPolicy- random-id라는 이름으로 고객 관리형 정책을 생성합니다. AmazonGrafana 이 정책은 계정에서 문자열로 시작하는 SNS 주제만 사용하도록 제한합니다. grafana 정책을 직접 생성하는 경우에는 필요하지 않습니다. 정책 내용은 다음과 같습니다.

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

Amazon Managed Grafana는 관리형 정책을 연결합니다 AWS . AmazonTimestreamReadOnlyAccess

X-Ray

Amazon Managed Grafana는 관리형 정책을 연결합니다 AWS . AWSXrayReadOnlyAccess

조직의 서비스 관리 권한

이 모드는 조직의 관리 계정 또는 위임된 관리자 계정에서 만든 작업 영역에만 지원됩니다. 위임된 관리자 계정은 조직의 스택 세트를 생성하고 관리할 수 있습니다. 위임된 관리자 계정에 대한 자세한 내용은 위임된 관리자 등록을 참조하십시오.

참고

조직의 관리 계정에 Amazon Managed Grafana 작업 공간과 같은 리소스를 생성하는 것은 AWS 보안 모범 사례에 위배됩니다.

이 모드에서 Amazon Managed Grafana는 조직 내 다른 계정의 리소스에 AWS 액세스하는 데 필요한 모든 IAM 역할을 생성합니다. AWS 선택한 조직 단위의 각 계정에서 Amazon Managed Grafana는 -random-id라는 역할을 AmazonGrafanaOrgMemberRole 생성합니다. 이 역할 생성은 와의 통합을 통해 수행됩니다. AWS CloudFormation StackSets

이 역할에는 작업 영역에서 사용하도록 선택한 각 AWS 데이터 원본에 대한 정책이 첨부되어 있습니다. 이러한 데이터 정책의 내용은 을 참조하십시오단일 계정의 서비스 관리 권한 .

또한 Amazon Managed Grafana는 조직의 관리 계정에 AmazonGrafanaOrgAdminRolerandom-id라는 역할을 생성합니다. 이 역할을 통해 Amazon Managed Grafana 워크스페이스 권한은 조직의 다른 계정에 액세스할 수 있습니다. AWS 서비스 알림 채널 정책도 이 역할에 연결됩니다. 워크스페이스의AWS 데이터 소스 메뉴를 사용하여 워크스페이스가 액세스할 수 있는 각 계정의 데이터 소스를 빠르게 프로비저닝할 수 있습니다.

이 모드를 사용하려면 조직에서 AWS CloudFormation Stackset을 신뢰할 수 있는 서비스로 활성화해야 합니다. AWS 자세한 내용은 신뢰할 수 있는 액세스 활성화를 참조하십시오. AWS Organizations

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]

-random-id의 AmazonGrafanaOrgAdminPolicy 내용은 다음과 같습니다.

{ "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 Managed Grafana 작업 공간을 생성할 때 계정에 기존 IAM 역할을 지정합니다. 역할에는 신뢰할 수 있는 신뢰 정책이 있어야 합니다. grafana.amazonaws.com

다음은 이러한 정책의 예입니다.

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

해당 역할이 해당 계정의 AWS 데이터 소스 또는 알림 채널에 액세스하려면 이 섹션 앞부분에 나열된 정책의 권한이 있어야 합니다. 예를 들어 CloudWatch 데이터 원본을 사용하려면 에 나열된 CloudWatch 정책의 권한이 있어야 단일 계정의 서비스 관리 권한 합니다.

에 나와 단일 계정의 서비스 관리 권한 있는 Amazon OpenSearch Service 및 Prometheus용 Amazon Managed Service 정책의 및 Describe 권한은 데이터 소스 검색 및 프로비저닝이 올바르게 작동하는 데에만 필요합니다. List 이러한 데이터 소스를 수동으로 설정하기만 하려는 경우에는 필요하지 않습니다.

교차 계정 액세스

계정 1111111111에서 작업 공간을 생성할 때는 계정 1111111111111의 역할을 제공해야 합니다. 이 WorkspaceRole예제에서는 이 역할을 호출합니다. 999999999999 계정의 데이터에 액세스하려면 999999999999 계정에서 역할을 생성해야 합니다. DataSourceRole그렇게 부르세요. 그런 다음 WorkspaceRole과 사이에 신뢰 관계를 구축해야 DataSourceRole합니다. 두 역할 간의 신뢰 설정에 대한 자세한 내용은 IAM 자습서: IAM 역할을 사용한 AWS 계정 간 액세스 위임을 참조하십시오.

DataSourceRole사용하려는 각 데이터 소스에 대해 이 섹션 앞부분에 나열된 정책 설명을 포함해야 합니다. 신뢰 관계가 설정되면 작업 공간에 있는 모든 데이터 원본의 데이터 원본 구성 페이지에 있는 역할 수임 ARN 필드에 DataSourceRole(arn:aws:iam: :9999999999:role:DataSourceRole) 의 ARN을 지정할 수 있습니다. AWS 그러면 데이터 원본은 에 정의된 권한으로 999999999999 계정에 액세스합니다. DataSourceRole