Amazon OpenSearch 서버리스에서의 암호화 - 아마존 OpenSearch 서비스

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

Amazon OpenSearch 서버리스에서의 암호화

저장 중 암호화

생성하는 각 Amazon OpenSearch Serverless 컬렉션은 데이터에 대한 무단 액세스를 방지하는 데 도움이 되는 보안 기능인 저장된 데이터의 암호화로 보호됩니다. 저장 암호화는 AWS Key Management Service (AWS KMS) 를 사용하여 암호화 키를 저장하고 관리합니다. 암호화를 수행하기 위해 256비트 키(AES-256)가 있는 고급 암호화 표준 알고리즘을 사용합니다.

암호화 정책

암호화 정책을 사용하면 특정 이름 또는 패턴과 일치하는 새로 생성한 컬렉션에 암호화 키를 자동으로 할당하여 여러 컬렉션을 대규모로 관리할 수 있습니다.

암호화 정책을 생성할 때 MyCollection*과 같은 와일드카드 기반 일치 규칙인 접두사를 지정하거나 단일 컬렉션 이름을 입력할 수 있습니다. 그런 다음 해당 이름 또는 접두사 패턴과 일치하는 컬렉션을 생성하면 정책과 해당 KMS 키가 자동으로 컬렉션에 할당됩니다.

암호화 정책에는 다음 요소가 포함됩니다.

  • Rules – 각각 다음과 같은 하위 요소가 포함된 하나 이상의 컬렉션 일치 규칙:

    • ResourceType – 현재 유일한 옵션은 “컬렉션”입니다. 암호화 정책은 컬렉션 리소스에만 적용됩니다.

    • Resourcecollection/<collection name|pattern> 형식으로 정책이 적용될 하나 이상의 컬렉션 이름 또는 패턴입니다.

  • AWSOwnedKey – AWS 소유 키를 사용할지 여부.

  • KmsARNAWSOwnedKey를 false로 설정한 경우 연결된 컬렉션을 암호화할 KMS 키의 Amazon 리소스 이름(ARN)을 지정합니다. 이 매개변수를 포함하면 OpenSearch 서버리스는 매개변수를 무시합니다. AWSOwnedKey

다음 샘플 정책은 autopartsinventory라는 이름의 향후 컬렉션과 “sales”라는 용어로 시작하는 컬렉션에 고객 관리형 키를 할당합니다.

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

정책이 컬렉션 이름과 일치하더라도 리소스 패턴에 와일드카드(*)가 포함된 경우 컬렉션 생성 중에 이 자동 할당을 재정의하도록 선택할 수 있습니다. 자동 키 할당을 재정의하도록 선택한 경우 OpenSearch 서버리스는 auto-< collection-name >이라는 이름의 암호화 정책을 생성하여 컬렉션에 연결합니다. 정책은 처음에는 단일 컬렉션에만 적용되지만 추가 컬렉션을 포함하도록 수정할 수 있습니다.

컬렉션과 더 이상 일치하지 않도록 정책 규칙을 수정하면 해당 컬렉션에서 연결된 KMS 키 할당이 취소되지 않습니다. 컬렉션은 항상 초기 암호화 키로 암호화된 상태로 유지됩니다. 컬렉션의 암호화 키를 변경하려면 컬렉션을 다시 생성해야 합니다.

여러 정책의 규칙이 컬렉션과 일치하는 경우 더 구체적인 규칙이 사용됩니다. 예를 들어 한 정책에 collection/log*에 대한 규칙이 포함되어 있고 다른 정책에 collection/logSpecial에 대한 규칙이 포함된 경우 더 구체적이기 때문에 두 번째 정책에 대한 암호화 키가 사용됩니다.

이름이나 접두사가 다른 정책에 이미 있는 경우 정책에 해당 이름이나 접두사를 사용할 수 없습니다. OpenSearch 서로 다른 암호화 정책에서 동일한 리소스 패턴을 구성하려고 하면 서버리스에 오류가 표시됩니다.

고려 사항

컬렉션의 암호화를 구성할 때 다음 사항을 고려하세요.

  • 저장된 암호화는 모든 서버리스 컬렉션에 필수입니다.

  • 고객 관리형 키 또는 AWS 소유 키를 사용할 수 있습니다. 고객 관리형 키를 선택하는 경우 자동 키 교체를 활성화하는 것이 좋습니다.

  • 컬렉션을 생성한 후에는 컬렉션의 암호화 키를 변경할 수 없습니다. 컬렉션을 처음 설정할 때 사용할 컬렉션을 신중하게 선택하십시오. AWS KMS

  • 컬렉션은 단일 암호화 정책과만 일치할 수 있습니다.

  • 고유한 KMS 키가 있는 컬렉션은 다른 컬렉션과 OpenSearch 컴퓨팅 유닛 (OCU) 을 공유할 수 없습니다. 고유 키가 있는 각 컬렉션에는 고유한 4개의 OCU가 필요합니다.

  • 암호화 정책에서 KMS 키를 업데이트하는 경우 변경 사항은 KMS 키가 이미 할당된 일치하는 기존 컬렉션에 영향을 미치지 않습니다.

  • OpenSearch 서버리스는 고객 관리 키에 대한 사용자 권한을 명시적으로 확인하지 않습니다. 사용자가 데이터 액세스 정책을 통해 컬렉션에 액세스할 권한이 있는 경우 연결된 키로 암호화된 데이터를 수집하고 쿼리할 수 있습니다.

필요한 권한

OpenSearch 서버리스의 저장 중 암호화는 다음 AWS Identity and Access Management (IAM) 권한을 사용합니다. 사용자를 특정 컬렉션으로 제한하도록 IAM 조건을 지정할 수 있습니다.

  • aoss:CreateSecurityPolicy – 암호화 정책을 생성합니다.

  • aoss:ListSecurityPolicies – 모든 암호화 정책과 해당 정책이 연결된 컬렉션을 나열합니다.

  • aoss:GetSecurityPolicy – 특정 암호화 정책의 세부 정보를 봅니다.

  • aoss:UpdateSecurityPolicy – 암호화 정책을 수정합니다.

  • aoss:DeleteSecurityPolicy – 암호화 정책을 삭제합니다.

다음 샘플 ID 기반 액세스 정책은 사용자가 collection/application-logs 리소스 패턴으로 암호화 정책을 관리하는 데 필요한 최소 권한을 제공합니다.

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

고객 관리형 키에 대한 키 정책

컬렉션을 보호하기 위해 고객 관리 키를 선택하면 OpenSearch 서버리스는 선택한 보안 주체를 대신하여 KMS 키를 사용할 권한을 얻습니다. 해당 보안 주체, 사용자 또는 역할은 서버리스에 필요한 KMS 키에 대한 권한을 가지고 있어야 합니다. OpenSearch 키 정책 또는 IAM 정책에서 이러한 권한을 제공할 수 있습니다.

OpenSearch 서버리스에는 최소한 고객 관리 키에 대해 다음과 같은 권한이 필요합니다.

예:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aoss.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

OpenSearch 서버리스는 GenerateDataKeykms:와 KMS:복호화 권한을 사용하여 권한 부여를 생성합니다.

자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS KMS의 키 정책 사용을 참조하세요.

OpenSearch 서버리스에서 권한 부여를 사용하는 방법 AWS KMS

OpenSearch 서버리스에서 고객 관리 키를 사용하려면 허가가 필요합니다.

새 키로 계정에 암호화 정책을 만들면 OpenSearch 서버리스가 CreateGrant요청을 전송하여 사용자를 대신하여 권한 부여를 생성합니다. AWS KMS권한 AWS KMS 부여는 고객 계정의 KMS 키에 대한 OpenSearch 서버리스 액세스 권한을 부여하는 데 사용됩니다.

OpenSearch 서버리스를 사용하려면 다음과 같은 내부 작업에 고객 관리 키를 사용하려면 허가가 필요합니다.

  • 제공된 대칭 고객 관리 키 ID가 유효한지 AWS KMS 확인하기 위한 DescribeKey요청을 보내십시오.

  • KMS 키로 GenerateDataKey요청을 보내 객체를 암호화하는 데 사용할 데이터 키를 생성하십시오.

  • 암호화된 데이터 키를 복호화하여 데이터를 암호화하는 AWS KMS 데 사용할 수 있도록 복호화 요청을 로 전송하십시오.

언제든지 권한 부여에 대한 액세스 권한을 취소하거나 고객 관리형 키에 대한 서비스 액세스를 제거할 수 있습니다. 이렇게 하면 OpenSearch 서버리스는 고객 관리 키로 암호화된 데이터에 액세스할 수 없게 되며, 이는 해당 데이터에 종속된 모든 작업에 영향을 미치며 비동기 워크플로우에서 AccessDeniedException 오류와 실패로 이어집니다.

OpenSearch 서버리스는 특정 고객 관리 키가 보안 정책 또는 컬렉션과 관련이 없는 경우 비동기 워크플로우에서 권한 부여를 사용 중지합니다.

암호화 정책 생성(콘솔)

암호화 정책에서 정책이 적용될 KMS 키와 일련의 수집 패턴을 지정합니다. 정책에 정의된 패턴 중 하나와 일치하는 모든 새 컬렉션에는 컬렉션을 생성할 때 해당 KMS 키가 할당됩니다. 컬렉션을 생성하기 전에 암호화 정책을 생성하는 것이 좋습니다.

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

  2. 왼쪽 탐색 패널에서 Serverless(서버리스)를 확장하고 Encryption policies(암호화 정책)를 선택합니다.

  3. Create encryption policy(암호화 정책 생성)를 선택합니다.

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

  5. Resources(리소스)에서 이 암호화 정책에 대한 리소스 패턴을 하나 이상 입력합니다. 패턴 중 하나와 일치하는 현재 AWS 계정 및 리전에서 새로 생성된 컬렉션은 모두 자동으로 이 정책에 할당됩니다. 예를 들어 와일드카드 없이 ApplicationLogs를 입력하고 나중에 해당 이름으로 컬렉션을 생성하면 정책과 해당 KMS 키가 해당 컬렉션에 할당됩니다.

    이름이 Logs로 시작하는 새 컬렉션에 정책을 할당하는 Logs*와 같은 접두사를 입력할 수도 있습니다. 와일드카드를 사용하면 여러 컬렉션의 암호화 설정을 대규모로 관리할 수 있습니다.

  6. Encryption(암호화)에서 사용할 KMS 키를 선택합니다.

  7. 생성을 선택합니다.

다음 단계: 컬렉션 생성

하나 이상의 암호화 정책을 구성한 후 해당 정책에 정의된 규칙과 일치하는 컬렉션을 생성할 수 있습니다. 지침은 컬렉션 생성을 참조하세요.

컬렉션 생성의 암호화 단계에서 OpenSearch 서버리스는 입력한 이름이 암호화 정책에 정의된 패턴과 일치한다고 알리고 해당 KMS 키를 컬렉션에 자동으로 할당합니다. 리소스 패턴에 와일드카드(*)가 포함된 경우 일치 항목을 재정의하고 고유한 키를 선택할 수 있습니다.

암호화 정책 생성(AWS CLI)

OpenSearch 서버리스 API 작업을 사용하여 암호화 정책을 생성하려면 리소스 패턴과 암호화 키를 JSON 형식으로 지정합니다. CreateSecurityPolicy요청은 인라인 정책과.json 파일을 모두 수락합니다.

암호화 정책은 다음 형식을 사용합니다. 이 샘플 my-policy.json 파일은 이름이 sales로 시작하는 모든 컬렉션뿐만 아니라 이름이 autopartsinventory인 향후 모든 컬렉션과 일치합니다.

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

서비스 소유 키를 사용하려면 AWSOwnedKeytrue로 설정합니다.

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":true }

다음 요청은 암호화 정책을 생성합니다.

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type encryption \ --policy file://my-policy.json

그런 다음 CreateCollectionAPI 작업을 사용하여 리소스 패턴 중 하나와 일치하는 컬렉션을 하나 이상 생성합니다.

암호화 정책 보기

컬렉션을 생성하기 전에 계정의 기존 암호화 정책을 미리 보고 컬렉션 이름과 일치하는 리소스 패턴을 가진 정책을 확인하는 것이 좋습니다. 다음 ListSecurityPolicies요청에는 계정의 모든 암호화 정책이 나열되어 있습니다.

aws opensearchserverless list-security-policies --type encryption

요청은 구성된 모든 암호화 정책에 대한 정보를 반환합니다. policy 요소의 콘텐츠를 사용하여 정책에 정의된 패턴 규칙을 봅니다.

{ "securityPolicyDetails": [ { "createdDate": 1663693217826, "description": "Sample encryption policy", "lastModifiedDate": 1663693217826, "name": "my-policy", "policy": "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"]}],\"AWSOwnedKey\":true}", "policyVersion": "MTY2MzY5MzIxNzgyNl8x", "type": "encryption" } ] }

KMS 키를 비롯한 특정 정책에 대한 세부 정보를 보려면 GetSecurityPolicy명령을 사용하십시오.

암호화 정책 업데이트

암호화 정책에서 KMS 키를 업데이트하면 변경된 이름 또는 패턴과 일치하는 새로 생성한 컬렉션에만 변경 내용이 적용됩니다. KMS 키가 이미 할당된 기존 컬렉션에는 영향을 미치지 않습니다.

정책 일치 규칙에도 동일하게 적용됩니다. 규칙을 추가, 수정 또는 삭제하면 새로 생성한 컬렉션에만 변경 사항이 적용됩니다. 더 이상 컬렉션 이름과 일치하지 않도록 정책 규칙을 수정해도 기존 컬렉션에 할당된 KMS 키는 손실되지 않습니다.

OpenSearch 서버리스 콘솔에서 암호화 정책을 업데이트하려면 암호화 정책을 선택하고 수정할 정책을 선택한 다음 편집을 선택합니다. 변경하고 Save(저장)를 선택합니다.

OpenSearch 서버리스 API를 사용하여 암호화 정책을 업데이트하려면 작업을 사용하십시오. UpdateSecurityPolicy 다음 요청은 새 정책 JSON 문서로 암호화 정책을 업데이트합니다.

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

암호화 정책 삭제

암호화 정책을 삭제해도 정책에 정의된 KMS 키를 현재 사용하고 있는 컬렉션은 영향을 받지 않습니다. OpenSearch 서버리스 콘솔에서 정책을 삭제하려면 정책을 선택하고 삭제를 선택합니다.

다음 DeleteSecurityPolicy작업을 사용할 수도 있습니다.

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

전송 중 암호화

OpenSearch 서버리스 내에서는 업계 표준 AES-256 암호가 적용된 전송 계층 보안 1.2 (TLS) 를 사용하여 컬렉션의 모든 경로가 전송 중에 암호화됩니다. TLS 1.2를 통해서도 Opensearch의 모든 API와 Dashboards에 액세스할 수 있습니다. TLS는 네트워크를 통해 교환되는 정보를 암호화하는 데 사용되는 업계 표준 암호화 프로토콜 세트입니다.