AWS on-premise
Port's AWS on-premise integration allows you to import your AWS resources into Port, according to your configuration. After the initial import of data, the integration will also listen to live events from AWS to update data in Port in real time.
Common use cases
Easily fill your software catalog with data directly from your AWS Organization, for example:
- Map all the resources in your AWS Accounts, including ECS Clusters, S3 Buckets, EC2 Instances and other AWS objects.
- Watch for AWS resources changes (create/update/delete) in real-time, and automatically apply the changes to your entities in Port.
- Use relations to create complete, easily digestible views of your AWS infrastructure inside Port.
How it works
Port's AWS integration can retrieve all the resources supported by the Cloud Control API, and export them to Port as entities of existing blueprints.
The AWS integration allows you to perform extract, transform, load (ETL) on data from the Cloud Control API into the desired software catalog data model.
Setup
Choose one of the following installation methods:
- Multiple account support : enable the integration to collect data from multiple AWS accounts.
- Live events : set up real-time event processing after completing the installation.
Recommended resource sizes
To ensure optimal performance and avoid out-of-memory (OOM) errors, we recommend the following resources for this integration:
- CPU Limit:
800m - CPU Request:
200m - Memory Limit:
2Gi - Memory Request:
2Gi
Set resource values using the commands below:
helm install my-integration port-labs/port-ocean \
# ... other parameters
--set ocean.resources.limits.cpu=800m \
--set ocean.resources.limits.memory=2Gi \
--set ocean.resources.requests.cpu=200m \
--set ocean.resources.requests.memory=2Gi
Configuration
Port integrations use a YAML mapping block to ingest data from the third-party api into Port.
The mapping makes use of the JQ JSON processor to select, modify, concatenate, transform and perform other operations on existing fields and values from the integration API.
Default mapping configuration
This is the default mapping configuration you get after installing the AWS on-premise integration.
Default mapping configuration (click to expand)
resources:
- kind: AWS::Organizations::Account
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .Name
blueprint: '"awsAccount"'
properties:
arn: .Arn
email: .Email
status: .Status
joined_method: .JoinedMethod
joined_timestamp: .JoinedTimestamp | sub(" "; "T")
- kind: AWS::S3::Bucket
selector:
query: 'true'
useGetResourceAPI: 'true'
port:
entity:
mappings:
identifier: .Identifier
title: .Identifier
blueprint: '"cloudResource"'
properties:
kind: .__Kind
region: .Properties.RegionalDomainName | capture(".*\\.(?<region>[^\\.]+)\\.amazonaws\\.com")
| .region
tags: .Properties.Tags
arn: .Properties.Arn
link: .Properties | select(.Arn != null) | "https://console.aws.amazon.com/go/view?arn="
+ .Arn
relations:
account: .__AccountId
- kind: AWS::EC2::Instance
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Identifier
title: .Identifier
blueprint: '"cloudResource"'
properties:
kind: .__Kind
region: .__Region
tags: .Properties.Tags
arn: .Properties.Arn
link: .Properties | select(.Arn != null) | "https://console.aws.amazon.com/go/view?arn="
+ .Arn
relations:
account: .__AccountId
- kind: AWS::ECS::Cluster
selector:
query: 'true'
useGetResourceAPI: 'true'
port:
entity:
mappings:
identifier: .Properties.Arn
title: .Identifier
blueprint: '"cloudResource"'
properties:
kind: .__Kind
region: .__Region
tags: .Properties.Tags
arn: .Properties.Arn
link: .Properties | select(.Arn != null) | "https://console.aws.amazon.com/go/view?arn="
+ .Arn
relations:
account: .__AccountId
Monitoring and sync status
To learn more about how to monitor and check the sync status of your integration, see the relevant documentation.
Mapping & selectors per resource
Use the explorer below to view the mapping and blueprint definition for each resource type. For additional resources and advanced configurations, see the examples page.
Further examples
Refer to the examples page for practical configurations and their corresponding blueprint definitions.