

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

# DevOps Guru를 위한 서비스 연결 역할 사용
<a name="using-service-linked-roles"></a>

Amazon DevOps Guru는 AWS Identity and Access Management (IAM)[ 서비스 연결 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) 사용합니다. 서비스 연결 역할은 DevOps Guru에 직접 연결된 고유한 유형의 IAM 역할입니다. 서비스 연결 역할은 DevOps Guru에서 사전 정의하며 서비스가 사용자를 대신하여 Amazon CloudWatch AWS CloudTrail, AWS CodeDeploy, AWS X-Ray및 AWS Organizations를 호출하는 데 필요한 모든 권한을 포함합니다.

필요한 권한을 수동으로 추가할 필요가 없으므로 서비스 연결 역할은 DevOps Guru를 더 쉽게 설정할 수 있습니다. DevOps Guru에서 서비스 연결 역할의 권한을 정의하므로 다르게 정의되지 않은 한, DevOps Guru만 해당 역할을 수임할 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며 이 권한 정책은 다른 IAM 엔티티에 연결할 수 없습니다.

먼저 관련 리소스를 삭제해야만 서비스 연결 역할을 삭제할 수 있습니다. 이렇게 하면 리소스에 대한 액세스 권한을 부주의로 삭제할 수 없기 때문에 DevOps Guru 리소스가 보호됩니다.

## DevOps Guru에 대한 서비스 연결 역할 권한
<a name="slr-permissions"></a>

DevOps Guru에서는 이름이 `AWSServiceRoleForDevOpsGuru`인 서비스 연결 역할을 사용합니다. 이는 DevOps Guru가 계정에서 실행해야 하는 범위가 지정된 권한이 있는 AWS 관리형 정책입니다.

`AWSServiceRoleForDevOpsGuru` 서비스 연결 역할은 그 역할을 위임하기 위해 다음 서비스를 신뢰합니다.
+ `devops-guru.amazonaws.com`

역할 권한 정책 `AmazonDevOpsGuruServiceRolePolicy`은 DevOps Guru가 지정된 리소스에서 다음 작업을 완료하도록 허용합니다.

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"autoscaling:DescribeAutoScalingGroups",
				"cloudtrail:LookupEvents",
				"cloudwatch:GetMetricData",
				"cloudwatch:ListMetrics",
				"cloudwatch:DescribeAnomalyDetectors",
				"cloudwatch:DescribeAlarms",
				"cloudwatch:ListDashboards",
				"cloudwatch:GetDashboard",
				"cloudformation:GetTemplate",
				"cloudformation:ListStacks",
				"cloudformation:ListStackResources",
				"cloudformation:DescribeStacks",
				"cloudformation:ListImports",
				"codedeploy:BatchGetDeployments",
				"codedeploy:GetDeploymentGroup",
				"codedeploy:ListDeployments",
				"config:DescribeConfigurationRecorderStatus",
				"config:GetResourceConfigHistory",
				"events:ListRuleNamesByTarget",
				"xray:GetServiceGraph",
				"organizations:ListRoots",
				"organizations:ListChildren",
				"organizations:ListDelegatedAdministrators",
				"pi:GetResourceMetrics",
				"tag:GetResources",
				"lambda:GetFunction",
				"lambda:GetFunctionConcurrency",
				"lambda:GetAccountSettings",
				"lambda:ListProvisionedConcurrencyConfigs",
				"lambda:ListAliases",
				"lambda:ListEventSourceMappings",
				"lambda:GetPolicy",
				"ec2:DescribeSubnets",
				"application-autoscaling:DescribeScalableTargets",
				"application-autoscaling:DescribeScalingPolicies",
				"sqs:GetQueueAttributes",
				"kinesis:DescribeStream",
				"kinesis:DescribeLimits",
				"dynamodb:DescribeTable",
				"dynamodb:DescribeLimits",
				"dynamodb:DescribeContinuousBackups",
				"dynamodb:DescribeStream",
				"dynamodb:ListStreams",
				"elasticloadbalancing:DescribeLoadBalancers",
				"elasticloadbalancing:DescribeLoadBalancerAttributes",
				"rds:DescribeDBInstances",
				"rds:DescribeDBClusters",
				"rds:DescribeOptionGroups",
				"rds:DescribeDBClusterParameters",
				"rds:DescribeDBInstanceAutomatedBackups",
				"rds:DescribeAccountAttributes",
				"logs:DescribeLogGroups",
				"logs:DescribeLogStreams",
				"s3:GetBucketNotification",
				"s3:GetBucketPolicy",
				"s3:GetBucketPublicAccessBlock",
				"s3:GetBucketTagging",
				"s3:GetBucketWebsite",
				"s3:GetIntelligentTieringConfiguration",
				"s3:GetLifecycleConfiguration",
				"s3:GetReplicationConfiguration",
				"s3:ListAllMyBuckets",
				"s3:ListStorageLensConfigurations",
				"servicequotas:GetServiceQuota",
				"servicequotas:ListRequestedServiceQuotaChangeHistory",
				"servicequotas:ListServiceQuotas"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowPutTargetsOnASpecificRule",
			"Effect": "Allow",
			"Action": [
				"events:PutTargets",
				"events:PutRule"
			],
			"Resource": "arn:aws:events:*:*:rule/DevOps-Guru-managed-*"
		},
		{
			"Sid": "AllowCreateOpsItem",
			"Effect": "Allow",
			"Action": [
				"ssm:CreateOpsItem"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowAddTagsToOpsItem",
			"Effect": "Allow",
			"Action": [
				"ssm:AddTagsToResource"
			],
			"Resource": "arn:aws:ssm:*:*:opsitem/*"
		},
		{
			"Sid": "AllowAccessOpsItem",
			"Effect": "Allow",
			"Action": [
				"ssm:GetOpsItem",
				"ssm:UpdateOpsItem"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"aws:ResourceTag/DevOps-GuruInsightSsmOpsItemRelated": "true"
				}
			}
		},
		{
			"Sid": "AllowCreateManagedRule",
			"Effect": "Allow",
			"Action": "events:PutRule",
			"Resource": "arn:aws:events:*:*:rule/DevOpsGuruManagedRule*"
		},
		{
			"Sid": "AllowAccessManagedRule",
			"Effect": "Allow",
			"Action": [
				"events:DescribeRule",
				"events:ListTargetsByRule"
			],
			"Resource": "arn:aws:events:*:*:rule/DevOpsGuruManagedRule*"
		},
		{
			"Sid": "AllowOtherOperationsOnManagedRule",
			"Effect": "Allow",
			"Action": [
				"events:DeleteRule",
				"events:EnableRule",
				"events:DisableRule",
				"events:PutTargets",
				"events:RemoveTargets"
			],
			"Resource": "arn:aws:events:*:*:rule/DevOpsGuruManagedRule*",
			"Condition": {
				"StringEquals": {
					"events:ManagedBy": "devops-guru.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowTagBasedFilterLogEvents",
			"Effect": "Allow",
			"Action": [
				"logs:FilterLogEvents"
			],
			"Resource": "arn:aws:logs:*:*:log-group:*",
			"Condition": {
				"StringEquals": {
					"aws:ResourceTag/DevOps-Guru-Analysis": "true"
				}
			}
		},
		{
			"Sid": "AllowAPIGatewayGetIntegrations",
			"Effect": "Allow",
			"Action": "apigateway:GET",
			"Resource": [
				"arn:aws:apigateway:*::/restapis/??????????",
				"arn:aws:apigateway:*::/restapis/*/resources",
				"arn:aws:apigateway:*::/restapis/*/resources/*/methods/*/integration"
			]
		}
	]
}
```

------

## DevOps Guru에 대한 서비스 연결 역할 생성
<a name="create-slr"></a>

서비스 연결 역할은 수동으로 생성할 필요가 없습니다. AWS Management Console AWS CLI, 또는 AWS API에 대한 인사이트를 생성하면 DevOps Guru가 서비스 연결 역할을 생성합니다.

**중요**  
이 서비스 연결 역할은이 역할에서 지원하는 기능을 사용하는 다른 서비스에서 작업을 완료한 경우 계정에 나타날 수 있습니다. 예를 들어 리포지토리에 DevOps Guru를 추가한 경우 나타날 수 있습니다 AWS CodeCommit.

## DevOps Guru에 대한 서비스 연결 역할 편집
<a name="edit-slr"></a>

DevOps Guru에서는 `AWSServiceRoleForDevOpsGuru` 서비스 연결 역할을 편집하도록 허용하지 않습니다. 서비스 연결 역할을 생성한 후에는 다양한 개체가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 하지만 IAM을 사용하여 역할의 설명을 편집할 수 있습니다. 자세한 내용은 IAM 사용 설명서**의 [서비스 연결 역할 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)을 참조하십시오.

## DevOps Guru에 대한 서비스 연결 역할 삭제
<a name="delete-slr"></a>

서비스 연결 역할이 필요한 기능 또는 서비스가 더 이상 필요 없는 경우에는 해당 역할을 삭제하는 것이 좋습니다. 따라서 적극적으로 모니터링하거나 유지하지 않는 미사용 엔터티가 없도록 합니다. 단, 먼저 모든 리포지토리와의 연결을 끊어야 수동으로 삭제할 수 있습니다.

**참고**  
리소스를 삭제하려 할 때 DevOps Guru 서비스가 역할을 사용 중이면 삭제에 실패할 수 있습니다. 이 문제가 발생하면 몇 분 기다렸다가 작업을 다시 시도하십시오.

**IAM을 사용하여 수동으로 서비스 연결 역할을 삭제하려면 다음을 수행하세요.**

IAM 콘솔 AWS CLI, 또는 AWS API를 사용하여 `AWSServiceRoleForDevOpsGuru` 서비스 연결 역할을 삭제합니다. 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)의 *서비스 연결 역할 삭제*를 참조하세요.