aws_vpc_endpoint_service_permission resource
Use the aws_vpc_endpoint_service_permission
InSpec audit resource to test the properties of a single AWS VPC endpoint service permission.
Syntax
An aws_vpc_endpoint_service_permission
resource block declares the tests for a single AWS VPC endpoint service permission by service_id
and principal
.
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should exist }
end
Parameters
The AWS VPC endpoint service ID is required.
service_id
(required)The ID of the VPC endpoint service:
- must contain between 1 and 50 alphanumeric characters or hyphens
- should start with
vpce-svc-
- cannot end with a hyphen or contain two consecutive hyphens
- : For example,
vpce-svc-04deb776dc2b8e67f
. It can be passed as a
service_id: 'value'
key-value entry in a hash.principal
(required)The ARN of the principal. It can be passed as a
principal: 'value'
key-value entry in a hash.
Properties
principal_type
- The type of principal.
principal
- The Amazon Resource Name (ARN) of the principal.
Examples
Test that a VPC endpoint service permission is available:
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should exist }
end
Matchers
For a full list of available matchers, see our Universal Matchers page.This resource has the following special matchers.
exist
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should exist }
end
Verify that a principal has a user type
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should be_principal_type_user }
end
Verify that a principal does not have an all type
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should_not be_principal_type_all }
end
Verify that a principal does not have an organization unit type
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should_not be_principal_type_organization_unit }
end
Verify that a principal does not have an account type
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should_not be_principal_type_account }
end
Verify that a principal does not have a role type
describe aws_vpc_endpoint_service_permission(service_id: 'VPC_SERVICE_ID', principal: 'arn:aws:iam::AWS_ACCOUNT_ID:user/USER_NAME') do
it { should_not be_principal_type_role }
end
AWS Permissions
Your AWS principal will need the EC2:Client:DescribeVpcEndpointServicePermissionsResult
action with Effect
set to Allow
.
You can find detailed documentation at Actions, Resources, and Condition Keys for Amazon VPC endpoint service permissions, and Actions, Resources, and Condition Keys for Identity And Access Management.