Skip to content

Commit 3b58f82

Browse files
author
AWS
committed
Elastic Load Balancing Update: This release expands ALB Authentication to support JWT verification and adds support for a new JWT validation action in listener rule.
1 parent 23d7844 commit 3b58f82

File tree

2 files changed

+85
-9
lines changed

2 files changed

+85
-9
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Elastic Load Balancing",
4+
"contributor": "",
5+
"description": "This release expands ALB Authentication to support JWT verification and adds support for a new JWT validation action in listener rule."
6+
}

services/elasticloadbalancingv2/src/main/resources/codegen-resources/service-2.json

Lines changed: 79 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@
453453
{"shape":"RuleNotFoundException"},
454454
{"shape":"UnsupportedProtocolException"}
455455
],
456-
"documentation":"<p>Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.</p>"
456+
"documentation":"<p>Describes the specified rules or the rules for the specified listener. You must specify either a listener or rules.</p>"
457457
},
458458
"DescribeSSLPolicies":{
459459
"name":"DescribeSSLPolicies",
@@ -998,7 +998,7 @@
998998
},
999999
"TargetGroupArn":{
10001000
"shape":"TargetGroupArn",
1001-
"documentation":"<p>The Amazon Resource Name (ARN) of the target group. Specify only when <code>Type</code> is <code>forward</code> and you want to route to a single target group. To route to one or more target groups, use <code>ForwardConfig</code> instead.</p>"
1001+
"documentation":"<p>The Amazon Resource Name (ARN) of the target group. Specify only when <code>Type</code> is <code>forward</code> and you want to route to a single target group. To route to multiple target groups, you must use <code>ForwardConfig</code> instead.</p>"
10021002
},
10031003
"AuthenticateOidcConfig":{
10041004
"shape":"AuthenticateOidcActionConfig",
@@ -1022,10 +1022,14 @@
10221022
},
10231023
"ForwardConfig":{
10241024
"shape":"ForwardActionConfig",
1025-
"documentation":"<p>Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when <code>Type</code> is <code>forward</code>. If you specify both <code>ForwardConfig</code> and <code>TargetGroupArn</code>, you can specify only one target group using <code>ForwardConfig</code> and it must be the same target group specified in <code>TargetGroupArn</code>.</p>"
1025+
"documentation":"<p>Information for creating an action that distributes requests among multiple target groups. Specify only when <code>Type</code> is <code>forward</code>.</p> <p>If you specify both <code>ForwardConfig</code> and <code>TargetGroupArn</code>, you can specify only one target group using <code>ForwardConfig</code> and it must be the same target group specified in <code>TargetGroupArn</code>.</p>"
1026+
},
1027+
"JwtValidationConfig":{
1028+
"shape":"JwtValidationActionConfig",
1029+
"documentation":"<p>[HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when <code>Type</code> is <code>jwt-validation</code>.</p>"
10261030
}
10271031
},
1028-
"documentation":"<p>Information about an action.</p> <p>Each rule must include exactly one of the following types of actions: <code>forward</code>, <code>fixed-response</code>, or <code>redirect</code>, and it must be the last action to be performed.</p>"
1032+
"documentation":"<p>Information about an action.</p> <p>Each rule must include exactly one of the following routing actions: <code>forward</code>, <code>fixed-response</code>, or <code>redirect</code>, and it must be the last action to be performed.</p> <p>Optionally, a rule for an HTTPS listener can also include one of the following user authentication actions: <code>authenticate-oidc</code>, <code>authenticate-cognito</code>, or <code>jwt-validation</code>.</p>"
10291033
},
10301034
"ActionOrder":{
10311035
"type":"integer",
@@ -1039,7 +1043,8 @@
10391043
"authenticate-oidc",
10401044
"authenticate-cognito",
10411045
"redirect",
1042-
"fixed-response"
1046+
"fixed-response",
1047+
"jwt-validation"
10431048
]
10441049
},
10451050
"Actions":{
@@ -2512,7 +2517,7 @@
25122517
"members":{
25132518
"TargetGroups":{
25142519
"shape":"TargetGroupList",
2515-
"documentation":"<p>The target groups. For Network Load Balancers, you can specify a single target group.</p>"
2520+
"documentation":"<p>The target groups.</p>"
25162521
},
25172522
"TargetGroupStickinessConfig":{
25182523
"shape":"TargetGroupStickinessConfig",
@@ -2803,6 +2808,71 @@
28032808
"documentation":"<p>An IPAM pool is a collection of IP address CIDRs. IPAM pools enable you to organize your IP addresses according to your routing and security needs.</p>"
28042809
},
28052810
"IsDefault":{"type":"boolean"},
2811+
"JwtValidationActionAdditionalClaim":{
2812+
"type":"structure",
2813+
"required":[
2814+
"Format",
2815+
"Name",
2816+
"Values"
2817+
],
2818+
"members":{
2819+
"Format":{
2820+
"shape":"JwtValidationActionAdditionalClaimFormatEnum",
2821+
"documentation":"<p>The format of the claim value.</p>"
2822+
},
2823+
"Name":{
2824+
"shape":"JwtValidationActionAdditionalClaimName",
2825+
"documentation":"<p>The name of the claim. You can't specify <code>exp</code>, <code>iss</code>, <code>nbf</code>, or <code>iat</code> because we validate them by default.</p>"
2826+
},
2827+
"Values":{
2828+
"shape":"JwtValidationActionAdditionalClaimValues",
2829+
"documentation":"<p>The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is <code>space-separated-values</code>, the values can't include spaces.</p>"
2830+
}
2831+
},
2832+
"documentation":"<p>Information about an additional claim to validate.</p>"
2833+
},
2834+
"JwtValidationActionAdditionalClaimFormatEnum":{
2835+
"type":"string",
2836+
"enum":[
2837+
"single-string",
2838+
"string-array",
2839+
"space-separated-values"
2840+
]
2841+
},
2842+
"JwtValidationActionAdditionalClaimName":{"type":"string"},
2843+
"JwtValidationActionAdditionalClaimValue":{"type":"string"},
2844+
"JwtValidationActionAdditionalClaimValues":{
2845+
"type":"list",
2846+
"member":{"shape":"JwtValidationActionAdditionalClaimValue"}
2847+
},
2848+
"JwtValidationActionAdditionalClaims":{
2849+
"type":"list",
2850+
"member":{"shape":"JwtValidationActionAdditionalClaim"}
2851+
},
2852+
"JwtValidationActionConfig":{
2853+
"type":"structure",
2854+
"required":[
2855+
"JwksEndpoint",
2856+
"Issuer"
2857+
],
2858+
"members":{
2859+
"JwksEndpoint":{
2860+
"shape":"JwtValidationActionJwksEndpoint",
2861+
"documentation":"<p>The JSON Web Key Set (JWKS) endpoint. This endpoint contains JSON Web Keys (JWK) that are used to validate signatures from the provider.</p> <p>This must be a full URL, including the HTTPS protocol, the domain, and the path. The maximum length is 256 characters.</p>"
2862+
},
2863+
"Issuer":{
2864+
"shape":"JwtValidationActionIssuer",
2865+
"documentation":"<p>The issuer of the JWT. The maximum length is 256 characters.</p>"
2866+
},
2867+
"AdditionalClaims":{
2868+
"shape":"JwtValidationActionAdditionalClaims",
2869+
"documentation":"<p>Additional claims to validate. The maximum size of the list is 10. We validate the <code>exp</code>, <code>iss</code>, <code>nbf</code>, and <code>iat</code> claims by default.</p>"
2870+
}
2871+
},
2872+
"documentation":"<p>Information about a JSON Web Token (JWT) validation action.</p>"
2873+
},
2874+
"JwtValidationActionIssuer":{"type":"string"},
2875+
"JwtValidationActionJwksEndpoint":{"type":"string"},
28062876
"LastModifiedTime":{"type":"timestamp"},
28072877
"Limit":{
28082878
"type":"structure",
@@ -4073,7 +4143,7 @@
40734143
},
40744144
"EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic":{
40754145
"shape":"EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum",
4076-
"documentation":"<p>Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. The default is <code>on</code>.</p>"
4146+
"documentation":"<p>Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. Applies only if the load balancer has an associated security group. The default is <code>on</code>.</p>"
40774147
}
40784148
}
40794149
},
@@ -4482,7 +4552,7 @@
44824552
},
44834553
"DurationSeconds":{
44844554
"shape":"TargetGroupStickinessDurationSeconds",
4485-
"documentation":"<p>The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.</p>"
4555+
"documentation":"<p>[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.</p>"
44864556
}
44874557
},
44884558
"documentation":"<p>Information about the target group stickiness for a rule.</p>"
@@ -4517,7 +4587,7 @@
45174587
},
45184588
"Reason":{
45194589
"shape":"TargetHealthReasonEnum",
4520-
"documentation":"<p>The reason code.</p> <p>If the target state is <code>healthy</code>, a reason code is not provided.</p> <p>If the target state is <code>initial</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Elb.RegistrationInProgress</code> - The target is in the process of being registered with the load balancer.</p> </li> <li> <p> <code>Elb.InitialHealthChecking</code> - The load balancer is still sending the target the minimum number of health checks required to determine its health status.</p> </li> </ul> <p>If the target state is <code>unhealthy</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Target.ResponseCodeMismatch</code> - The health checks did not return an expected HTTP code. Applies only to Application Load Balancers and Gateway Load Balancers.</p> </li> <li> <p> <code>Target.Timeout</code> - The health check requests timed out. Applies only to Application Load Balancers and Gateway Load Balancers.</p> </li> <li> <p> <code>Target.FailedHealthChecks</code> - The load balancer received an error while establishing a connection to the target or the target response was malformed.</p> </li> <li> <p> <code>Elb.InternalError</code> - The health checks failed due to an internal error. Applies only to Application Load Balancers.</p> </li> </ul> <p>If the target state is <code>unused</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Target.NotRegistered</code> - The target is not registered with the target group.</p> </li> <li> <p> <code>Target.NotInUse</code> - The target group is not used by any load balancer or the target is in an Availability Zone that is not enabled for its load balancer.</p> </li> <li> <p> <code>Target.InvalidState</code> - The target is in the stopped or terminated state.</p> </li> <li> <p> <code>Target.IpUnusable</code> - The target IP address is reserved for use by a load balancer.</p> </li> </ul> <p>If the target state is <code>draining</code>, the reason code can be the following value:</p> <ul> <li> <p> <code>Target.DeregistrationInProgress</code> - The target is in the process of being deregistered and the deregistration delay period has not expired.</p> </li> </ul> <p>If the target state is <code>unavailable</code>, the reason code can be the following value:</p> <ul> <li> <p> <code>Target.HealthCheckDisabled</code> - Health checks are disabled for the target group. Applies only to Application Load Balancers.</p> </li> <li> <p> <code>Elb.InternalError</code> - Target health is unavailable due to an internal error. Applies only to Network Load Balancers.</p> </li> </ul>"
4590+
"documentation":"<p>The reason code.</p> <p>If the target state is <code>healthy</code>, a reason code is not provided.</p> <p>If the target state is <code>initial</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Elb.RegistrationInProgress</code> - The target is in the process of being registered with the load balancer.</p> </li> <li> <p> <code>Elb.InitialHealthChecking</code> - The load balancer is still sending the target the minimum number of health checks required to determine its health status.</p> </li> </ul> <p>If the target state is <code>unhealthy</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Target.ResponseCodeMismatch</code> - The health checks did not return an expected HTTP code.</p> </li> <li> <p> <code>Target.Timeout</code> - The health check requests timed out.</p> </li> <li> <p> <code>Target.FailedHealthChecks</code> - The load balancer received an error while establishing a connection to the target or the target response was malformed.</p> </li> <li> <p> <code>Elb.InternalError</code> - The health checks failed due to an internal error.</p> </li> </ul> <p>If the target state is <code>unused</code>, the reason code can be one of the following values:</p> <ul> <li> <p> <code>Target.NotRegistered</code> - The target is not registered with the target group.</p> </li> <li> <p> <code>Target.NotInUse</code> - The target group is not used by any load balancer or the target is in an Availability Zone that is not enabled for its load balancer.</p> </li> <li> <p> <code>Target.InvalidState</code> - The target is in the stopped or terminated state.</p> </li> <li> <p> <code>Target.IpUnusable</code> - The target IP address is reserved for use by a load balancer.</p> </li> </ul> <p>If the target state is <code>draining</code>, the reason code can be the following value:</p> <ul> <li> <p> <code>Target.DeregistrationInProgress</code> - The target is in the process of being deregistered and the deregistration delay period has not expired.</p> </li> </ul> <p>If the target state is <code>unavailable</code>, the reason code can be the following value:</p> <ul> <li> <p> <code>Target.HealthCheckDisabled</code> - Health checks are disabled for the target group.</p> </li> <li> <p> <code>Elb.InternalError</code> - Target health is unavailable due to an internal error.</p> </li> </ul>"
45214591
},
45224592
"Description":{
45234593
"shape":"Description",

0 commit comments

Comments
 (0)