다음을 통해 공유


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: 비밀의 전체 URL
  • recoverableDays: 삭제 후 비밀을 복구할 수 있는 일 수
  • 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 이벤트 구독을 만들고 이벤트 트리거를 사용하여 호출해야 하는 순환 기능을 제공해야 합니다. 아래 자습서 중 하나를 사용하면 다음을 사용하는 리소스에 대한 비밀 순환을 자동화할 수 있습니다.

다음 단계