Amazon Connect 리소스 수준 정책 예제 - Amazon Connect

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

Amazon Connect 리소스 수준 정책 예제

Amazon Connect에서는 사용자에 대한 리소스 수준 권한을 지원하므로 다음 정책에 나온 것처럼 인스턴스에서 IAM 사용자에 대한 작업을 지정할 수 있습니다.

“삭제” 및 “업데이트” 작업 거부

다음 샘플 정책은 하나의 Amazon Connect 인스턴스에서 사용자에 대한 “삭제” 및 “업데이트” 작업을 거부합니다. 전체 사용자ARN(즉, arn:aws:connect:us-east-1:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc1/agent/00dtcddd1-123e-111e-93e3-11111bfbfcc1과 같은 제공된 인스턴스의 모든 Amazon Connect 사용자)에서 '사용자 삭제' 및 '사용자 업데이트'가 거부ARN되도록 Amazon Connect 사용자 끝에 와일드 카드를 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "connect:DeleteUser", "connect:UpdateUser*" ], "Resource": "arn:aws:connect:us-east-1:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc1/agent/*" } ] }

특정 이름의 통합에 대한 작업 허용

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllAppIntegrationsActions", "Effect": "Allow", "Action": [ "app-integrations:ListEventIntegrations", "app-integrations:CreateEventIntegration", "app-integrations:GetEventIntegration", "app-integrations:UpdateEventIntegration", "app-integartions:DeleteEventIntegration" ], "Resource":"arn:aws:appintegrations:*:*:event-integration/MyNamePrefix-*" } ] }

“사용자 생성”을 허용하지만 특정 보안 프로필에 할당된 경우에는 거부

다음 샘플 정책은 '사용자 생성'을 허용하지만 CreateUser 요청 시 보안 프로필의 파라미터로 arn:aws:connect:us-west-2:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc1/security-profile/11dtcggg1-123e-111e-93e3-11111bfbfcc17을 사용하여 명시적으로 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:CreateUser" ], "Resource": "*", }, { "Effect": "Deny", "Action": [ "connect:CreateUser" ], "Resource": "arn:aws:connect:us-west-2:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc17/security-profile/11dtcggg1-123e-111e-93e3-11111bfbfcc17", } ] }

고객 응대에 대한 레코딩 작업 허용

다음 샘플 정책은 특정 인스턴스에서 고객 응대에 대한 "고객 응대 녹화물 시작"을 허용합니다. contactID는 동적이므로 *가 사용됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "connect:StartContactRecording" ], "Resource": "arn:aws:connect:us-west-2:accountID:instance/instanceId/contact/*", "Effect": "Allow" } ] }

accountID와 신뢰할 수 있는 관계를 설정합니다.

레코딩에 대해 다음 작업이 정의됩니다APIs.

  • “연결:StartContactRecording”

  • “연결:StopContactRecording”

  • “연결:SuspendContactRecording”

  • “연결:ResumeContactRecording”

동일한 역할에서 더 많은 고객 응대 작업 허용

동일한 역할을 사용하여 다른 연락처 를 호출APIs하는 경우 다음 연락처 작업을 나열할 수 있습니다.

  • GetContactAttributes

  • ListContactFlows

  • StartChatContact

  • StartOutboundVoiceContact

  • StopContact

  • UpdateContactAttributes

또는 와일드카드를 사용하여 모든 고객 응대 작업 허용(예: "connect:*")

추가 리소스 허용

와일드카드를 사용하여 더 많은 리소스를 허용할 수도 있습니다. 예를 들어, 모든 고객 응대 리소스에서 모든 연결 작업을 허용하는 방법은 다음과 같습니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "connect:*" ], "Resource": "arn:aws:connect:us-west-2:accountID:instance/*/contact/*", "Effect": "Allow" } ] }

복제본 리전의 전화번호에 대한 대기열 API 작업 허용 또는 거부

CreateQueue 및 에는 라는 입력 필드가 UpdateQueueOutboundCallerConfig APIs 포함되어 있습니다OutboundCallerIdNumberId. 이 필드는 트래픽 분산 그룹에 청구할 수 있는 전화번호 리소스를 나타냅니다. 에서 반환되는 전화번호 V1 ARN 형식ListPhoneNumbers과 V2에서 반환되는 ListPhoneNumbersV2 ARN 형식을 모두 지원합니다.

에서 OutboundCallerIdNumberId 지원하는 V1 및 V2 ARN 형식은 다음과 같습니다.

  • V1 ARN 형식: arn:aws:connect:your-region:your-account_id:instance/instance_id/phone-number/resource_id

  • V2 ARN 형식: arn:aws:connect:your-region:your-account_id:phone-number/resource_id

참고

V2 ARN 형식을 사용하는 것이 좋습니다. V1 ARN 형식은 향후 더 이상 사용되지 않을 예정입니다.

복제본 리전의 전화번호 리소스에 두 ARN 형식을 모두 제공합니다.

전화번호가 트래픽 배포 그룹에 요청되는 경우 복제본 리전에서 작동하는 동안 전화번호 리소스에 대한 대기열 API 작업에 대한 액세스를 올바르게 허용/거부하려면 전화번호 리소스를 V1 및 V2 ARN 형식 모두로 제공해야 합니다. 전화번호 리소스를 한 가지 ARN 형식으로만 제공하는 경우 복제본 리전에서 작동하는 동안 올바른 허용/거부 동작이 발생하지 않습니다.

예제 1: 에 대한 액세스 거부 CreateQueue

예를 들어, 계정 123456789012 및 인스턴스 aaaaaaaa-bbbb-cccc-dddd-0123456789012의 복제 리전 us-west-2에서 운영 중입니다. OutboundCallerIdNumberId 값이 리소스 ID가 인 트래픽 배포 그룹에 요청된 전화번호인 CreateQueue API 경우 에 대한 액세스를 거부하려고 합니다aaaaaaaa-eeee-ffff-gggg-0123456789012. 이 시나리오에서는 다음 정책을 사용해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreateQueueForSpecificNumber", "Effect": "Deny", "Action": "connect:CreateQueue", "Resource": [ "arn:aws:connect:us-east-1:123456789012:phone-number/aaaaaaaa-eeee-ffff-gggg-0123456789012", "arn:aws:connect:us-west-2:123456789012:instance/aaaaaaaa-bbbb-cccc-dddd-0123456789012/phone-number/aaaaaaaa-eeee-ffff-gggg-0123456789012" ] } ] }

여기서 us-west-2는 요청이 이루어지는 리전입니다.

예제 2: 에 대한 액세스만 허용 UpdateQueueOutboundCallerConfig

예를 들어, 계정 123456789012 및 인스턴스 aaaaaaaa-bbbb-cccc-dddd-0123456789012의 복제 리전 us-west-2에서 운영 중입니다. OutboundCallerIdNumberId 값이 리소스 IDUpdateQueueOutboundCallerConfigAPI가 인 트래픽 배포 그룹에 요청된 전화번호인 경우에만 에 대한 액세스를 허용하려고 합니다aaaaaaaa-eeee-ffff-gggg-0123456789012. 이 시나리오에서는 다음 정책을 사용해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "OnlyAllowUpdateQueueOutboundCallerConfigForSpecificNumber", "Effect": "Allow", "Action": "connect:UpdateQueueOutboundCallerConfig", "Resource": [ "arn:aws:connect:us-east-1:123456789012:phone-number/aaaaaaaa-eeee-ffff-gggg-0123456789012", "arn:aws:connect:us-west-2:123456789012:instance/aaaaaaaa-bbbb-cccc-dddd-0123456789012/phone-number/aaaaaaaa-eeee-ffff-gggg-0123456789012" ] } ] }

특정 Amazon AppIntegrations 리소스 보기

다음 샘플 정책을 통해 특정 이벤트 통합을 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "app-integrations:GetEventIntegration" ], "Resource": "arn:aws:app-integrations:us-west-2:accountID:event-integration/Name" } ] }

Amazon Connect Customer Profiles에 대한 액세스 권한 부여

Amazon Connect Customer Profiles는 connect 대신 profile을 작업의 접두사로 사용합니다. 다음 정책은 Amazon Connect Customer Profiles에서 특정 도메인에 대한 전체 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "profile:*" ], "Resource": "arn:aws:profile:us-west-2:accountID:domains/domainName", "Effect": "Allow" } ] }

도메인 에 대한 accountID와 신뢰할 수 있는 관계를 설정합니다domainName.

Customer Profiles 데이터에 읽기 전용 액세스 권한 부여

다음은 Amazon Connect Customer Profiles의 데이터에 대한 읽기 액세스 권한을 부여하는 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "profile:SearchProfiles", "profile:ListObjects" ], "Resource": "arn:aws:profile:us-west-2:accountID:domains/domainName", "Effect": "Allow" } ] }

특정 어시스턴트에 대해서만 Amazon Q in Connect 쿼리

다음 샘플 정책은 특정 어시스턴트만 쿼리할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wisdom:QueryAssistant " ], "Resource": "arn:aws:wisdom:us-west-2:accountID:assistant/assistantID" } ] }

Amazon Connect Voice ID에 대한 전체 액세스 권한 부여

Amazon Connect Voice ID는 연결 대신 작업의 접두사로 voiceid를 사용합니다. 다음 정책은 Amazon Connect Voice ID에서 특정 도메인에 대한 전체 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "voiceid:*" ], "Resource": "arn:aws:voiceid:us-west-2:accountID:domain/domainName", "Effect": "Allow" } ] }

도메인 에 대한 accountID와 신뢰할 수 있는 관계를 설정합니다domainName.

Amazon Connect 아웃바운드 캠페인 리소스에 대한 액세스 권한 부여

아웃바운드 캠페인은 connect 대신 작업의 접두사로 connect-campaign을 사용합니다. 다음 정책은 특정 아웃바운드 캠페인에 대한 전체 액세스 권한을 부여합니다.

{ "Sid": "AllowConnectCampaignsOperations", "Effect": "Allow", "Action": [ "connect-campaigns:DeleteCampaign", "connect-campaigns:DescribeCampaign", "connect-campaigns:UpdateCampaignName", "connect-campaigns:GetCampaignState" "connect-campaigns:UpdateOutboundCallConfig", "connect-campaigns:UpdateDialerConfig", "connect-campaigns:PauseCampaign", "connect-campaigns:ResumeCampaign", "connect-campaigns:StopCampaign" ], "Resource": "arn:aws:connect-campaigns:us-west-2:accountID:campaign/campaignId", }

Amazon Connect Contact Lens로 분석한 트랜스크립트에 대한 검색 기능 제한

다음 정책은 연락 검색 및 설명을 허용하지만 Amazon Connect Contact Lens로 분석한 트랜스크립트를 사용한 연락 검색은 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "connect:DescribeContact" ], "Resource": "arn:aws:connect:region:account-id:instance/instance-id/contact/*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "connect:SearchContacts" ], "Resource": "arn:aws:connect:region:account-id:instance/instance-id" }, { "Sid": "VisualEditor2", "Effect": "Deny", "Action": [ "connect:SearchContacts" ], "Resource": "arn:aws:connect:region:account-id:instance/instance-id", "Condition": { "ForAnyValue:StringEquals": { "connect:SearchContactsByContactAnalysis": [ "Transcript" ] } } } ] }