AWS Inventory

The AWS inventory allows Plakar Control Plane to connect to your AWS account and discover and classify your resources. Once connected, Plakar Control Plane discovers all resources in your AWS account and makes them available for management directly within Plakar Control Plane.

Discovery flow

flowchart TD
  subgraph Plakar["Plakar Control Plane"]
    Inventory["AWS Inventory
Discover & Classify"] end subgraph Creds["Authentication"] direction LR IAM["IAM Role
(PCP deployed on AWS)"] Key["Access Key
(PCP deployed outside AWS)"] end subgraph AWS["AWS Account"] Resources["Supported Resources"] end Inventory -->|"on AWS"| IAM Inventory -->|"outside AWS"| Key IAM & Key -->|"AWS APIs"| Resources Resources -->|"sync to inventory"| Inventory

Supported Resources

Resource Source Store Destination
S3 Bucket Yes Yes Yes
Database (RDS) Yes No Yes

Authentication

There are two ways to authenticate your AWS account, depending on where Plakar Control Plane is deployed:

  • On AWS infrastructure: For Plakar Control Plane instances deployed on AWS using the AWS Marketplace AMI, use the IAM credential type. Plakar Control Plane will use the IAM role and permissions attached to the EC2 instance to discover and manage your resources.
  • Outside AWS infrastructure: If Plakar Control Plane is deployed on another cloud provider (such as Scaleway or OVHcloud) or on-premises, use the Access Key credential type. You will need to provide an AWS access key and secret key with sufficient permissions.

When using the IAM credential type, an IAM role with the required permissions must first be attached to the Plakar Control Plane EC2 instance.

Read the documentation on Managing IAM Roles, Users, and Access Keys on AWS for more information on how to set up IAM role with the necessary permissions and attach it to the instance.

Once attached, selecting the IAM credential type during AWS inventory setup will use the permissions from the IAM role attached to the instance.

Obtaining Access Keys

The Access Key credential type authenticates as an AWS IAM user with the required permissions. An access key generated for that user consists of an access key ID and a secret access key, and both are provided to the inventory.

SECRET KEYS

The secret access key is only displayed once by AWS. Make sure to store it securely or use a secret provider.

Required Permissions

Plakar Control Plane requires AWS permissions to discover and classify supported resources in your AWS account.

The same permissions are required for both:

  • The Access Key credential type
  • IAM roles attached to the EC2 instance when using the IAM credential type

Use the following IAM policy:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances",
        "resource-explorer-2:Search",
        "resource-explorer-2:List*",
        "resource-explorer-2:Get*",
        "s3:ListAllMyBuckets",
        "rds:DescribeDBInstances",
        "rds:DescribeDBClusters"
      ],
      "Resource": "*"
    }
  ]
}

Permission Details

Permission Description
ec2:DescribeInstances Discovers EC2 instances and related metadata
resource-explorer-2:Search Searches AWS resources across the account
resource-explorer-2:List* Lists Resource Explorer resources and views
resource-explorer-2:Get* Retrieves Resource Explorer metadata
s3:ListAllMyBuckets Discovers S3 buckets in the account
rds:DescribeDBInstances Discovers RDS database instances
rds:DescribeDBClusters Discovers RDS database clusters

Creating an AWS Inventory

An AWS inventory needs a name, a credential type and a region. The credential type is IAM when Plakar Control Plane runs on AWS and Access Key otherwise, as described in Authentication. With Access Key, the access key and secret key are entered directly or loaded from a secret provider.

An inventory discovers its resources when it is synchronized, so a new inventory is empty until its first synchronization. Synchronizing again refreshes the inventory, for example after resources are added to the AWS account.

Creating AWS inventory