

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

# Amazon Connect 리소스 수준 정책 예제
<a name="security_iam_resource-level-policy-examples"></a>

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

**Topics**
+ [Amazon Connect 인스턴스의 모든 작업 거부](#connect-access-control-resources-example-all)
+ [“삭제” 및 “업데이트” 작업 거부](#connect-access-control-resources-example2)
+ [특정 이름의 통합에 대한 작업 허용](#connect-access-control-resources-integration-example)
+ [“사용자 생성”을 허용하지만 특정 보안 프로필에 할당된 경우에는 거부](#connect-access-control-resources-example3)
+ [고객 응대에 대한 레코딩 작업 허용](#connect-access-control-resources-example4)
+ [복제 리전의 전화번호에 대한 대기열 API 작업 허용 또는 거부](#allow-deny-queue-actions-replica-region)
+ [특정 Amazon AppIntegrations 리소스 보기](#view-specific-appintegrations-resources)
+ [Amazon Connect Customer Profiles에 대한 액세스 권한 부여](#grant-access-to-customer-profiles)
+ [Customer Profiles 데이터에 읽기 전용 액세스 권한 부여](#grant-read-only-access-to-customer-profiles)
+ [특정 어시스턴트에 대해서만 AI 에이전트 연결 쿼리](#query-wisdom-assistant)
+ [Amazon Connect Voice ID에 대한 전체 액세스 권한 부여](#grant-read-only-access-to-voiceid)
+ [Amazon Connect 아웃바운드 캠페인 리소스에 대한 액세스 권한 부여](#grant-read-only-access-to-outboundcommunications)
+ [Amazon Connect Contact Lens로 분석한 트랜스크립트에 대한 검색 기능 제한](#restrict-ability-to-search-transcripts-contact-lens)

## Amazon Connect 인스턴스의 모든 작업 거부
<a name="connect-access-control-resources-example-all"></a>

Amazon Connect 인스턴스는 Amazon Connect 내의 최상위 리소스입니다. 다른 모든 하위 리소스는 해당 범위 내에서 생성됩니다. Amazon Connect 인스턴스 내의 모든 리소스에 대한 모든 작업을 거부하려면 다음 방법 중 하나를 사용할 수 있습니다.
+ `connect:instanceId` 컨텍스트 키를 사용합니다.
+ 인스턴스 ARN 뒤에 와일드카드(\$1)를 사용합니다.

다음 샘플 정책은 instanceId가 00fbeee1-123e-111e-93e3-11111bfbfcc1인 인스턴스에 대한 모든 연결 작업을 거부합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "connect:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "connect:instanceId": "00fbeee1-123e-111e-93e3-11111bfbfcc1"
                }
            }
        }
    ]
}
```

------

또는 인스턴스 ARN 뒤에 와일드카드(\$1)를 지정하여 모든 작업을 거부할 수 있습니다. 다음 샘플 정책은 인스턴스 ARN이 `arn:aws:connect:us-east-1:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc1`인 인스턴스에 대한 모든 연결 작업을 거부합니다.

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

****  

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

------

## “삭제” 및 “업데이트” 작업 거부
<a name="connect-access-control-resources-example2"></a>

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

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

****  

```
{
    "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/*"
        }
    ]
}
```

------

## 특정 이름의 통합에 대한 작업 허용
<a name="connect-access-control-resources-integration-example"></a>

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

****  

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

------

## “사용자 생성”을 허용하지만 특정 보안 프로필에 할당된 경우에는 거부
<a name="connect-access-control-resources-example3"></a>

다음 샘플 정책에서는 “사용자 생성”을 허용하지만, arn:aws:connect:us-west-2:123456789012:instance/00fbeee1-123e-111e-93e3-11111bfbfcc1/security-profile/11dtcggg1-123e-111e-93e3-11111bfbfcc17을 [CreateUser](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateUser.html#API_CreateUser_RequestBody) 요청의 보안 프로필을 위한 파라미터로 사용하여 명시적으로 거부합니다.

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

****  

```
{
    "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"
        }
    ]
}
```

------

## 고객 응대에 대한 레코딩 작업 허용
<a name="connect-access-control-resources-example4"></a>

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

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

****  

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

------

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

녹화 API에 대해 정의된 작업은 다음과 같습니다.
+ "connect:StartContactRecording"
+ "connect:StopContactRecording"
+ "connect:SuspendContactRecording"
+ "connect:ResumeContactRecording"

### 동일한 역할에서 더 많은 고객 응대 작업 허용
<a name="example4-allow-more-actions"></a>

다른 고객 응대 API를 호출하는 데 동일한 역할을 사용하는 경우에는 다음과 같은 고객 응대 작업을 나열할 수 있습니다.
+ GetContactAttributes
+ ListContactFlows
+ StartChatContact
+ StartOutboundVoiceContact
+ StopContact
+ UpdateContactAttributes

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

### 추가 리소스 허용
<a name="example4-allow-more-resources"></a>

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

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

****  

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

------

## 복제 리전의 전화번호에 대한 대기열 API 작업 허용 또는 거부
<a name="allow-deny-queue-actions-replica-region"></a>

[CreateQueue](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateQueue.html) 및 [UpdateQueueOutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateQueueOutboundCallerConfig.html) API에는 `OutboundCallerIdNumberId`라는 입력 필드가 포함되어 있습니다. 이 필드는 트래픽 분산 그룹에 청구할 수 있는 전화번호 리소스를 나타냅니다. [ListPhoneNumbers](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbers.html)에서 반환하는 전화번호 V1 ARN 형식과 [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html)에서 반환하는 V2 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 형식을 모두 제공
<a name="provide-both-arn-formats"></a>

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

### 예 1: CreateQueue에 대한 액세스 거부
<a name="deny-access-createqueue"></a>

예를 들어, 계정 ` 123456789012` 및 인스턴스 `aaaaaaaa-bbbb-cccc-dddd-0123456789012`의 복제 리전 us-west-2에서 운영 중입니다. `OutboundCallerIdNumberId` 값이 리소스 ID가 `aaaaaaaa-eeee-ffff-gggg-0123456789012`인 트래픽 분산 그룹에 요청된 전화번호인 경우 [CreateQueue API](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateQueue.html)에 대한 액세스를 거부하려고 합니다. 이 시나리오에서는 다음 정책을 사용해야 합니다.

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

****  

```
{
    "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에 대한 액세스만 허용
<a name="deny-access-createqueue"></a>

예를 들어, 계정 `123456789012` 및 인스턴스 `aaaaaaaa-bbbb-cccc-dddd-0123456789012`의 복제 리전 us-west-2에서 운영 중입니다. `OutboundCallerIdNumberId` 값이 리소스 ID가 `aaaaaaaa-eeee-ffff-gggg-0123456789012`인 트래픽 분산 그룹에 요청된 전화번호인 경우에만 [UpdateQueueOutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateQueueOutboundCallerConfig.html) API에 대한 액세스를 허용하려고 합니다. 이 시나리오에서는 다음 정책을 사용해야 합니다.

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

****  

```
{
    "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 리소스 보기
<a name="view-specific-appintegrations-resources"></a>

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

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

****  

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

------

## Amazon Connect Customer Profiles에 대한 액세스 권한 부여
<a name="grant-access-to-customer-profiles"></a>

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

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

****  

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

------

accountID와 도메인 domainName의 신뢰 관계를 설정합니다.

## Customer Profiles 데이터에 읽기 전용 액세스 권한 부여
<a name="grant-read-only-access-to-customer-profiles"></a>

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

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "profile:SearchProfiles"
            ],
            "Resource": "arn:aws:profile:us-east-1:111122223333:domains/domainName",
            "Effect": "Allow"
        }
    ]
}
```

------

## 특정 어시스턴트에 대해서만 AI 에이전트 연결 쿼리
<a name="query-wisdom-assistant"></a>

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

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "wisdom:QueryAssistant"
            ],
            "Resource": "arn:aws:wisdom:us-east-1:111122223333:assistant/assistantID"
        }
    ]
}
```

------

## Amazon Connect Voice ID에 대한 전체 액세스 권한 부여
<a name="grant-read-only-access-to-voiceid"></a>

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

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

****  

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

------

accountID와 도메인 domainName의 신뢰 관계를 설정합니다.

## Amazon Connect 아웃바운드 캠페인 리소스에 대한 액세스 권한 부여
<a name="grant-read-only-access-to-outboundcommunications"></a>

아웃바운드 캠페인은 `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로 분석한 트랜스크립트에 대한 검색 기능 제한
<a name="restrict-ability-to-search-transcripts-contact-lens"></a>

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

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

****  

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

------