1
1
import { KmsClient , KmsDriver , registerKmsDriver } from "../kms-registry" ;
2
2
import { AwsKmsClient } from "./aws-client" ;
3
3
import { AwsCredentialIdentity , AwsCredentialIdentityProvider } from "@smithy/types" ;
4
- import { fromTemporaryCredentials } from '@aws-sdk/credential-providers'
4
+ import { fromIni , fromTemporaryCredentials } from '@aws-sdk/credential-providers'
5
5
6
6
export class AwsKmsDriver implements KmsDriver {
7
7
8
8
static PREFIX = 'aws-kms://'
9
9
static ACCESS_KEY_ID = 'access.key.id'
10
10
static SECRET_ACCESS_KEY = 'secret.access.key'
11
+ static PROFILE = 'profile'
11
12
static ROLE_ARN = 'role.arn'
12
13
static ROLE_SESSION_NAME = 'role.session.name'
13
14
static ROLE_EXTERNAL_ID = 'role.external.id'
@@ -27,6 +28,7 @@ export class AwsKmsDriver implements KmsDriver {
27
28
const uriPrefix = keyUrl != null ? keyUrl : AwsKmsDriver . PREFIX
28
29
const key = config . get ( AwsKmsDriver . ACCESS_KEY_ID )
29
30
const secret = config . get ( AwsKmsDriver . SECRET_ACCESS_KEY )
31
+ const profile = config . get ( AwsKmsDriver . PROFILE )
30
32
let roleArn = config . get ( AwsKmsDriver . ROLE_ARN )
31
33
if ( roleArn == null ) {
32
34
roleArn = process . env [ 'AWS_ROLE_ARN' ]
@@ -42,6 +44,8 @@ export class AwsKmsDriver implements KmsDriver {
42
44
let creds : AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined
43
45
if ( key != null && secret != null ) {
44
46
creds = { accessKeyId : key , secretAccessKey : secret }
47
+ } else if ( profile != null ) {
48
+ creds = fromIni ( { profile} )
45
49
}
46
50
if ( roleArn != null ) {
47
51
let keyId = uriPrefix . substring ( AwsKmsDriver . PREFIX . length )
0 commit comments