Skip to main content

Check out Port for yourself ➜ 

Single account installation

Loading version...

This page shows you how to deploy the AWS integration to sync resources from a single AWS account into your Port catalog. The integration runs as a container that authenticates with AWS, discovers resources, and syncs them on a schedule you configure.

Choose authentication method

This option runs the integration as an Amazon ECS task. The deployment creates a task role (PortOceanTaskRole) and a read-only role (PortOceanReadRole). The ECS task assumes the read-only role to discover your AWS resources. The deployment also provisions the required infrastructure to run the integration continuously.

Prerequisites

  • VPC and subnets: An existing VPC and at least two subnets (for high availability) in which the ECS task will run. You select these when providing the CloudFormation stack parameters.

Step 1: Deploy the CloudFormation stack

  1. Open the CloudFormation stack creation page: Deploy the ECS CloudFormation stack ↗

  2. Fill in the required parameters (see All stack parameters below for details).

  3. Check the I acknowledge that AWS CloudFormation might create IAM resources box at the bottom of the page, then click Create stack.

All stack parameters (click to expand)
ParameterDefaultDescription
PortClientIdYour Port client ID.
PortClientSecretYour Port client secret.
VpcIdVPC where the ECS task runs (dropdown).
SubnetIdsSubnets for the ECS task; select at least two for high availability (dropdown).
PortBaseUrlhttps://api.port.ioPort API endpoint. Use https://api.us.port.io for US region.
IntegrationIdentifiermy-aws-v3Unique identifier for this integration.
ResyncIntervalMinutes1440How often the integration rescans AWS (minutes); 1440 = once per day.
ContainerCpu256CPU units (256 = 0.25 vCPU).
ContainerMemory1024Memory in MB.
What the stack creates (click to expand)
ResourcePurpose
ECS ClusterLogical grouping for ECS tasks (always created by this stack).
ECS Task DefinitionDefines container image, resources, and IAM roles.
ECS ServiceKeeps the task running continuously.
Execution RoleAllows ECS to pull images and write logs.
Task Role (PortOceanTaskRole)Used by the ECS task; can assume PortOceanReadRole.
Read-only Role (PortOceanReadRole)Grants ReadOnlyAccess; assumed by the integration for scanning.
Security GroupAllows outbound HTTPS to Port and AWS APIs.
CloudWatch Log GroupStores container logs (90-day retention).

Step 2: Verify the deployment

  1. Wait for the stack status to show CREATE_COMPLETE (typically 3–5 minutes).
  1. In the ECS console, open your cluster and the port-ocean-aws-v3 service.
  2. Confirm the task is RUNNING.

The integration starts syncing AWS resources to Port. In Port, check your catalog to confirm resources are syncing.

Selecting a Port API URL by account region

The port_region, port.baseUrl, portBaseUrl, port_base_url and OCEAN__PORT__BASE_URL parameters select which Port API instance to use:

Troubleshooting

For how authentication and IAM roles work, see IAM role architecture.

Stack creation failed (CREATE_FAILED)

  • Insufficient IAM permissions: Ensure your AWS user has CloudFormation and IAM permissions to create the stack.
  • Parameter mismatch: For IRSA (EKS), ensure the namespace and service account name in the stack match the values used in the Helm command.
  • EKS unsupported availability zone: EKS does not support control plane in all AZs (e.g. us-east-1e). If you see an error like EKS does not support creating control plane instances in <AZ>, delete the failed stack and retry with subnets in supported AZs (the error message lists which AZs are supported for your region).

No resources discovered

  • Verify the IAM user or role has the ReadOnlyAccess policy attached.
  • Check that the regions you want to sync are not excluded by your region policy and that the integration has network access to AWS APIs.

Invalid credentials (IAM User only)

  • Verify AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are correct and the IAM user has ReadOnlyAccess attached.

Role or authentication errors

  • Verify the role ARN in Helm or your config matches the stack output. For IRSA, ensure the service account annotation and OIDC provider match the values used in the stack.