Skip to content

Commit aa420d7

Browse files
committed
fix: allow slash
Fixes #44
1 parent 37dee67 commit aa420d7

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

internal/assumecfg/validate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ User, Role or Role Session Names can be maximum 64 characters.
4646
Names of users, groups, roles, policies, instance profiles, and server certificates must be alphanumeric, including the following common characters: plus (+), equal (=), comma (,), period (.), at (@), underscore (_), and hyphen (-).
4747
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length
4848
*/
49-
var iamResourceNamePatternBase = `[a-zA-Z0-9_+=,.@-]{1,64}`
49+
var iamResourceNamePatternBase = `[a-zA-Z0-9_+=,./@-]{1,64}`
5050
var iamResourceNamePAtternFull = fmt.Sprintf("^%s$", iamResourceNamePatternBase)
5151
var iamResourceNamePattern = regexp.MustCompile(iamResourceNamePAtternFull)
5252

internal/assumecfg/validate_test.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,17 @@ func TestValidate(t *testing.T) {
5959
MfaSerial: "arn:aws:iam::111111111111:mfa/FrankSinatra",
6060
RoleArn: "invalid",
6161
},
62-
expected: errors.New("Profile \"frank@concerts\" contains invalid vegas_role_arn \"invalid\". Must satisty ^arn:aws:iam:\\d*:\\d{12}:role\\/[a-zA-Z0-9_+=,.@-]{1,64}$"),
62+
expected: errors.New("Profile \"frank@concerts\" contains invalid vegas_role_arn \"invalid\". Must satisty ^arn:aws:iam:\\d*:\\d{12}:role\\/[a-zA-Z0-9_+=,./@-]{1,64}$"),
63+
},
64+
{
65+
name: "vegas_role_arn may contain slash",
66+
input: AssumeCfg{
67+
ProfileName: "frank@concerts",
68+
SourceProfile: "default",
69+
MfaSerial: "arn:aws:iam::111111111111:mfa/FrankSinatra",
70+
RoleArn: "arn:aws:iam::111111111111:role/FrankSinatra/WithASlash",
71+
},
72+
expected: nil,
6373
},
6474
{
6575
name: "role_session_name invalid",
@@ -68,9 +78,9 @@ func TestValidate(t *testing.T) {
6878
SourceProfile: "default",
6979
MfaSerial: "arn:aws:iam::111111111111:mfa/FrankSinatra",
7080
RoleArn: "arn:aws:iam::222222222222:role/SingerRole",
71-
RoleSessionName: "invalid//",
81+
RoleSessionName: "invalid",
7282
},
73-
expected: errors.New("Profile \"frank@concerts\" contains invalid role_session_name \"invalid//\". Must satisfy ^[a-zA-Z0-9_+=,.@-]{1,64}$"),
83+
expected: errors.New("Profile \"frank@concerts\" contains invalid role_session_name \"invalid\". Must satisfy ^[a-zA-Z0-9_+=,./@-]{1,64}$"),
7484
},
7585
{
7686
name: "external_id invalid",

0 commit comments

Comments
 (0)