Skip to content

Commit

Permalink
Merge pull request #1049 from Kouzukii/master
Browse files Browse the repository at this point in the history
Respect aws_profile from Keygroup Config
  • Loading branch information
hiddeco authored Oct 13, 2023
2 parents b6d3c97 + 6887ebf commit c47a29b
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 3 deletions.
2 changes: 2 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ like so:
context:
foo: bar
- arn: arn2
aws_profile: myprofile
# Second key group
- pgp:
- fingerprint3
Expand Down Expand Up @@ -818,6 +819,7 @@ with ``shamir_threshold``:
context:
foo: bar
- arn: arn2
aws_profile: myprofile
# Second key group
- pgp:
- fingerprint3
Expand Down
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ func getKeyGroupsFromCreationRule(cRule *creationRule, kmsEncryptionContext map[
keyGroup = append(keyGroup, pgp.NewMasterKeyFromFingerprint(k))
}
for _, k := range group.KMS {
keyGroup = append(keyGroup, kms.NewMasterKey(k.Arn, k.Role, k.Context))
keyGroup = append(keyGroup, kms.NewMasterKeyWithProfile(k.Arn, k.Role, k.Context, k.AwsProfile))
}
for _, k := range group.GCPKMS {
keyGroup = append(keyGroup, gcpkms.NewMasterKeyFromResourceID(k.ResourceID))
Expand Down
6 changes: 4 additions & 2 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ creation_rules:
key_groups:
- kms:
- arn: foo
aws_profile: bar
pgp:
- bar
gcp_kms:
Expand All @@ -105,6 +106,7 @@ creation_rules:
- 'https://foo.vault:8200/v1/foo/keys/foo-key'
- kms:
- arn: baz
aws_profile: foo
pgp:
- qux
gcp_kms:
Expand Down Expand Up @@ -287,14 +289,14 @@ func TestLoadConfigFileWithGroups(t *testing.T) {
PathRegex: "",
KeyGroups: []keyGroup{
{
KMS: []kmsKey{{Arn: "foo"}},
KMS: []kmsKey{{Arn: "foo", AwsProfile: "bar"}},
PGP: []string{"bar"},
GCPKMS: []gcpKmsKey{{ResourceID: "foo"}},
AzureKV: []azureKVKey{{VaultURL: "https://foo.vault.azure.net", Key: "foo-key", Version: "fooversion"}},
Vault: []string{"https://foo.vault:8200/v1/foo/keys/foo-key"},
},
{
KMS: []kmsKey{{Arn: "baz"}},
KMS: []kmsKey{{Arn: "baz", AwsProfile: "foo"}},
PGP: []string{"qux"},
GCPKMS: []gcpKmsKey{
{ResourceID: "bar"},
Expand Down
8 changes: 8 additions & 0 deletions kms/keysource.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,14 @@ func NewMasterKey(arn string, role string, context map[string]*string) *MasterKe
}
}

// NewMasterKeyWithProfile creates a new MasterKey from an ARN, role, context
// and awsProfile, setting the creation date to the current date.
func NewMasterKeyWithProfile(arn string, role string, context map[string]*string, awsProfile string) *MasterKey {
k := NewMasterKey(arn, role, context)
k.AwsProfile = awsProfile
return k
}

// NewMasterKeyFromArn takes an ARN string and returns a new MasterKey for that
// ARN.
func NewMasterKeyFromArn(arn string, context map[string]*string, awsProfile string) *MasterKey {
Expand Down
16 changes: 16 additions & 0 deletions kms/keysource_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,22 @@ func TestNewMasterKey(t *testing.T) {
assert.NotNil(t, key.CreationDate)
}

func TestNewMasterKeyWithProfile(t *testing.T) {
var (
dummyRole = "a-role"
dummyEncryptionContext = map[string]*string{
"foo": aws.String("bar"),
}
dummyProfile = "a-profile"
)
key := NewMasterKeyWithProfile(dummyARN, dummyRole, dummyEncryptionContext, dummyProfile)
assert.Equal(t, dummyARN, key.Arn)
assert.Equal(t, dummyRole, key.Role)
assert.Equal(t, dummyEncryptionContext, key.EncryptionContext)
assert.Equal(t, dummyProfile, key.AwsProfile)
assert.NotNil(t, key.CreationDate)
}

func TestNewMasterKeyFromArn(t *testing.T) {
t.Run("arn", func(t *testing.T) {
var (
Expand Down

0 comments on commit c47a29b

Please sign in to comment.