교차 서비스 혼동된 대리인 방지 - Amazon Connect

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

교차 서비스 혼동된 대리인 방지

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 AWS서비스 간 사칭으로 인해 대리인 문제가 혼동될 수 있습니다. 교차 서비스 가장은 한 서비스(직접 호출하는 서비스)가 다른 서비스(직접 호출되는 서비스)를 직접 호출할 때 발생할 수 있습니다. 직접 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 계정 내 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 통해 모든 서비스의 데이터를 보호하는 데 도움이 되는 도구를 AWS 제공합니다.

Amazon Connect가 리소스에 다른 서비스를 제공하는 권한을 제한하려면 리소스 정책에서 aws:SourceArnaws:SourceAccount 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 두 글로벌 조건 컨텍스트 키를 모두 사용하는 경우 aws:SourceAccount 값과 aws:SourceArn 값의 계정은 동일한 정책 명령문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.

혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 허용하려는 리소스의 정확한 전체 Amazon 리소스 이름(ARN)을 사용하는 것입니다. 리소스의 전체 ARN을 모를 경우 또는 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(*)를 포함한 aws:SourceArn 전역 조건 컨텍스트 키를 사용합니다. 예제: arn:aws:servicename::region-name::your AWS account ID:*.

Amazon Connect Customer Profiles에 서비스 혼동된 대리자 예방

다음 예는 다른 사람이 Amazon Connect Customer Profiles의 관리자로 설정된 경우에 적용되는 정책을 보여줍니다. 혼동된 대리자 문제를 방지하려면 이들 정책을 사용하세요.

고객 프로필 도메인을 생성하기 위한 Amazon Connect Customer Profiles 정책의 예

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "profile.amazonaws.com" }, "Action": ["kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt"], "Resource": [ "arn:aws:kms:your region-name:your AWS account ID:key/your key ARN" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:profile:your region name:your AWS account ID:domains/your Customer Profiles domain name" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } } }

고객 프로필 객체 유형을 생성하기 위한 Amazon Connect Customer Profiles 정책의 예

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "profile.amazonaws.com" }, "Action": ["kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt"], "Resource": [ "arn:aws:kms:your Region:your AWS account ID:key/your key ARN" ], "Condition": { " ArnEquals": { "aws:SourceArn": "arn:aws:profile:your region name:your AWS account ID:domains/your Customer Profiles domain name/objects/your object type" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } } }

DLQ(Dead Letter Queue) 생성 및 업데이트하기 위한 Amazon Connect Customer Profiles 정책의 예

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Amazon Connect Customer Profiles to publish messages to your queue", "Effect": "Allow", "Principal": { "Service": "profile.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "your dead-letter queue ARN", "Condition": { "StringEquals": { "aws:SourceAccount": "your AWS account ID", "aws:SourceArn": "arn:aws:profile:your region name:your AWS account ID:domains/your Customer Profiles domain name" } } } ] }

자격 증명 확인 프로세스의 일부로 사용되는 Amazon S3 버킷을 보호하기 위한 Amazon Connect Customer Profiles 정책의 예

{ "Sid": "Allow Amazon Connect Customer Profiles to put S3 objects to your bucket", "Effect": "Allow", "Principal": { "Service": "profile.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::your S3 bucket name/*", "Condition": { "StringEquals": { "aws:SourceAccount": "your AWS account ID" }, "ArnEquals": { "aws:SourceArn": "arn:aws:profile:your region name:your AWS account ID:domains/*" } } }

Amazon Connect Voice ID 서비스 간 혼동되는 대리자 방지

다음 Voice ID 예제에서는 대리자 혼동 문제를 방지하기 위해 적용할 리소스 정책을 보여 줍니다.

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "voiceid.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:voiceid:your region name:your AWS account ID:domain/your Voice ID domain name" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } } }

Amazon Connect 채팅 메시지 스트리밍 간 혼동되는 대리자 방지

다음 Amazon Connect 예제에서는 대리자 혼동 문제를 방지하기 위해 적용할 리소스 정책을 보여 줍니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"connect.amazonaws.com" }, "Action":"sns:Publish", "Resource":"your SNS topic ARN", "Condition":{ "StringEquals":{ "aws:SourceAccount":"your AWS account ID" }, "ArnEquals":{ "aws:SourceArn":"your Amazon Connect instance ARN" } } } ] }