Amazon OpenSearch Serverless에 대한 네트워크 액세스 - Amazon OpenSearch 서비스

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

Amazon OpenSearch Serverless에 대한 네트워크 액세스

Amazon OpenSearch Serverless 컬렉션에 대한 네트워크 설정에 따라 퍼블릭 네트워크에서 인터넷을 통해 컬렉션에 액세스할 수 있는지 또는 프라이빗 액세스로 액세스해야 하는지 여부가 결정됩니다.

프라이빗 액세스는 다음 중 하나 또는 둘 다에 적용될 수 있습니다.

  • OpenSearch Serverless 관리형 VPC 엔드포인트

  • Amazon Bedrock과 같은 지원되는 AWS 서비스

컬렉션의 OpenSearch 엔드포인트 및 해당 OpenSearch Dashboards 엔드포인트에 대해 네트워크 액세스를 개별적으로 구성할 수 있습니다.

네트워크 액세스는 다양한 소스 네트워크에서 액세스를 허용하기 위한 격리 메커니즘입니다. 예를 들어 컬렉션의 OpenSearch 대시보드 엔드포인트에 퍼블릭 액세스로 액세스할 수 있지만 OpenSearch API 엔드포인트에는 액세스할 수 없는 경우, 사용자는 퍼블릭 네트워크에서 연결할 때 대시보드를 통해서만 컬렉션 데이터에 액세스할 수 있습니다. 퍼블릭 네트워크에서 직접 OpenSearch API를 호출하려고 하면 차단됩니다. 네트워크 설정은 이러한 소스에서 리소스 유형으로의 순열에 사용할 수 있습니다. Amazon OpenSearch Serverless는 IPv4 및 IPv6 연결을 모두 지원합니다.

네트워크 정책

네트워크 정책을 사용하면 정책에 정의된 규칙과 일치하는 컬렉션에 네트워크 액세스 설정을 자동으로 할당하여 많은 컬렉션을 대규모로 관리할 수 있습니다.

네트워크 정책에서는 일련의 규칙을 지정합니다. 이 규칙은 컬렉션 엔드포인트 및 OpenSearch Dashboards 엔드포인트에 대한 액세스 권한을 정의합니다. 각 규칙은 액세스 유형(퍼블릭 또는 프라이빗)과 리소스 유형(컬렉션 및/또는 OpenSearch 대시보드 엔드포인트)으로 구성됩니다. 각 리소스 유형(collectiondashboard)에 대해 정책을 적용할 컬렉션을 정의하는 일련의 규칙을 지정합니다.

이 샘플 정책에서 첫 번째 규칙은 marketing* 용어로 시작하는 모든 컬렉션에서 컬렉션 엔드포인트와 대시보드 엔드포인트 모두에 대한 VPC 엔드포인트 액세스를 지정합니다. 또한 Amazon Bedrock 액세스를 지정합니다.

참고

Amazon Bedrock과 같은 AWS 서비스에 대한 프라이빗 액세스는 컬렉션의 OpenSearch 엔드포인트에 적용되며 OpenSearch 대시보드 엔드포인트에는 적용되지 않습니다. ResourceTypedashboard인 경우에도 AWS 서비스에는 OpenSearch 대시보드에 대한 액세스 권한을 부여할 수 없습니다.

두 번째 규칙은 finance 컬렉션에 대한 퍼블릭 액세스를 지정하지만 컬렉션 엔드포인트에 대해서만(Dashboards 액세스 없음) 지정합니다.

[ { "Description":"Marketing access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/marketing*" ] }, { "ResourceType":"dashboard", "Resource":[ "collection/marketing*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], }, { "Description":"Sales access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

이 정책은 “finance”(재무)로 시작하는 컬렉션에 대한 OpenSearch Dashboards에 대한 퍼블릭 액세스만 제공합니다. OpenSearch API에 직접 액세스하려는 모든 시도는 실패합니다.

[ { "Description": "Dashboards access", "Rules": [ { "ResourceType": "dashboard", "Resource": [ "collection/finance*" ] } ], "AllowFromPublic": true } ]

네트워크 정책은 기존 컬렉션뿐만 아니라 향후 컬렉션에도 적용될 수 있습니다. 예를 들어 컬렉션을 만든 다음 컬렉션 이름과 일치하는 규칙을 사용하여 네트워크 정책을 생성할 수 있습니다. 컬렉션을 생성하기 전에 네트워크 정책을 먼저 생성해야 하는 것은 아닙니다.

고려 사항

컬렉션에 대한 네트워크 액세스를 구성할 때 다음 사항을 고려하세요.

  • 컬렉션에 대한 VPC 엔드포인트 액세스를 구성하려면 먼저 OpenSearch Serverless 관리형 VPC 엔드포인트를 하나 이상 생성해야 합니다.

  • AWS 서비스에 대한 프라이빗 액세스는 컬렉션의 OpenSearch 엔드포인트에만 적용되며 OpenSearch 대시보드 엔드포인트에는 적용되지 않습니다. ResourceTypedashboard인 경우에도 AWS 서비스에는 OpenSearch 대시보드에 대한 액세스 권한을 부여할 수 없습니다.

  • 퍼블릭 네트워크에서 컬렉션에 액세스할 수 있는 경우 모든 OpenSearch Serverless 관리형 VPC 엔드포인트 및 모든 AWS 서비스에서도 액세스할 수 있습니다.

  • 단일 컬렉션에 여러 네트워크 정책을 적용할 수 있습니다. 자세한 내용은 정책 우선순위 단원을 참조하십시오.

네트워크 정책을 구성하는 데 필요한 권한

OpenSearch Serverless에 대한 네트워크 액세스는 다음 AWS Identity and Access Management(IAM) 권한을 사용합니다. IAM 조건을 지정하여 사용자를 특정 컬렉션과 연결된 네트워크 정책으로 제한할 수 있습니다.

  • aoss:CreateSecurityPolicy – 네트워크 액세스 정책을 생성합니다.

  • aoss:ListSecurityPolicies – 현재 계정의 모든 네트워크 정책을 나열합니다.

  • aoss:GetSecurityPolicy – 네트워크 액세스 정책 사양을 봅니다.

  • aoss:UpdateSecurityPolicy – 주어진 네트워크 액세스 정책을 수정하고 VPC ID 또는 퍼블릭 액세스 지정을 변경합니다.

  • aoss:DeleteSecurityPolicy – 모든 컬렉션에서 분리된 후 네트워크 액세스 정책을 삭제합니다.

다음 자격 증명 기반 액세스 정책을 통해 사용자는 모든 네트워크 정책을 보고 리소스 패턴 collection/application-logs로 정책을 업데이트할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:UpdateSecurityPolicy" ], "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "application-logs" } } }, { "Effect": "Allow", "Action": [ "aoss:ListSecurityPolicies", "aoss:GetSecurityPolicy" ], "Resource": "*" } ] }
참고

또한 OpenSearch Serverless에는 컬렉션 리소스에 대한 aoss:APIAccessAllaoss:DashboardsAccessAll 권한이 필요합니다. 자세한 내용은 API 작업 사용 OpenSearch 단원을 참조하십시오.

정책 우선순위

네트워크 정책 규칙이 정책 내에서 또는 정책 간에 중복되는 상황이 있을 수 있습니다. 이 경우 퍼블릭 액세스를 지정하는 규칙이 두 규칙에 공통적인 모든 컬렉션에 대해 프라이빗 액세스를 지정하는 규칙보다 우선 적용됩니다.

예를 들어 다음 정책에서 두 규칙 모두 finance 컬렉션에 대한 네트워크 액세스를 할당하지만 한 규칙은 VPC 액세스를 지정하고 다른 규칙은 퍼블릭 액세스를 지정합니다. 이 상황에서 퍼블릭 액세스는 finance(재무) 컬렉션에 대해서만 VPC 액세스를 재정의하므로(두 규칙 모두에 존재하기 때문에) 퍼블릭 네트워크에서 finance(재무) 컬렉션에 액세스할 수 있습니다. sales 컬렉션은 지정된 엔드포인트에서 VPC 액세스 권한을 가집니다.

[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/sales", "collection/finance" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ] }, { "Description":"Rule 2", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

서로 다른 규칙의 여러 VPC 엔드포인트가 컬렉션에 적용되는 경우 규칙은 추가적으로 적용되며 지정된 모든 엔드포인트에서 컬렉션에 액세스할 수 있습니다. AllowFromPublictrue로 설정했지만 하나 이상의 SourceVPCEs 또는 SourceServices를 제공하는 경우 OpenSearch Serverless는 VPC 엔드포인트 및 서비스 식별자를 무시하고 연결된 컬렉션에 퍼블릭 액세스 권한이 부여됩니다.

네트워크 정책 생성(콘솔)

네트워크 정책은 기존 정책뿐만 아니라 향후 정책에도 적용될 수 있습니다. 컬렉션을 생성하기 전에 네트워크 정책을 생성하는 것이 좋습니다.

OpenSearch Serverless 네트워크 정책 생성하기
  1. https://console.aws.amazon.com/aos/home에서 Amazon OpenSearch Service 콘솔을 엽니다.

  2. 왼쪽 탐색 패널에서 Serverless(서버리스)를 확장하고 Network policies(네트워크 정책)를 선택합니다.

  3. Create network policy(네트워크 정책 생성)를 선택합니다.

  4. 정책의 이름 및 설명을 입력합니다.

  5. 하나 이상의 규칙을 입력합니다. 이러한 규칙은 OpenSearch Serverless 컬렉션 및 해당 OpenSearch Dashboards 엔드포인트에 대한 액세스 권한을 정의합니다.

    각 규칙에는 다음 요소가 포함됩니다.

    Element 설명
    규칙 이름 규칙의 내용을 설명하는 이름입니다. 예: “마케팅 팀을 위한 VPC 액세스”
    액세스 유형 퍼블릭 또는 프라이빗 액세스를 선택합니다. 그리고 다음 중 하나 또는 둘 다를 선택합니다.
    리소스 유형 OpenSearch 엔드포인트(OpenSearch API에 대한 호출 허용), OpenSearch Dashboards(시각화 및 OpenSearch 플러그인의 사용자 인터페이스에 대한 액세스 허용) 또는 둘 다에 대한 액세스를 제공할지 여부를 선택합니다.
    참고

    AWS 서비스 프라이빗 액세스는 컬렉션의 OpenSearch 엔드포인트에만 적용되며 OpenSearch 대시보드 엔드포인트에는 적용되지 않습니다. OpenSearch 대시보드를 선택하더라도 AWS 서비스에는 엔드포인트 액세스 권한만 부여할 수 있습니다.

    선택한 각 리소스 유형에 대해 기존 컬렉션을 선택하여 정책 설정을 적용하거나 하나 이상의 리소스 패턴을 생성할 수 있습니다. 리소스 패턴은 접두사와 와일드카드(*)로 구성되며 정책 설정이 적용될 컬렉션을 정의합니다.

    예를 들어 Marketing*이라는 패턴을 포함하는 경우 이름이 “Marketing”으로 시작하는 새 컬렉션이나 기존 컬렉션에는 이 정책의 네트워크 설정이 자동으로 적용됩니다. 단일 와일드카드(*)는 모든 현재 및 향후 컬렉션에 정책을 적용합니다.

    또한 Finance와 같이 와일드카드 없이 향후 컬렉션의 이름을 지정할 수 있습니다. OpenSearch Serverless는 정확히 동일한 이름으로 새로 생성된 컬렉션에 정책 설정을 적용합니다.

  6. 정책 구성에 만족하면 Create(생성)를 선택합니다.

네트워크 정책 생성(AWS CLI)

OpenSearch Serverless API 작업을 사용하여 네트워크 정책을 생성하려면 JSON 형식으로 규칙을 지정합니다. CreateSecurityPolicy 요청은 인라인 정책과 .json 파일을 모두 허용합니다. 모든 컬렉션과 패턴은 collection/<collection name|pattern> 형식을 취해야 합니다.

참고

dashboards 리소스 유형은 OpenSearch Dashboards에 대한 권한만 허용하지만 OpenSearch Dashboards가 작동하려면 동일한 소스의 컬렉션 액세스도 허용해야 합니다. 아래 두 번째 정책을 참조하세요.

프라이빗 액세스를 지정하려면 다음 요소 중 하나 또는 둘 다를 포함합니다.

  • SourceVPCEs - 하나 이상의 OpenSearch Serverless 관리형 VPC 엔드포인트를 지정합니다.

  • SourceServices - 지원되는 하나 이상의 AWS 서비스를 지정합니다. 현재 다음 서비스 식별자가 지원됩니다.

    • bedrock.amazonaws.com - Amazon Bedrock

다음 샘플 네트워크 정책은 접두사 log*로 시작하는 컬렉션에만 컬렉션 엔드포인트(VPC 액세스 및 Amazon Bedrock)에 대한 프라이빗 액세스 권한에 제공합니다. 인증된 사용자는 OpenSearch Dashboards에 로그인할 수 없으며 프로그래밍 방식으로만 컬렉션 엔드포인트에 액세스할 수 있습니다.

[ { "Description":"Private access for log collections", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/log*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], } ]

다음 정책은 finance라는 이름이 지정된 단일 컬렉션에 대해 OpenSearch 엔드포인트 및 OpenSearch Dashboards에 대한 퍼블릭 액세스를 제공합니다. 컬렉션이 존재하지 않는 경우 컬렉션이 생성되면 네트워크 설정이 컬렉션에 적용됩니다.

[ { "Description":"Public access for finance collection", "Rules":[ { "ResourceType":"dashboard", "Resource":[ "collection/finance" ] }, { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

다음 요청은 위의 네트워크 정책을 생성합니다.

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type network \ --policy "[{\"Description\":\"Public access for finance collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/finance\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/finance\"]}],\"AllowFromPublic\":true}]"

JSON 파일로 정책을 제공하려면 --policy file://my-policy.json 형식을 사용합니다.

네트워크 정책 보기

컬렉션을 생성하기 전에 계정의 기존 네트워크 정책을 미리 보고 컬렉션 이름과 일치하는 리소스 패턴을 가진 정책을 확인하는 것이 좋습니다. 다음 ListSecurityPolicies 요청은 계정의 모든 네트워크 정책을 나열합니다.

aws opensearchserverless list-security-policies --type network

요청은 구성된 모든 네트워크 정책에 대한 정보를 반환합니다. 특정 정책에 정의된 패턴 규칙을 보려면 응답의 securityPolicySummaries 요소 내용에서 정책 정보를 찾으십시오. 이 nametype를 기록하고 GetSecurityPolicy 요청에서 이러한 속성을 사용하여 다음 정책 세부 정보가 포함된 응답을 수신하세요.

{ "securityPolicyDetail": [ { "type": "network", "name": "my-policy", "policyVersion": "MTY2MzY5MTY1MDA3Ml8x", "policy": "[{\"Description\":\"My network policy rule\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection/*\"]}],\"AllowFromPublic\":true}]", "createdDate": 1663691650072, "lastModifiedDate": 1663691650072 } ] }

특정 정책에 대한 자세한 정보를 보려면 GetSecurityPolicy 명령을 사용합니다.

네트워크 정책 업데이트

네트워크에 대한 VPC 엔드포인트 또는 퍼블릭 액세스 지정을 수정하면 연결된 모든 컬렉션이 영향을 받습니다. OpenSearch Serverless 콘솔에서 네트워크 정책을 업데이트하려면 Network policies(네트워크 정책)를 확장하고 수정할 정책을 선택한 다음 Edit(편집)를 선택합니다. 변경하고 Save(저장)를 선택합니다.

OpenSearch Serverless API를 사용하여 네트워크 정책을 업데이트하려면 UpdateSecurityPolicy 명령을 사용합니다. 요청에 정책 버전을 포함해야 합니다. ListSecurityPolicies 또는GetSecurityPolicy 명령을 사용하여 정책 버전을 검색할 수 있습니다. 최신 정책 버전을 포함하면 다른 사람이 변경한 내용을 실수로 재정의하지 않습니다.

다음 요청은 새 정책 JSON 문서로 네트워크 정책을 업데이트합니다.

aws opensearchserverless update-security-policy \ --name sales-inventory \ --type network \ --policy-version MTY2MzY5MTY1MDA3Ml8x \ --policy file://my-new-policy.json

네트워크 정책 삭제

네트워크 정책을 삭제하려면 먼저 네트워크 정책을 모든 컬렉션에서 분리해야 합니다. OpenSearch Serverless 콘솔에서 정책을 삭제하려면 정책을 선택하고 Delete(삭제)를 선택합니다.

DeleteSecurityPolicy 명령을 사용할 수도 있습니다.

aws opensearchserverless delete-security-policy --name my-policy --type network