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.
Examples
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"
}
}
}