Skip to content

Commit 32d1eaf

Browse files
authored
Minor enhancement to allow AWS profile to be specified (#203)
1 parent 3701656 commit 32d1eaf

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

schemaregistry/rules/encryption/awskms/aws-driver.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import {KmsClient, KmsDriver, registerKmsDriver} from "../kms-registry";
22
import {AwsKmsClient} from "./aws-client";
33
import {AwsCredentialIdentity, AwsCredentialIdentityProvider} from "@smithy/types";
4-
import {fromTemporaryCredentials} from '@aws-sdk/credential-providers'
4+
import {fromIni, fromTemporaryCredentials} from '@aws-sdk/credential-providers'
55

66
export class AwsKmsDriver implements KmsDriver {
77

88
static PREFIX = 'aws-kms://'
99
static ACCESS_KEY_ID = 'access.key.id'
1010
static SECRET_ACCESS_KEY = 'secret.access.key'
11+
static PROFILE = 'profile'
1112
static ROLE_ARN = 'role.arn'
1213
static ROLE_SESSION_NAME = 'role.session.name'
1314
static ROLE_EXTERNAL_ID = 'role.external.id'
@@ -27,6 +28,7 @@ export class AwsKmsDriver implements KmsDriver {
2728
const uriPrefix = keyUrl != null ? keyUrl : AwsKmsDriver.PREFIX
2829
const key = config.get(AwsKmsDriver.ACCESS_KEY_ID)
2930
const secret = config.get(AwsKmsDriver.SECRET_ACCESS_KEY)
31+
const profile = config.get(AwsKmsDriver.PROFILE)
3032
let roleArn = config.get(AwsKmsDriver.ROLE_ARN)
3133
if (roleArn == null) {
3234
roleArn = process.env['AWS_ROLE_ARN']
@@ -42,6 +44,8 @@ export class AwsKmsDriver implements KmsDriver {
4244
let creds: AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined
4345
if (key != null && secret != null) {
4446
creds = {accessKeyId: key, secretAccessKey: secret}
47+
} else if (profile != null) {
48+
creds = fromIni({profile})
4549
}
4650
if (roleArn != null) {
4751
let keyId = uriPrefix.substring(AwsKmsDriver.PREFIX.length)

0 commit comments

Comments
 (0)