miasma-aws 0.3.20 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/miasma-aws/version.rb +1 -1
- data/lib/miasma/contrib/aws.rb +32 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b34565420604144ef097dabea4e434e2f413af448c3cd5041abeb6a3aab3f3
|
4
|
+
data.tar.gz: e2de941c5c78209ba8ee8c737f5c6b43113ce2251818e53e610bd2c688d4ed78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9eba4d31741db7cd4efa9277ab0b8c831bcf6081f56bd591e943f694084d26ab5adfbb8e130c755350c2dd052a9f059e46f8d32c75dfd26ac56432edf6509168
|
7
|
+
data.tar.gz: f89d2ca230d03b1bbc0745bab06e2dffc23828e785926e75bd604e1784777c8c831feef8bf03077852e17383ebff9b7680c8245f6f26ea3da56b0bd04125cdb5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# v0.3.22
|
2
|
+
* [fix] Resolve configuration loading issues (#58)
|
3
|
+
* [enhancement] Update token refresh to within 10m of expiry (#59)
|
4
|
+
* [enhancement] Unify token expiry checks (#56)
|
5
|
+
|
1
6
|
# v0.3.20
|
2
7
|
* [fix] Properly calculate token expiry (#52)
|
3
8
|
* [enhancement] Generate custom exception when key is not provided to signer (#53)
|
data/lib/miasma-aws/version.rb
CHANGED
data/lib/miasma/contrib/aws.rb
CHANGED
@@ -395,6 +395,8 @@ module Miasma
|
|
395
395
|
klass.const_set(
|
396
396
|
:ECS_TASK_PROFILE_PATH, ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
|
397
397
|
)
|
398
|
+
# Reload sts tokens if expiry is within the next 10 minutes
|
399
|
+
klass.const_set(:STS_TOKEN_EXPIRY_BUFFER, 600)
|
398
400
|
end
|
399
401
|
|
400
402
|
# Build new API for specified type using current provider / creds
|
@@ -421,9 +423,14 @@ module Miasma
|
|
421
423
|
# @param creds [Hash]
|
422
424
|
# @return [TrueClass]
|
423
425
|
def custom_setup(creds)
|
424
|
-
cred_file = load_aws_file(
|
425
|
-
|
426
|
-
|
426
|
+
cred_file = load_aws_file(creds.fetch(
|
427
|
+
:aws_credentials_file, aws_credentials_file
|
428
|
+
))
|
429
|
+
config_file = load_aws_file(creds.fetch(
|
430
|
+
:aws_config_file, aws_config_file
|
431
|
+
))
|
432
|
+
# Load any configuration available from the config file
|
433
|
+
profile = creds.fetch(:aws_profile_name, aws_profile_name)
|
427
434
|
profile_list = [profile].compact
|
428
435
|
new_config_creds = Smash.new
|
429
436
|
while profile
|
@@ -436,7 +443,7 @@ module Miasma
|
|
436
443
|
new_config_creds = config_file.fetch(:default, Smash.new).merge(
|
437
444
|
new_config_creds
|
438
445
|
)
|
439
|
-
|
446
|
+
# Load any configuration available from the creds file
|
440
447
|
new_creds = Smash.new
|
441
448
|
profile_list.each do |profile|
|
442
449
|
new_creds = cred_file.fetch(profile, Smash.new).merge(
|
@@ -448,15 +455,17 @@ module Miasma
|
|
448
455
|
new_creds
|
449
456
|
)
|
450
457
|
new_creds = new_creds.merge(new_config_creds)
|
451
|
-
#
|
458
|
+
# Provided credentials override any config file or creds
|
459
|
+
# file configuration so set them into new creds if available
|
460
|
+
new_creds.merge!(creds)
|
461
|
+
# Replace creds hash with updated hash so it is loaded with
|
462
|
+
# updated values
|
452
463
|
creds.replace(new_creds)
|
453
464
|
if creds[:aws_iam_instance_profile]
|
454
465
|
self.class.const_get(:ECS_TASK_PROFILE_PATH).nil? ?
|
455
466
|
load_instance_credentials!(creds) :
|
456
467
|
load_ecs_credentials!(creds)
|
457
468
|
end
|
458
|
-
# Set underlying attributes
|
459
|
-
data.replace(creds)
|
460
469
|
true
|
461
470
|
end
|
462
471
|
|
@@ -790,24 +799,27 @@ module Miasma
|
|
790
799
|
# @return [TrueClass, FalseClass]
|
791
800
|
# @note update check only applied if assuming role
|
792
801
|
def sts_assume_role_update_required?(args = {})
|
793
|
-
|
794
|
-
|
795
|
-
expiry.nil? || expiry - 15 <= Time.now
|
796
|
-
else
|
797
|
-
false
|
798
|
-
end
|
802
|
+
sts_attribute_update_required?(:aws_sts_role_arn,
|
803
|
+
:aws_sts_token_expires, args)
|
799
804
|
end
|
800
805
|
|
801
806
|
# @return [TrueClass, FalseClass]
|
802
807
|
# @note update check only applied if assuming role
|
803
808
|
def sts_mfa_session_update_required?(args = {})
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
809
|
+
sts_attribute_update_required?(:aws_sts_session_token_code,
|
810
|
+
:aws_sts_session_token_expires, args)
|
811
|
+
end
|
812
|
+
|
813
|
+
# Check if STS attribute requires update
|
814
|
+
#
|
815
|
+
# @param key [String, Symbol] token key
|
816
|
+
# @param expiry_key [Time] expiry of token
|
817
|
+
# @param args [Hash] overrides to check instead of instance values
|
818
|
+
# @return [TrueClass, FalseClass]
|
819
|
+
def sts_attribute_update_required?(key, expiry_key, args = {})
|
820
|
+
if args.fetch(key, attributes[key])
|
821
|
+
expiry = args.fetch(expiry_key, attributes[expiry_key])
|
822
|
+
expiry.nil? || expiry - self.class.const_get(:STS_TOKEN_EXPIRY_BUFFER) <= Time.now
|
811
823
|
else
|
812
824
|
false
|
813
825
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miasma-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: miasma
|