Amazon OpenSearch 서버리스를 위한 네트워크 액세스 - 아마존 OpenSearch 서비스

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

Amazon OpenSearch 서버리스를 위한 네트워크 액세스

Amazon OpenSearch Serverless 컬렉션의 네트워크 설정에 따라 공용 네트워크에서 인터넷을 통해 컬렉션에 액세스할 수 있는지 아니면 비공개로 액세스해야 하는지가 결정됩니다.

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

  • OpenSearch 서버리스 관리형 VPC 엔드포인트

  • 아마존 베드락 AWS 서비스 등 지원

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

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

네트워크 정책

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

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

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

참고

Amazon Bedrock과 AWS 서비스 같은 프라이빗 액세스는 컬렉션의 엔드포인트에만 적용되며 OpenSearch 대시보드 OpenSearch 엔드포인트에는 적용되지 않습니다. 있더라도 대시보드에 대한 ResourceType 액세스 권한을 부여할 AWS 서비스 수는 없습니다. dashboard 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 } ]

이 정책은 “금융”으로 시작하는 컬렉션의 OpenSearch 대시보드에만 공개 액세스를 제공합니다. OpenSearch API에 직접 액세스하려는 모든 시도는 실패합니다.

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

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

고려 사항

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

  • 컬렉션에 대한 VPC 엔드포인트 액세스를 구성하려는 경우 먼저 OpenSearch 서버리스 관리형 VPC 엔드포인트를 하나 이상 만들어야 합니다.

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

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

  • 단일 컬렉션에 여러 네트워크 정책을 적용할 수 있습니다. 자세한 정보는 정책 우선순위을 참조하세요.

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

OpenSearch 서버리스 네트워크 액세스는 다음 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 서버리스에는 컬렉션 aoss:DashboardsAccessAll 리소스에 대한 aoss:APIAccessAll 및 권한이 필요합니다. 자세한 정보는 OpenSearch API 작업 사용을 참조하세요.

정책 우선순위

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

예를 들어 다음 정책에서 두 규칙 모두 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 엔드포인트가 컬렉션에 적용되는 경우 규칙은 추가적으로 적용되며 지정된 모든 엔드포인트에서 컬렉션에 액세스할 수 있습니다. 하나 SourceVPCEs 또는 SourceServices 여러 개를 AllowFromPublic 제공하도록 true 설정했지만 함께 제공하는 경우 OpenSearch 서버리스는 VPC 엔드포인트와 서비스 식별자를 무시하고 관련 컬렉션은 퍼블릭 액세스 권한을 갖게 됩니다.

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

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

서버리스 네트워크 정책을 만들려면 OpenSearch
  1. https://console.aws.amazon.com/aos/home 에서 아마존 OpenSearch 서비스 콘솔을 엽니다.

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

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

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

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

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

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

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

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

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

    또한 와일드카드 없이 미래 컬렉션의 이름을 지정할 수 있습니다 (예Finance:). OpenSearch 서버리스는 새로 만든 컬렉션과 동일한 이름을 가진 모든 컬렉션에 정책 설정을 적용합니다.

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

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

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

참고

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

비공개 액세스를 지정하려면 다음 요소 중 하나 또는 둘 다를 포함하십시오.

  • SourceVPCEs— OpenSearch 서버리스 관리형 VPC 엔드포인트를 하나 이상 지정합니다.

  • SourceServices— 지원되는 하나 이상의 식별자를 지정합니다. AWS 서비스현재 지원되는 서비스 식별자는 다음과 같습니다.

    • bedrock.amazonaws.com— 아마존 베드락

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

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

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

[ { "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 요소 내용에서 정책 정보를 찾으십시오. 이 type 정책의 name 및 내용을 기록하고 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 서버리스 콘솔에서 네트워크 정책을 업데이트하려면 네트워크 정책을 확장하고 수정할 정책을 선택한 다음 편집을 선택합니다. 변경하고 Save(저장)를 선택합니다.

OpenSearch 서버리스 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 서버리스 콘솔에서 정책을 삭제하려면 정책을 선택하고 삭제를 선택합니다.

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

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