VPC endpoint services should have acceptance required enabled
When acceptance_required is disabled, any AWS principal with endpoint creation permissions can create a VPC endpoint and immediately establish a private connection to your service. There's no gate, no review, no notification that a new consumer connected.
Explicit acceptance gives the service owner control over every consumer before granting network-level connectivity. For services that expose sensitive data or internal APIs, an unintended consumer can exfiltrate data or abuse capacity with nothing in the connection flow to indicate the access was unintended.
Retrofit consideration
Enabling acceptance_required on an existing endpoint service doesn't disconnect already-accepted endpoints, but any connections currently in pending state will require manual acceptance going forward. Run aws ec2 describe-vpc-endpoint-connections before enabling to audit who's already connected.
Implementation
Choose the approach that matches how you manage Terraform.
Use AWS provider resources directly. See docs for the resources involved: aws_vpc_endpoint_service.
resource "aws_vpc_endpoint_service" "this" {
network_load_balancer_arns = ["arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/example/1234567890123456"]
acceptance_required = true
}
What this control checks
The control checks that aws_vpc_endpoint_service has acceptance_required = true. When set, any endpoint attempting to connect enters pendingAcceptance and must be explicitly approved via aws_vpc_endpoint_connection_accepter or the console before the connection becomes active. A value of false or an omitted argument fails. Every aws_vpc_endpoint_service in the configuration must include acceptance_required = true to pass.
Common pitfalls
Default value is false
Omit
acceptance_requiredfrom the resource block and Terraform deploys without complaint, but the control fails and your service is open to any principal with endpoint creation permissions. The default isfalse, so the attribute must be explicitly set totrue.Allowed principals do not replace acceptance
Allowed principals and accepted connections are two separate gates.
aws_vpc_endpoint_service_allowed_principalcontrols who can request a connection;acceptance_required = truecontrols whether those requests are automatically let through. Even an allowed principal's connection sits inpendingAcceptanceuntil explicitly accepted.Automated acceptance requires a separate resource
To automate the acceptance step in Terraform, add
aws_vpc_endpoint_connection_accepterto the configuration. Without it, endpoints sit inpendingAcceptanceindefinitely andterraform applymay time out waiting for the connection to activate.Existing connections unaffected by toggle
Flipping
acceptance_requiredtotrueon a running service won't disconnect existing consumers. Before enabling it, runaws ec2 describe-vpc-endpoint-connectionsto confirm only intended accounts are already connected. Any pending connections at the time of the change will require manual acceptance.
Audit evidence
An auditor expects aws ec2 describe-vpc-endpoint-service-configurations output showing AcceptanceRequired: true for every endpoint service in scope. AWS Config can evaluate this with a custom or managed rule checking the acceptanceRequired property. Console screenshots of the VPC Endpoint Services page showing the "Acceptance required" column as "Yes" are also valid.
CloudTrail logs for ModifyVpcEndpointServiceConfiguration and AcceptVpcEndpointConnections show that acceptance workflows are enforced and that connection approvals are tracked over time.
Tool mappings
Use these identifiers to cross-reference this control across tools, reports, and evidence.
Compliance.tf Control:
vpc_endpoint_service_acceptance_required_enabledCheckov Check:
CKV_AWS_123Powerpipe Control:
aws_compliance.control.vpc_endpoint_service_acceptance_required_enabled
Last reviewed: 2026-03-09