Default context for Verified Access trust data - AWS Verified Access

Default context for Verified Access trust data

AWS Verified Access includes some elements about the current request by default in all Cedar evaluations regardless of your configured trust providers. You can write a policy that evaluates against the data if you choose.

The following are examples of the data that is included in the evaluation.

HTTP request

When a policy is evaluated, Verified Access includes data about the current HTTP request in the Cedar context under the context.http_request key.

{ "title": "HTTP Request data included by Verified Access", "type": "object", "properties": { "http_method": { "type": "string", "description": "The HTTP method", "example": "GET" }, "hostname": { "type": "string", "description": "The host subcomponent of the authority component of the URI", "example": "example.com" }, "path": { "type": "string", "description": "The path component of the URI", "example": "app/images" }, "query": { "type": "string", "description": "The query component of the URI", "example": "value1=1&value2=2" }, "x_forwarded_for": { "type": "string", "description": "The value of the X-Forwarded-For request header", "example": "17.7.7.1" }, "port": { "type": "integer", "description": "The endpoint port", "example": 443 }, "user_agent": { "type": "string", "description": "The value of the User-Agent request header", "example": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" }, "client_ip": { "type": "string", "description": "The IP address connecting to the endpoint", "example": "15.248.6.6" } } }
Policy example

The following is an example Cedar policy that uses the HTTP request data.

forbid(principal, action, resource) when { context.http_request.http_method == "POST" && !(context.identity.roles.contains("Administrator")) };

TCP flow

When a policy is evaluated, Verified Access includes data about the current TCP flow in the Cedar context under the context.tcp_flow key.

{ "title": "TCP flow data included by Verified Access", "type": "object", "properties": { "destination_ip": { "type": "string", "description": "The IP address of the target", "example": "192.100.1.3" }, "destination_port": { "type": "string", "description": "The target port", "example": 22 }, "client_ip": { "type": "string", "description": "The IP address connecting to the endpoint", "example": "172.154.16.9" } } }