AWS Config 사용자에 대한 사용자 지정 권한 부여 - AWS Config

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

AWS Config 사용자에 대한 사용자 지정 권한 부여

AWS Config 정책에서는 AWS Config로 작업하는 사용자에게 권한을 허용합니다. 사용자에게 다른 권한을 허용해야 하는 경우 AWS Config 정책을 IAM 그룹이나 사용자에게 연결할 수 있습니다. 특정 권한을 포함하거나 제외하도록 정책을 편집할 수 있습니다. 또한 사용자 고유의 사용자 지정 정책을 만들 수도 있습니다. 정책에서는 사용자가 수행하도록 허용한 작업 및 사용자가 작업을 수행하도록 허용한 리소스를 정의하는 JSON 문서입니다.

읽기 전용 액세스

다음 예제는 AWS Config에 읽기 전용 액세스 권한을 부여하는 AWS 관리형 정책 AWSConfigUserAccess를 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "config:Get*", "config:Describe*", "config:Deliver*", "config:List*", "tag:GetResources", "tag:GetTagKeys", "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents" ], "Resource": "*" } ] }

정책 설명에서 Effect 요소는 작업 허용 또는 거부 여부를 지정합니다. Action 요소는 사용자가 수행할 수 있도록 허용된 특정 작업을 나열합니다. Resource 요소는 사용자가 작업을 수행하도록 허용된 AWS 리소스를 나열합니다. AWS Config 작업에 대한 액세스를 제어하는 정책의 경우 Resource 요소가 항상 *로 설정되며 여기서 와일드카드는 "모든 리소스"를 의미합니다.

서비스가 지원하는 API에 대한 Action 요소의 값입니다. 작업 앞에는 AWS Config 작업 참조를 나타내기 위해 config:이 위치합니다. 다음 예제와 같이 요소에서 와일드카드 문자를 사용할 수 있습니다.

  • "Action": ["config:*ConfigurationRecorder"]

    이렇게 하면 "ConfigurationRecorder"(StartConfigurationRecorder, StopConfigurationRecorder)로 끝나는 모든 AWS Config 작업이 허용됩니다.

  • "Action": ["config:*"]

    모든 AWS Config 작업이 허용되지만 다른 AWS 서비스에 대한 작업은 허용되지 않습니다.

  • "Action": ["*"]

    모든 AWS 작업이 허용됩니다. 이 권한은 계정에 대해 AWS 관리자로 작업하는 사용자에게 적합합니다.

읽기 전용 정책은 다음과 같은 작업에 대한 사용자 권한을 부여하지 않습니다. StartConfigurationRecorder, StopConfigurationRecorder, 및 DeleteConfigurationRecorder. 이 정책을 가진 사용자는 구성 레코더를 시작하거나 구성 레코더를 중지하거나 구성 레코더를 삭제할 수 없습니다. AWS Config 작업 목록은 AWS Config API Reference를 참조하십시오.

모든 액세스

다음 예제는 AWS Config에 대한 모든 액세스를 허용하는 정책을 표시합니다. 사용자에게 모든 AWS Config 작업을 수행할 수 있는 권한을 부여합니다. 또한 사용자가 Amazon S3 버킷에서 파일을 관리하고, 사용자가 연계되어 있는 계정에서 Amazon SNS 주제를 관리할 수 있도록 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:GetTopicAttributes", "sns:ListPlatformApplications", "sns:ListTopics", "sns:SetTopicAttributes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketNotification", "s3:GetBucketPolicy", "s3:GetBucketRequestPayment", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:ListRoles", "iam:PassRole", "iam:PutRolePolicy", "iam:AttachRolePolicy", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicyVersion", "iam:CreateServiceLinkedRole" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "config:*", "tag:Get*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeAutomationExecutions", "ssm:GetAutomationExecution", "ssm:ListDocuments", "ssm:StartAutomationExecution" ], "Resource": "*" } ] }
참고

이 정책은 광범위한 권한을 부여합니다. 전체 액세스 권한을 부여하기 전에 최소 권한 집합으로 시작하고 필요에 따라 추가 권한을 부여하십시오. 이렇게 하는 것이 너무 관대한 권한으로 시작한 다음 나중에 이를 조이려고 시도하는 것보다 더 좋습니다.

다중 계정 다중 리전 데이터 집계 작업에 대한 사용자 권한 제어

리소스 수준 권한을 사용하여 다중 계정 다중 리전 데이터 집계 시 특정 작업을 수행하는 사용자의 기능을 제어할 수 있습니다. AWS Config는 다중 계정 다중 리전 데이터 집계 API에 대해 리소스 수준 권한을 지원합니다. 리소스 수준 권한을 사용하면 특정 사용자에게 리소스 데이터 액세스/수정 권한을 제한할 수 있습니다.

예를 들어, 리소스 데이터에 대한 액세스를 특정 사용자로 제한하려는 경우 두 개의 집계자를 만들 수 있습니다. AccessibleAggregatorInAccessibleAggregator. 그런 다음 IAM 정책을 사용하여 AccessibleAggregator.

첫 번째 정책에서는 지정한 구성 ARN에 대해 DescribeConfigurationAggregatorsDeleteConfigurationAggregator 작업과 같은 집계자 작업을 허용합니다. 다음 예제에서 구성 ARN은 arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigReadOnly", "Effect": "Allow", "Action": [ "config:PutConfigurationAggregator", "config:DescribePendingAggregationRequests", "config:DeletePendingAggregationRequest", "config:GetAggregateConfigRuleComplianceSummary", "config:DescribeAggregateComplianceByConfigRules", "config:GetAggregateComplianceDetailsByConfigRule", "config:DescribeConfigurationAggregators", "config:DescribeConfigurationAggregatorSourcesStatus", "config:DeleteConfigurationAggregator" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs" } ] }

두 번째 정책에서는 지정한 구성 ARN에 대해 집계자 작업을 거부합니다. 다음 예제에서 구성 ARN은 arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigReadOnly", "Effect": "Deny", "Action": [ "config:PutConfigurationAggregator", "config:DescribePendingAggregationRequests", "config:DeletePendingAggregationRequest", "config:GetAggregateConfigRuleComplianceSummary", "config:DescribeAggregateComplianceByConfigRules", "config:GetAggregateComplianceDetailsByConfigRule", "config:DescribeConfigurationAggregators", "config:DescribeConfigurationAggregatorSourcesStatus", "config:DeleteConfigurationAggregator" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx" } ] }

개발자 그룹에 소속된 사용자가 두 번째 정책에서 지정된 구성에 대해 구성 집계자를 설명하거나 삭제하려고 하면 해당 사용자에게 액세스 거부 예외가 발생합니다.

다음 AWS CLI 예제는 사용자가 두 개의 집계자 AccessibleAggregatorInAccessibleAggregator를 만드는 것을 보여줍니다.

aws configservice describe-configuration-aggregators

명령이 성공적으로 완료되었습니다.

{ "ConfigurationAggregators": [ { "ConfigurationAggregatorArn": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-mocpsqhs", "CreationTime": 1517942461.442, "ConfigurationAggregatorName": "AccessibleAggregator", "AccountAggregationSources": [ { "AllAwsRegions": true, "AccountIds": [ "AccountID1", "AccountID2", "AccountID3" ] } ], "LastUpdatedTime": 1517942461.455 } ] }
{ "ConfigurationAggregators": [ { "ConfigurationAggregatorArn": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx", "CreationTime": 1517942461.442, "ConfigurationAggregatorName": "InAccessibleAggregator", "AccountAggregationSources": [ { "AllAwsRegions": true, "AccountIds": [ "AccountID1", "AccountID2", "AccountID3" ] } ], "LastUpdatedTime": 1517942461.455 } ] }
참고

account-aggregation-sources에, 데이터를 집계하려는 AWS 계정 ID의 쉼표로 구분된 목록을 입력합니다. 계정 ID를 대괄호로 묶고 반드시 따옴표를 이스케이프 처리해야 합니다(예: "[{\"AccountIds\": [\"AccountID1\",\"AccountID2\",\"AccountID3\"],\"AllAwsRegions\": true}]").

이어서 사용자는 InAccessibleAggregator에 대한 액세스를 거부하는 IAM 정책을 생성합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfigReadOnly", "Effect": "Deny", "Action": [ "config:PutConfigurationAggregator", "config:DescribePendingAggregationRequests", "config:DeletePendingAggregationRequest", "config:GetAggregateConfigRuleComplianceSummary", "config:DescribeAggregateComplianceByConfigRules", "config:GetAggregateComplianceDetailsByConfigRule", "config:DescribeConfigurationAggregators", "config:DescribeConfigurationAggregatorSourcesStatus", "config:DeleteConfigurationAggregator" ], "Resource": "arn:aws:config:ap-northeast-1:AccountID:config-aggregator/config-aggregator-pokxzldx" } ] }

그 다음, 사용자는 IAM 정책이 특정 집계자 및 규칙에 대한 액세스를 제한하는 데 작동하는지 확인합니다.

aws configservice get-aggregate-compliance-details-by-config-rule --configuration-aggregator-name InAccessibleAggregator --config-rule-name rule name --account-id AccountID --aws-region AwsRegion

명령은 액세스가 거부된 예외를 반환합니다.

An error occurred (AccessDeniedException) when calling the GetAggregateComplianceDetailsByConfigRule operation: User: arn:aws:iam::AccountID:user/ is not authorized to perform: config:GetAggregateComplianceDetailsByConfigRule on resource: arn:aws:config:AwsRegion-1:AccountID:config-aggregator/config-aggregator-pokxzldx

리소스 수준 권한을 사용하여 다중 계정 다중 리전 데이터 집계 시 특정 작업을 수행하도록 액세스를 허가 또는 거부할 수 있습니다.

추가 정보

생성에 대해 자세히 알아보려면 IAM 사용자, 그룹, 정책 및 권한에 대한 자세한 내용은 첫 번째 만들기 IAM 사용자 및 관리자 그룹액세스 관리 에서 IAM 사용 설명서.