

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

# OpenSearch UI 애플리케이션에 대한 네트워크 액세스 제어 구성 참조
<a name="application-network-access-reference"></a>

다음 섹션에서는 OpenSearch UI가 지원하는 각 네트워크 액세스 제어에 대한 정책 예제를 제공합니다. 각 예제에는 이를 적용하는 AWS Command Line Interface (AWS CLI) 명령이 포함되어 있습니다. OpenSearch UI가 이러한 정책을 평가하는 방법에 대한 설명과 가장 일반적인 작업에 대한 단계별 연습은 섹션을 참조하세요[OpenSearch UI 애플리케이션에 대한 네트워크 액세스 제한](application-network-access.md).

보호하려는 범위와 사용자가 연결하는 네트워크 경로를 기반으로 예제를 선택합니다.


| Scope | 컨트롤 | 로그인 페이지를 차단합니다. | 
| --- | --- | --- | 
| 단일 보안 주체 | 자격 증명 기반 정책 | 아니요 | 
| 단일 VPC 엔드포인트 | VPC 엔드포인트 정책 | 아니요 | 
| 조직의 모든 계정 | 리소스 제어 정책(RCP) | 예 | 

**참고**  
거부하는 리소스 제어 정책만 네트워크 외부 사용자가 인증하기 전에 `opensearch:ViewLoginPage` 차단합니다. 자격 증명 기반 및 VPC 엔드포인트 정책은 사용자가 로그인한 후에 적용됩니다.

**Topics**
+ [보안 주체를 VPC 엔드포인트로 제한](#application-network-access-identity-vpce)
+ [보안 주체를 IP 주소 범위로 제한](#application-network-access-identity-ip)
+ [VPC 엔드포인트 정책을 사용한 액세스 제한](#application-network-access-endpoint-policy)
+ [조직 전체에서 VPC 엔드포인트 액세스 적용](#application-network-access-rcp-vpce)
+ [조직 전체에서 VPC 액세스 적용](#application-network-access-rcp-vpc)
+ [조직 전체에서 IP 주소 범위 액세스 적용](#application-network-access-rcp-ip)

## 보안 주체를 VPC 엔드포인트로 제한
<a name="application-network-access-identity-vpce"></a>

다음 자격 증명 기반 정책은 요청이 지정된 인터페이스 VPC 엔드포인트를 통해 도착하지 않는 한 OpenSearch UI 애플리케이션에 대한 사용자 또는 역할 액세스를 거부합니다. 애플리케이션에 액세스하는 IAM 보안 주체에 연결합니다. {{자리 표시자 값을}} 자체 VPC 엔드포인트 ID로 바꿉니다.

**보안 주체를 VPC 엔드포인트로 제한하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideVpce",
               "Effect": "Deny",
               "Action": "opensearch:ApplicationAccessAll",
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "StringNotEqualsIfExists": {
                       "aws:SourceVpce": "{{vpc-endpoint-id}}"
                   }
               }
           }
       ]
   }
   ```

1. IAM 정책을 생성합니다.

   ```
   aws iam create-policy \
     --policy-name {{DenyOpenSearchUIOutsideVpce}} \
     --description "{{Denies OpenSearch UI access outside the approved VPC endpoint}}" \
     --policy-document file://policy.json
   ```

   응답에는 정책 ARN이 포함됩니다. 다음 단계에서이 값을 기록해 둡니다.

1. 애플리케이션에 액세스하는 IAM 역할 또는 사용자에 정책을 연결합니다.

   ```
   aws iam attach-role-policy \
     --role-name {{OpenSearchUIUserRole}} \
     --policy-arn {{arn:aws:iam::111122223333:policy/DenyOpenSearchUIOutsideVpce}}
   ```

정책이 적용되면 보안 주체는 승인된 VPC 엔드포인트 외부에서 애플리케이션에 액세스할 때 `403 forbidden` 응답을 받습니다. 엔드포인트를 통한 액세스는 정상적으로 작동합니다.

## 보안 주체를 IP 주소 범위로 제한
<a name="application-network-access-identity-ip"></a>

다음 자격 증명 기반 정책은 요청이 회사 네트워크의 퍼블릭 송신 범위와 같은 승인된 IP 주소 범위에서 시작되지 않는 한 액세스를 거부합니다. {{자리 표시자 값을}} CIDR 표기법의 고유한 IP 주소 범위로 바꿉니다.

**보안 주체를 IP 주소 범위로 제한하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideCorpNetwork",
               "Effect": "Deny",
               "Action": "opensearch:ApplicationAccessAll",
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "NotIpAddress": {
                       "aws:SourceIp": [
                           "{{203.0.113.0/24}}",
                           "{{198.51.100.0/24}}"
                       ]
                   }
               }
           }
       ]
   }
   ```

1. IAM 정책을 생성합니다.

   ```
   aws iam create-policy \
     --policy-name {{DenyOpenSearchUIExternalAccess}} \
     --description "{{Denies OpenSearch UI access from outside corporate IP ranges}}" \
     --policy-document file://policy.json
   ```

1. 애플리케이션에 액세스하는 IAM 역할 또는 사용자에 정책을 연결합니다.

   ```
   aws iam attach-role-policy \
     --role-name {{OpenSearchUIUserRole}} \
     --policy-arn {{arn:aws:iam::111122223333:policy/DenyOpenSearchUIExternalAccess}}
   ```

**참고**  
요청이 VPC 엔드포인트를 통해 도착하면 `aws:SourceIp`이 존재하지 않습니다. 프라이빗(VPC 엔드포인트) 및 퍼블릭(IP 제한) 액세스 경로를 모두 사용하는 경우 합법적인 VPC 엔드포인트 트래픽을 실수로 거부하지 않도록 정책의 두 조건 키를 모두 고려하세요.

## VPC 엔드포인트 정책을 사용한 액세스 제한
<a name="application-network-access-endpoint-policy"></a>

자격 증명 기반 정책은 특정 보안 주체를 관리합니다. 연결된 보안 주체에 관계없이 VPC 엔드포인트를 *통해* 연결할 수 있는 애플리케이션을 제어하려면 정책을 인터페이스 VPC 엔드포인트 자체에 연결합니다. 다음 엔드포인트 정책은 특정 애플리케이션에 대한 액세스만 허용합니다. {{자리 표시자 값을}} 자체 AWS 리전, 계정 ID 및 애플리케이션 ID로 바꿉니다.

**VPC 엔드포인트 정책을 사용하여 액세스를 제한하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "AllowOpenSearchUIApplication",
               "Effect": "Allow",
               "Principal": "*",
               "Action": "opensearch:ApplicationAccessAll",
               "Resource": "arn:aws:opensearch:{{region}}:{{account-id}}:application/{{application-id}}"
           }
       ]
   }
   ```

1. 인터페이스 VPC 엔드포인트에 정책을 적용합니다.

   ```
   aws ec2 modify-vpc-endpoint \
     --vpc-endpoint-id {{vpce-1a2b3c4d5e6f7g8h9}} \
     --policy-document file://policy.json
   ```

OpenSearch UI의 VPC 엔드포인트 정책에 대한 자세한 내용은 섹션을 참조하세요[VPC 엔드포인트에서 OpenSearch UI에 대한 액세스 관리](application-access-ui-from-vpc-endpoint.md).

## 조직 전체에서 VPC 엔드포인트 액세스 적용
<a name="application-network-access-rcp-vpce"></a>

자격 증명 기반 정책은 특정 보안 주체를 제한하고 VPC 엔드포인트 정책은 특정 엔드포인트를 제한합니다. 조직의 모든 계정에서 네트워크 액세스를 균일하게 적용하고 인증하기 *전에* 네트워크 외부 사용자를 차단하려면 AWS 조직에 리소스 제어 정책(RCP)을 연결합니다.

다음 리소스 제어 정책은 요청이 지정된 VPC 엔드포인트를 통해 도착하지 않는 한 조직의 OpenSearch UI 애플리케이션에 대한 모든 액세스를 거부합니다. 사전 인증 로그인 페이지(`opensearch:ViewLoginPage`)와 인증된 액세스()를 모두 거부합니다`opensearch:ApplicationAccessAll`. 승인된 네트워크 외부의 사용자는 로그인 페이지를 로드하거나 애플리케이션에 액세스할 수 없습니다. {{자리 표시자 값을}} 자체 VPC 엔드포인트 ID로 바꿉니다.

**조직 전체에서 VPC 엔드포인트 액세스를 적용하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideVpce",
               "Effect": "Deny",
               "Principal": "*",
               "Action": [
                   "opensearch:ViewLoginPage",
                   "opensearch:ApplicationAccessAll"
               ],
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "StringNotEqualsIfExists": {
                       "aws:SourceVpce": "{{vpc-endpoint-id}}"
                   }
               }
           }
       ]
   }
   ```

1. 리소스 제어 정책을 생성합니다. 조직의 관리 계정 또는 위임된 관리자 계정에서이 명령을 실행합니다.

   ```
   aws organizations create-policy \
     --name {{DenyOpenSearchUIOutsideVpce}} \
     --description "{{Denies OpenSearch UI access outside the approved VPC endpoint}}" \
     --type RESOURCE_CONTROL_POLICY \
     --content file://policy.json
   ```

1. 보호하려는 범위에 따라 조직 루트, 조직 단위 또는 계정에 정책을 연결합니다.

   ```
   aws organizations attach-policy \
     --policy-id {{p-example12345}} \
     --target-id {{111122223333}}
   ```

   자세한 내용은 Organizations 사용 설명서의 [리소스 제어 정책 연결 및 분리](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps_attach.html)를 참조하세요. *AWS * 

정책이 적용된 후에는 승인된 VPC 엔드포인트 외부의 사용자가 애플리케이션에 액세스할 수 없습니다. 애플리케이션의 인증 유형과 요청된 URL에 따라 사용자는 로그인 페이지 대신 `403 forbidden` 응답을 받거나 로그인으로 리디렉션된 다음 애플리케이션에 대한 액세스가 거부됩니다. VPC 엔드포인트를 통해 연결하는 경우 로그인 페이지로 이동하여 정상적으로 로그인합니다.

**참고**  
리소스 제어 정책에 대한 변경 사항이 적용되는 데 최대 1분이 걸릴 수 있습니다. 정책을 생성, 업데이트 또는 연결한 후 즉시 테스트하는 경우에도 이전 동작을 관찰할 수 있습니다.

## 조직 전체에서 VPC 액세스 적용
<a name="application-network-access-rcp-vpc"></a>

하나의 엔드포인트에 이름을 지정하는 대신 VPC의 모든 인터페이스 VPC 엔드포인트를 승인하려면를 사용합니다`aws:SourceVpc`. 다음 리소스 제어 정책은 요청이 지정된 VPC를 통해 도착하지 않는 한 조직 전체의 액세스를 거부합니다. {{자리 표시자 값을}} 자체 VPC ID로 바꿉니다.

**조직 전체에서 VPC 액세스를 적용하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideVpc",
               "Effect": "Deny",
               "Principal": "*",
               "Action": [
                   "opensearch:ViewLoginPage",
                   "opensearch:ApplicationAccessAll"
               ],
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "StringNotEqualsIfExists": {
                       "aws:SourceVpc": "{{vpc-id}}"
                   }
               }
           }
       ]
   }
   ```

1. 리소스 제어 정책을 생성하고 연결합니다.

   ```
   aws organizations create-policy \
     --name {{DenyOpenSearchUIOutsideVpc}} \
     --description "{{Denies OpenSearch UI access outside the approved VPC}}" \
     --type RESOURCE_CONTROL_POLICY \
     --content file://policy.json
   
   aws organizations attach-policy \
     --policy-id {{p-example12345}} \
     --target-id {{111122223333}}
   ```

## 조직 전체에서 IP 주소 범위 액세스 적용
<a name="application-network-access-rcp-ip"></a>

다음 리소스 제어 정책은 요청이 회사 네트워크의 퍼블릭 송신 범위와 같은 승인된 IP 주소 범위에서 시작되지 않는 한 조직 전체의 액세스를 거부합니다. {{자리 표시자 값을}} CIDR 표기법의 고유한 IP 주소 범위로 바꿉니다.

**조직 전체에서 IP 주소 범위 액세스를 적용하려면**

1. 다음 정책을 라는 로컬 파일에 저장합니다`policy.json`.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideCorpNetwork",
               "Effect": "Deny",
               "Principal": "*",
               "Action": [
                   "opensearch:ViewLoginPage",
                   "opensearch:ApplicationAccessAll"
               ],
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "NotIpAddress": {
                       "aws:SourceIp": [
                           "{{203.0.113.0/24}}",
                           "{{198.51.100.0/24}}"
                       ]
                   }
               }
           }
       ]
   }
   ```

1. 리소스 제어 정책을 생성하고 연결합니다.

   ```
   aws organizations create-policy \
     --name {{DenyOpenSearchUIExternalAccess}} \
     --description "{{Denies OpenSearch UI access from outside corporate IP ranges}}" \
     --type RESOURCE_CONTROL_POLICY \
     --content file://policy.json
   
   aws organizations attach-policy \
     --policy-id {{p-example12345}} \
     --target-id {{111122223333}}
   ```

**참고**  
자격 증명 기반 IP 예제와 마찬가지로 `aws:SourceIp`는 VPC 엔드포인트를 통해 도착하는 요청에 존재하지 않습니다. 프라이빗 및 퍼블릭 액세스 경로를 모두 사용하는 경우 합법적인 VPC 엔드포인트 트래픽을 실수로 거부하지 않도록 두 조건 키를 모두 고려하세요.