JavaScript를 사용하여 Azure Key Vault에서 비밀 설정, 업데이트 및 순환
적절한 프로그래매틱 인증 자격 증명을 사용하여 SecretClient를 만든 다음, 클라이언트를 사용하여 Azure Key Vault에서 비밀을 설정, 업데이트 및 순환합니다.
비밀 설정
Azure Key Vault에서 비밀을 설정하려면 SecretClient 클래스의 setSecret 메서드를 사용합니다.
비밀 값 형식은 문자열입니다. 초기 값은 JSON 또는 BASE64로 인코딩된 데이터와 같은 문자열로 직렬화할 수 있는 값이면 됩니다. Key Vault에서 비밀을 설정하기 전에 직렬화를 제공하고 Key Vault에서 비밀을 가져온 후 역직렬화를 제공해야 합니다.
const name = 'mySecret';
const value = 'mySecretValue'; // or JSON.stringify({'key':'value'})
const { name, value, properties } = await client.setSecret(
secretName,
secretValue
);
비밀을 만들 때 KeyVaultSecret 응답에는 다음과 같은 비밀의 메타데이터를 포함하는 SecretProperties 개체가 포함됩니다.
createdOn
: 비밀을 만든 UTC 날짜 및 시간id
: 비밀의 전체 URLrecoverableDays
: 삭제 후 비밀을 복구할 수 있는 일 수recoveryLevel
: 값에는 'Purgeable', 'Recoverable+Purgeable', 'Recoverable', 'Recoverable+ProtectedSubscription'이 포함됩니다.updatedOn
: 비밀이 마지막으로 업데이트된 UTC 날짜 및 시간version
: 비밀의 버전
속성을 사용하여 비밀 설정
SecretClient 클래스의 setSecret 메서드를 SetSecretOptions와 함께 사용하여 비밀과 함께 제공되는 다음과 같은 선택적 매개 변수를 포함합니다.
contentType
: 비밀의 콘텐츠 형식에 대한 표현 및 이해입니다. 사용 제안에는 네이티브 형식, 사용자 지정 TypeScript 형식 또는 MIME 형식이 포함됩니다. 이 값은 Azure Portal에 표시됩니다.enabled
: 기본값은 true입니다.expiresOn
: 비밀이 만료되는 UTC 날짜 및 시간입니다.notBefore
: 비밀을 사용할 수 없는 UTC 날짜 및 시간입니다.tags
: 비밀과 연결하는 데 사용할 수 있는 사용자 지정 이름/값 쌍입니다.
const name = 'mySecret';
const value = JSON.stringify({
'mykey':'myvalue',
'myEndpoint':'https://myendpoint.com'
});
const secretOptions = {
// example options
contentType: 'application/json',
tags: {
project: 'test-cluster',
owner: 'jmclane',
team: 'devops'
}
};
const { name, value, properties } = await client.setSecret(
secretName,
secretValue,
secretOptions
);
이 메서드는 KeyVaultSecret 개체를 반환합니다.
비밀 값 업데이트
비밀 값을 업데이트하려면 이전 섹션에 표시된 setSecret 메서드를 사용합니다. 새 값을 문자열로 전달하고 현재 버전의 비밀에서 유지하려는 모든 속성을 전달해야 합니다. setSecret에 대한 추가 호출에 설정되지 않은 현재 속성은 모두 손실됩니다.
그러면 새 버전의 비밀이 생성됩니다. 반환된 SecretProperties 개체에는 새 버전 ID가 포함됩니다.
비밀 속성 업데이트
비밀의 속성을 업데이트하려면 SecretClient 클래스의 updateSecretProperties 메서드를 사용합니다. 요청에 지정하지 않은 속성은 변경되지 않은 상태로 유지됩니다. 비밀 자체의 값은 변경할 수 없습니다. 이 작업에는 비밀/설정 권한이 필요합니다.
const name = 'mySecret';
// Update tags
const updatedTagName = 'existingTag';
const updatedTagValue = secret.properties.version.tags[updatedTagName] + ' additional information';
// Use version from existing secret
const version = secret.properties.version;
// Options to update
const secretOptions = {
tags: {
'newTag': 'newTagValue', // Set new tag
'updatedTag': updatedTagValue // Update existing tag
},
enabled: false
}
// Update secret's properties - doesn't change secret name or value
const properties = await client.updateSecretProperties(
secretName,
secretVersion,
secretOptions,
);
이 메서드는 SecretProperties 개체를 반환합니다.
비밀 순환
비밀을 순환하려면 SecretNearExpiry 이벤트에 대한 Event Grid 이벤트 구독을 만들고 이벤트 트리거를 사용하여 호출해야 하는 순환 기능을 제공해야 합니다. 아래 자습서 중 하나를 사용하면 다음을 사용하는 리소스에 대한 비밀 순환을 자동화할 수 있습니다.