

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

# 란 무엇입니까 AWS Encryption SDK?
<a name="introduction"></a>

는 모든 사용자가 업계 표준 및 모범 사례를 사용하여 데이터를 쉽게 암호화하고 해독할 수 있도록 설계된 클라이언트 측 암호화 라이브러리 AWS Encryption SDK 입니다. 그럼으로써 데이터의 암호화 및 복호화 방법보다 애플리케이션의 핵심 기능에 집중할 수 있습니다. AWS Encryption SDK 는 Apache 2.0 라이선스에 따라 무료로 제공됩니다.

는 다음과 같은 질문에 AWS Encryption SDK 답합니다.
+ 어떤 암호화 알고리즘을 사용해야 하나요?
+ 이 알고리즘을 어떻게, 어떤 모드에서 사용해야 하나요?
+ 암호화 키는 어떻게 생성하나요?
+ 암호화 키를 보호하려면 어떻게 해야 하며 어디에 저장해야 하나요?
+ 암호화된 데이터를 이동 가능하게 만들려면 어떻게 해야 하나요?
+ 의도한 수신자가 내 암호화된 데이터를 읽을 수 있도록 하려면 어떻게 해야 하나요?
+ 기록된 시점과 읽은 시점 사이에 내 암호화된 데이터가 수정되지 않도록 하려면 어떻게 해야 하나요?
+ 에서 AWS KMS 반환하는 데이터 키를 사용하려면 어떻게 해야 합니까?

를 사용하여 데이터를 보호하는 데 사용할 래핑 [키를 결정하는 마스터 키 공급자](concepts.md#master-key-provider) 또는 키[링](concepts.md#keyring)을 AWS Encryption SDK정의합니다. 그런 다음에서 제공하는 간단한 방법을 사용하여 데이터를 암호화하고 해독합니다 AWS Encryption SDK. 는 나머지를 AWS Encryption SDK 수행합니다.

이 없으면 애플리케이션의 핵심 기능보다 암호화 솔루션을 구축하는 데 더 많은 노력을 AWS Encryption SDK기울일 수 있습니다. 는 다음 사항을 제공하여 이러한 질문에 AWS Encryption SDK 답합니다.

**암호화 모범 사례에 따른 기본 구현**  
기본적으로는 암호화하는 각 데이터 객체에 대해 고유한 데이터 키를 AWS Encryption SDK 생성합니다. 이는 각 암호화 작업에 고유한 데이터 키를 사용하는 암호화 모범 사례를 따릅니다.  
는 안전하고 인증된 대칭 키 알고리즘을 사용하여 데이터를 AWS Encryption SDK 암호화합니다. 자세한 내용은 [에서 지원되는 알고리즘 제품군 AWS Encryption SDK](supported-algorithms.md) 단원을 참조하십시오.

**래핑 키를 사용하여 데이터 키를 보호하기 위한 프레임워크**  
는 하나 이상의 래핑 키로 데이터를 암호화하여 데이터를 암호화하는 데이터 키를 AWS Encryption SDK 보호합니다. 는 둘 이상의 래핑 키로 데이터 키를 암호화하는 프레임워크를 제공하여 암호화된 데이터를 이식할 수 있도록 AWS Encryption SDK 합니다.  
예를 들어 AWS KMS key 의 AWS KMS 및 온프레미스 HSM의 키로 데이터를 암호화합니다. 어느 하나의 래핑 키를 사용할 수 없거나 호출자가 두 키를 모두 사용할 권한이 없는 경우 데이터를 복호화하는 데 두 래핑 키 중 어느 것을 사용해도 됩니다.

**암호화된 데이터와 함께 암호화된 데이터 키를 저장하는 형식 메시지**  
는 암호화된 데이터와 암호화된 데이터 키를 정의된 데이터 형식을 사용하는 [암호화된 메시지](concepts.md#message)에 함께 AWS Encryption SDK 저장합니다. 즉,에서 데이터를 암호화하는 데이터 키를 추적하거나 보호할 필요가 없습니다 AWS Encryption SDK .

의 일부 언어 구현에는 AWS SDK가 AWS Encryption SDK 필요하지만 에는 AWS Encryption SDK 가 필요하지 않으며 AWS 서비스에 종속 AWS 계정 되지 않습니다. 를 사용하여 데이터를 [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys) 보호하도록 선택한 AWS 계정 경우에만이 필요합니다.

## 오픈 소스 리포지토리에서 개발
<a name="esdk-repos"></a>

는 GitHub의 오픈 소스 리포지토리에서 개발 AWS Encryption SDK 됩니다. 이러한 리포지토리를 사용하여 코드를 보고, 문제를 읽고 제출하고, 언어 구현과 관련된 정보를 찾을 수 있습니다.
+ AWS Encryption SDK for C - [aws-encryption-sdk-c](https://github.com/aws/aws-encryption-sdk-c/)
+ AWS Encryption SDK for .NET - `aws-encryption-sdk`리포지토리의 [.NET](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/) 디렉터리입니다.
+ AWS 암호화 CLI - [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/)
+ AWS Encryption SDK for Java - [aws-encryption-sdk-java](https://github.com/aws/aws-encryption-sdk-java/)
+ AWS Encryption SDK for JavaScript - [aws-encryption-sdk-javascript](https://github.com/aws/aws-encryption-sdk-javascript/)
+ AWS Encryption SDK for Python - [aws-encryption-sdk-python](https://github.com/aws/aws-encryption-sdk-python/)
+ AWS Encryption SDK for Rust - `aws-encryption-sdk`리포지토리의 [Rust](https://github.com/aws/aws-encryption-sdk-dafny/tree/mainline/AwsEncryptionSDK/runtimes/rust/) 디렉터리입니다.
+ AWS Encryption SDK for Go - `aws-encryption-sdk`리포지토리의 [Go](https://github.com/aws/aws-encryption-sdk/tree/mainline/releases/go/encryption-sdk/) 디렉터리

## 암호화 라이브러리 및 서비스와의 호환성
<a name="intro-compatibility"></a>

 AWS Encryption SDK 는 여러 [프로그래밍 언어로](programming-languages.md) 지원됩니다. 모든 언어 구현은 상호 연동이 가능합니다. 하나의 언어 구현으로 암호화하고 다른 언어 구현으로 복호화할 수 있습니다. 상호 연동성에는 언어 제약 조건이 적용될 수 있습니다. 이 경우 이러한 제약 조건은 언어 구현에 대한 주제에 설명되어 있습니다. 또한 암호화 및 복호화를 수행할 때는 호환되는 키링이나 마스터 키 및 마스터 키 공급자를 사용해야 합니다. 자세한 내용은 [키링 호환성](choose-keyring.md#keyring-compatibility)을 참조하세요.

그러나는 다른 라이브러리와 상호 작용할 AWS Encryption SDK 수 없습니다. 각 라이브러리는 암호화된 데이터를 다른 형식으로 반환하므로 한 라이브러리로 암호화하고 다른 라이브러리로 복호화할 수 없습니다.

**DynamoDB Encryption Client 및 Amazon S3 클라이언트 측 암호화**  <a name="ESDK-DDBEC"></a>
는 [DynamoDB Encryption Client](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/) 또는 [Amazon S3 클라이언트 측 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)로 암호화된 데이터를 해독할 수 AWS Encryption SDK 없습니다. 이러한 라이브러리는이 AWS Encryption SDK 반환하는 [암호화된 메시지를](concepts.md#message) 해독할 수 없습니다. 

**AWS Key Management Service (AWS KMS)**  <a name="ESDK-KMS"></a>
는 [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) 및 [데이터 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) 사용하여 다중 리전 KMS 키를 포함한 데이터를 보호할 AWS Encryption SDK 수 있습니다. 예를 들어의 하나 이상의 AWS KMS keys 에서 데이터를 암호화 AWS Encryption SDK 하도록를 구성할 수 있습니다 AWS 계정. 그러나 AWS Encryption SDK 를 사용하여 해당 데이터를 복호화해야 합니다.  
는 AWS KMS [암호화 또는 재암호화](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) 작업이 반환하는 사이퍼텍스트를 해독할 수 AWS Encryption SDK 없습니다. [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) 마찬가지로 AWS KMS [복호](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)화 작업은이 AWS Encryption SDK 반환하는 [암호화된 메시지를](concepts.md#message) 복호화할 수 없습니다.  
는 [대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks)만 AWS Encryption SDK 지원합니다. [비대칭 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks)는 암호화 또는 AWS Encryption SDK로그인에 사용할 수 없습니다. AWS Encryption SDK 는 메시지에 서명하는 [알고리즘 제품군](supported-algorithms.md)에 대한 자체 ECDSA 서명 키를 생성합니다.

## 지원 및 유지 관리
<a name="support"></a>

 AWS Encryption SDK 는 버전 관리 및 수명 주기 단계를 포함하여 AWS SDK 및 도구가 사용하는 것과 동일한 [유지 관리 정책을](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html) 사용합니다. 프로그래밍 AWS Encryption SDK 언어에 사용할 수 있는 최신 버전의를 사용하고 새 버전이 릴리스되면 업그레이드하는 것이 [좋습니다](best-practices.md). 버전에 1.7.*x* 이전 AWS Encryption SDK 버전에서 버전 2.0.*x* 이상으로 업그레이드하는 등 중요한 변경이 필요한 경우 도움이 되는 [자세한 지침을](migration.md) 제공합니다.

의 각 프로그래밍 언어 구현 AWS Encryption SDK 은 별도의 오픈 소스 GitHub 리포지토리에서 개발됩니다. 각 버전의 수명 주기 및 지원 단계는 리포지토리마다 다를 수 있습니다. 예를 들어 특정 버전의 AWS Encryption SDK 는 한 프로그래밍 언어의 일반 가용성(전체 지원) 단계이지만 다른 프로그래밍 언어의 end-of-support 단계일 수 있습니다. 가능하면 완전히 지원되는 버전을 사용하고 더 이상 지원되지 않는 버전은 피하는 것이 좋습니다.

프로그래밍 언어에 맞는 AWS Encryption SDK 버전의 수명 주기 단계를 찾으려면 각 AWS Encryption SDK 리포지토리의 `SUPPORT_POLICY.rst` 파일을 참조하세요.
+ AWS Encryption SDK for C - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-c/blob/master/SUPPORT_POLICY.rst)
+ AWS Encryption SDK .NET용 - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-dafny/blob/mainline/SUPPORT_POLICY.rst)
+ AWS 암호화 CLI - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-cli/blob/master/SUPPORT_POLICY.rst)
+ AWS Encryption SDK for Java - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-java/blob/master/SUPPORT_POLICY.rst)
+ AWS Encryption SDK for JavaScript - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-javascript/blob/master/SUPPORT_POLICY.rst)
+ AWS Encryption SDK for Python - [SUPPORT\$1POLICY.rst](https://github.com/aws/aws-encryption-sdk-python/blob/master/SUPPORT_POLICY.rst)

자세한 내용은 SDK 및 도구 참조 안내서의 [의 버전 AWS Encryption SDK](about-versions.md) AWS SDKs. [AWS SDKs ](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html) 

## 자세히 알아보기
<a name="intro-see-also"></a>

 AWS Encryption SDK 및 클라이언트 측 암호화에 대한 자세한 내용은 다음 소스를 참조하십시오.
+ 이 SDK에서 사용되는 용어 및 개념에 대한 도움말은 [의 개념 AWS Encryption SDK](concepts.md) 섹션을 참조하세요.
+ 모범 사례 지침은 [모범 사례 AWS Encryption SDK](best-practices.md) 섹션을 참조하세요.
+ 이 SDK의 작동 방식에 대한 자세한 내용은 [SDK 작동 방식](how-it-works.md) 섹션을 참조하세요.
+ 에서 옵션을 구성하는 방법을 보여주는 예제는 섹션을 AWS Encryption SDK참조하세요[구성 AWS Encryption SDK](configure.md).
+ 자세한 기술 정보는 [AWS Encryption SDK 참조](reference.md) 섹션을 참조하세요.
+ 의 기술 사양은 GitHub의 [AWS Encryption SDK 사양을](https://github.com/awslabs/aws-encryption-sdk-specification/) AWS Encryption SDK참조하세요.
+ 사용에 대한 질문에 대한 답변을 보려면 [AWS Crypto 도구 토론 포럼](https://forums.aws.amazon.com/forum.jspa?forumID=302)을 AWS Encryption SDK읽고 게시하십시오.

다양한 프로그래밍 언어로를 구현하는 AWS Encryption SDK 방법에 대한 정보입니다.
+ **C**: GitHub의 , [AWS Encryption SDK for C](c-language.md) AWS Encryption SDK [C 설명서](https://aws.github.io/aws-encryption-sdk-c/html/) 및 [aws-encryption-sdk-c](https://github.com/aws/aws-encryption-sdk-c/) 리포지토리를 참조하세요.
+ **C\$1/.NET: [AWS Encryption SDK .NET용](dot-net.md) 문서와, GitHub에 있는 `aws-encryption-sdk` 리포지토리의 [aws-encryption-sdk-net](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/)** 디렉터리를 참조하세요.
+ **명령줄 인터페이스**: [AWS Encryption SDK 명령줄 인터페이스](crypto-cli.md), AWS 암호화 CLI[용 문서 읽기](https://aws-encryption-sdk-cli.readthedocs.io/en/latest/) 및 GitHub의 [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/) 리포지토리를 참조하세요.
+ **Java**: GitHub의 [AWS Encryption SDK for Java](java.md), AWS Encryption SDK [Javadoc](https://aws.github.io/aws-encryption-sdk-java/) 및 [aws-encryption-sdk-java](https://github.com/aws/aws-encryption-sdk-java/) 리포지토리를 참조하세요.

  **JavaScript**: GitHub의 [AWS Encryption SDK for JavaScript](javascript.md) 및 [aws-encryption-sdk-javascript](https://github.com/aws/aws-encryption-sdk-javascript/) 리포지토리를 참조하세요.
+ **Python**: GitHub의 [AWS Encryption SDK for Python](python.md), AWS Encryption SDK [Python 설명서](https://aws-encryption-sdk-python.readthedocs.io/en/latest/) 및 [aws-encryption-sdk-python](https://github.com/aws/aws-encryption-sdk-python/) 리포지토리를 참조하세요.

## 피드백 보내기
<a name="report-issues"></a>

우리는 여러분의 의견을 환영합니다. 질문이나 의견이 있거나 보고해야 할 문제가 있는 경우 다음 리소스를 사용하세요.
+ 에서 잠재적 보안 취약성을 발견한 경우 [AWS 보안에 알리](https://aws.amazon.com/security/vulnerability-reporting/) AWS Encryption SDK세요. 공개적으로 GitHub 문제를 작성하지 마세요.
+ 에 대한 피드백을 제공하려면 사용 중인 프로그래밍 언어에 대한 문제를 GitHub 리포지토리에 AWS Encryption SDK제출합니다.
+ 이 문서에 대한 피드백을 제공하려면 이 페이지의 **피드백** 링크를 사용하세요. GitHub에서 이 문서의 오픈 소스 리포지토리인 [aws-encryption-sdk-docs](https://github.com/awsdocs/aws-encryption-sdk-docs)에 문제를 제기하거나 기고할 수도 있습니다.