JavaScript로 Azure Key Vault 키 시작
이 문서에서는 JavaScript용 Azure Key Vault 키 클라이언트 라이브러리를 사용하여 Azure Key Vault에 연결하는 방법을 보여 줍니다. 연결되면 코드가 자격 증명 모음의 키에서 작동할 수 있습니다.
API 참조 | 패키지(npm) | 라이브러리 소스 코드 | 샘플 | 피드백 제공
필수 조건
- Azure 구독 - 체험 구독 만들기
- Azure Key Vault 인스턴스 코드에서 수행된 특정 작업에 필요한 권한을 포함하려면 Key Vault의 액세스 정책을 검토하세요.
- Node.js 버전 LTS
프로젝트 설정
명령 프롬프트를 열고 프로젝트 폴더로 변경합니다.
YOUR-DIRECTORY
를 폴더 이름으로 변경합니다.cd YOUR-DIRECTORY
디렉터리에 이미
package.json
파일이 없으면 프로젝트를 초기화하여 파일을 만듭니다.npm init -y
JavaScript용 Azure Key Vault 키 클라이언트 라이브러리 설치:
npm install @azure/keyvault-keys
Azure AD를 사용하여 암호 없는 연결을 사용하려면 JavaScript용 Microsoft Entra ID 클라이언트 라이브러리를 설치합니다.
npm install @azure/identity
액세스 권한 부여 및 Key Vault에 연결
Microsoft Entra ID는 연결 ID(관리 ID)를 관리하여 가장 안전한 연결을 제공합니다. 암호 없는 기능을 사용하면 코드에 저장된 키가 필요하지 않은 애플리케이션을 개발할 수 있습니다.
Azure Key Vault 키를 사용하도록 프로그래밍 방식으로 Azure에 인증하기 전에 환경을 설정해야 합니다.
애플리케이션 빌드
애플리케이션을 빌드할 때 코드는 다음과 같은 두 가지 유형의 리소스와 상호 작용합니다.
- KeyVaultKey이며 다음을 포함합니다.
- ID, 이름 및 값
- 허용된 작업
EC
,EC-HSM
,RSA
,RSA-HSM
,oct
,oct-HSM
과 같은 형식- KeyProperties로서의 속성
- KeyProperties이며 키의 메타데이터(예: 이름, 버전, 태그, 만료 데이터 및 사용 여부)를 포함합니다.
KeyVaultKey 값이 필요한 경우 KeyVaultKey를 반환하는 메서드를 사용합니다.
개체 모델
JavaScript용 Azure Key Vault 키 클라이언트 라이브러리에는 다음 클라이언트가 포함됩니다.
- KeyClient: KeyClient 개체는 SDK의 최상위 개체입니다. 이 클라이언트를 사용하면 키 만들기, 회전, 삭제 및 나열과 같은 키 관리 작업을 수행할 수 있습니다.
- CryptographyClient를 사용하면 키를 암호화, 암호 해독, 서명, 확인, 래핑 및 래핑 해제할 수 있습니다.
KeyClient 개체 만들기
로컬 환경 및 Key Vault 권한 부여가 설정되면 @azure/identity 및 @azure/keyvault-keys 패키지를 포함하는 JavaScript 파일을 만듭니다. DefaultAzureCredential과 같은 자격 증명을 만들어 자격 증명 모음에 대한 암호 없는 연결을 구현합니다. 해당 자격 증명을 사용하여 KeyClient 개체로 인증합니다.
// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';
import { KeyClient } from '@azure/keyvault-keys';
// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential();
const client = new KeyClient(
`https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
credential
);
// Get key
const key = await client.getKey("MyKeyName");
CryptographyClient 개체 만들기
CryptographyClient 개체는 키를 사용하여 암호화, 암호 해독, 서명 및 확인, 래핑 및 래핑 해제와 같은 작업을 수행하는 SDK의 작업 개체입니다.
키 이름과 함께 KeyClient의 ID 자격 증명을 사용하여 작업을 수행할 CryptographyClient를 만듭니다.
// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';
import {
CryptographyClient,
KeyClient,
KnownEncryptionAlgorithms,
RsaEncryptParameters
} from '@azure/keyvault-keys';
// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential();
const client = new KeyClient(
`https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
credential
);
// Get key
const key = await client.getKey("MyKeyName");
if (key?.name) {
// get encryption client
const encryptClient = new CryptographyClient(key, credential);
// encrypt data
const encryptParams = {
algorithm: KnownEncryptionAlgorithms.RSAOaep256,
plaintext: Buffer.from("Hello world!")
}
const encryptResult = await encryptClient.encrypt(encryptParams);
}