Skip to main content

Cloud ConnectorsExabeam Cloud Connectors Configuration Guide

AWS Multi-Tenant Cloud Connector

AWS Cloud Connector Types

The Cloud Connector that you need to set up is dependent on the data sources and anticipated behavior of your deployment. Review the following information to ensure you choose the appropriate Cloud Connector:

Cloud Connector

Considerations

AWS Cloud Connector

  • Supported data sources – CloudTrail, CloudWatch Logs, CloudWatch, GuardDuty, Redshift, Shield, Inspector

  • Behavior – Collects data from all the various data sources listed using the AWS REST API and supporting heuristics

  • When to use – Use this connector if you need to collect data from AWS services. For CloudTrail logs, use this connector only if the combined EPS from all trails in a region do not exceed 50 EPS.

  • InstallationConfigure the AWS Cloud Connector according to the instructions.

AWS Multi-Tenant Cloud Connector

  • Supported data sources – AWS CloudTrail

  • Behavior – Collects all the CloudTrail events stored in a S3 bucket be it from a single AWS account or trail source or multiple AWS accounts or trails.

  • When to use – Use this connector when CloudTrail events from multiple AWS accounts/trails are sent to a single S3 bucket or when the volume of CloudTrail events per region is greater than 50 EPS.

  • InstallationConfigure the AWS Multi-Tenant Cloud Connector according to the instructions.

Supported AWS Multi-Tenant Audit Sources and Events

Service/Module

Service Details

Console Sign-in

Audit Source: CloudTrail API

Event Types: console login success/failed

Events included: A user in your account (root, IAM, federated, SAML, or SwitchRole) signed in to the AWS Management Console.

Additional Software & Services

AWS Marketplace

Analytics

Amazon Athena, Amazon CloudSearch, Amazon EMR, AWS Data Pipeline, Amazon Kinesis Firehose, Amazon Kinesis Streams, Amazon QuickSight

Application Services

Amazon API Gateway, Amazon Elastic Transcoder, Amazon Elasticsearch Service, Amazon Simple Workflow Service, AWS Step Functions

Artificial Intelligence

Amazon Machine Learning, Amazon Polly

Business Productivity

Amazon WorkDocs

Compute

Amazon Elastic Compute Cloud (EC2), Application Auto Scaling, Auto Scaling, Amazon EC2 Container Registry, Amazon EC2 Container Service, AWS Elastic Beanstalk, Elastic Load Balancing, AWS Lambda

Database

Amazon DynamoDB, Amazon ElastiCache, Amazon Redshift, Amazon Relational Database Service

Desktop & App Streaming

Amazon WorkSpaces

Developers Tools

AWS CodeBuild, AWS CodeCommit, AWS CodeDeploy, AWS CodePipeline, AWS CodeStar

Game Development

Amazon GameLift

Internet Of Things (IOT)

AWS IoT

Management Tools

AWS Application Discovery Service, AWS CloudFormation, AWS CloudTrail, Amazon CloudWatch Calls, AWS Config, AWS Managed Services, AWS OpsWorks, AWS OpsWorks for Chef Automate, AWS Organizations, AWS Service Catalog

Messaging

Amazon Simple Email Service, Amazon Simple Notification Service, Amazon Simple Queue Service

Migration

AWS Database Migration Service, AWS Server Migration Service

Mobile Services

Amazon Cognito, AWS Device Farm

Networking & Content Delivery

Amazon CloudFront, AWS Direct Connect, Amazon Route 53, Amazon Virtual Private Cloud

Security, Identity & Compliance

AWS Identity and Access Management (IAM), AWS Key Management Service (KMS), AWS Security Token Service (STS), AWS Certificate Manager, Amazon Cloud Directory, AWS CloudHSM, AWS Directory Service, Amazon Inspector, AWS WAF

Storage

Amazon Simple Storage Service (S3), Amazon Elastic Block Store (EBS), Amazon Elastic File System (EFS), Amazon Glacier, AWS Storage Gateway

Support

AWS Personal Health Dashboard, AWS Support

Prerequisites to Configure the AWS Multi-Tenant Cloud Connector

To configure the AWS Multi-Tenant Cloud Connector, ensure you set up your environment to meet the following requirements:

Note

For on-premises deployment, open Outbound communication to *.amazonaws.com:443.

  • Setup your AWS configuration to support the central CloudTrail settings. Follow the steps at Set up AWS to Send CloudTrail Logs From Multiple AWS Accounts Into a Single Account. To add an Exabeam AWS MT Cloud Connector, you need the following SQS and S3 bucket attributes: SQS URL, SQS Region, S3 Bucket Region.

  • Have (or create) an AWS IAM user that the cloud connector will use to integrate with the AWS APIs and ingest the audit events. The users attributes that you need are: Secret Access Key (e.g. see in the diagram an example) and Access Key ID (e.g. see in the diagram an example).

  • The AWS IAM user mentioned above should have the AWS permissions specified in Mandatory.

Set up AWS to Send CloudTrail Logs From Multiple AWS Accounts Into a Single Account

To monitor CloudTrail from multiple AWS accounts, you can set up AWS to forward the trails from the various accounts into a single account’s S3 Bucket. You can also set up a SQS queue that is notified when new objects are added to that bucket.

In this guide you will implement this architecture within AWS, including the creation of the collecting bucket, the SQS queue, the various accounts’ trails, all with air-tight permissions/policies, and finally you will create an AWS IAM User with permissions to orchestrate this setup, again, with air-tight policy.

For more information, refer to the AWS documentation for Receiving CloudTrail log files from multiple accounts and Amazon S3 Event Notifications.

  1. Collect all the account numbers that will be sending CloudTrail events.

    Find your Account # in My Account under Account Settings > Account ID. The account number is a 12 digit number, for example 111111111111.

  2. In the account you want to set up to receive the trails (for the duration of this procedure, we use Account A as an example of the account name), create an S3 bucket.

    Record the ARN for the bucket (see the properties tab).

  3. Create an SQS queue (Standard).

    Note

    Make sure the Queue is in the same region as the bucket.

    Record the URL.

  4. Set a policy for the SQS Queue to allow only the S3 bucket to send events to it:

    1. In SQS, select the queue and then Permissions.

    2. Click Edit Policy Document (Advanced).

    3. Paste the following policy and modify it for your environment.

       { 
              "Version": "2012-10-17", 
              "Id": "queue ARN/SQSDefaultPolicy", 
              "Statement": [ 
                  { 
                  "Effect": "Allow", 
                  "Principal": { 
                      "AWS": "*" 
                  }, 
                  "Action": ["SQS:SendMessage"], 
                  "Resource": "queue ARN", 
                  "Condition": { 
                      "ArnLike": { 
                      "aws:SourceArn": "bucket ARN" 
                      } 
                  } 
                  } 
              ] 
        } 
  5. Configure the S3 Bucket to notify the SQS Queue when files are added to it:

    1. In S3, select the Properties tab for the bucket.

    2. Select Events > Add notification.

    3. Enter a meaningful name (i.e. “Notify SQS new Files”).

    4. Select ObjectCreate (All).

    5. Under Send to, select SQS Queue.

    6. Select the queue and then Save your changes.

  6. Set a policy for the S3 Bucket to allow only the accounts for which you want to send CloudTrail events to this bucket to add objects to it:

    1. In S3, select the bucket > Permissions > Bucket Policy.

    2. Paste the following policy and modify it to add a row with the account ID for each source account:

      {
          "Version": "2012-10-17",
          "Statement": [
              {
              "Effect": "Allow",
              "Principal": {
                  "Service": "cloudtrail.amazonaws.com"
              },
              "Action": "s3:GetBucketAcl",
              "Resource": "Bucket ARN"
              },
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "cloudtrail.amazonaws.com"
                  },
                  "Action": "s3:PutObject",
                  "Resource": [
                      "Bucket ARN/[optional] myLogFilePrefix/AWSLogs/Account ID 1/*",
                      "Bucket ARN/[optional] myLogFilePrefix/AWSLogs/Account ID 2/*"
                  ],
                  "Condition": { 
                      "StringEquals": { 
                      "s3:x-amz-acl": "bucket-owner-full-control" 
                      }
                  }
              }
          ]
      }
      
  7. Configure a CloudTrail for each account to send its events to the bucket in Account A.

    1. Log in to the desired account.

    2. In CloudTrail, create a new trail (or re-configure an existing one).

    3. Under Storage location select No in Create new bucket and set the bucket name (not ARN) of Account A.

  8. Choose your preferred authentication method:

    Exabeam Cloud Connectors provides three authentication options for authentication with AWS:

    1. InstanceProfile: This is the recommended authentication method if the instance where cloud connector is running is in AWS EC2 and the AWS account we want to collect data from is the same as the one where the machine is hosted.

      To use this method, you will need to create and IAM policy and assign it to a role, then assign the role with the required permissions to the EC2 instance running the Exabeam Cloud Connectors.

      For more information, see the following AWS documentation: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html.

    2. STSAssumeRole: This is the recommended method for authentication by AWS. It also allows for cross-account access.

      The credentials for the IAM user (i.e. Basic) are used to authenticate with the user that will then assume the role. That user does not need any other permission other than the ability to assume the role specified.

      For more information, see the following AWS documentation: https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html.

    3. Basic: Authenticates using the access key and secret of an IAM User.

    For any of the above methods, an IAM Policy is needed.

  9. Create IAM Policy:

    1. In your AWS console, select Services > IAM > Policies > Create policy.

    2. Click on the JSON tab, to get an online editor.

    3. Replace the default, empty JSON with the following JSON

    4. Modify the JSON as appropriate and edit the name the policy (for example SQS and S3 for Exabeam Cloud Connectors).

      { 
      "Version": "2012-10-17", 
      "Statement": [ 
          { 
          "Action": [ 
              "sqs:DeleteMessage", 
              "sqs:DeleteMessageBatch", 
              "sqs:ReceiveMessage" 
          ], 
          "Effect": "Allow", 
          "Resource": "Queue ARN" 
          }, 
          { 
          "Action": [ 
              "s3:GetObject" 
          ], 
          "Effect": "Allow", 
          "Resource": "Bucket ARN/*" 
          } 
        ] 
      } 
  10. (Basic and AssumeRole Authentication only) Create an IAM user.

    Create a user with the policy from step 6:

    In Account A:

    1. In your AWS console, navigate to Services > IAM > Users > Add user.

    2. Give your user a name and enable programmatic access for the account.

      aws-add-user.png
    3. When you click next, you will be transferred to the set permissions page.

    4. (Basic Authentication only) Choose Attach Existing Policies Directly and search for the policy you created in the previous step.

      For STSAssumeRole authentication, skip this step as you will be warned about user has no permissions (this is okay).

    5. Continue the user creation process (tags are optional) and finish the user creation. You will see a screen like the following :

      aws-add-user-success.png
    6. Note the following attributes which you will need to create an IAM role.

      aws-multi-tenant-access-key-id.png
      • Access Key ID (e.g. see in the diagram an example)

      • Secret Access Key (e.g. see in the diagram an example)

  11. (AssumeRole and InstanceProfile authentication only) Create an IAM role:

    1. Navigate to IAM > Roles and click Create Role.

    2. Enable the AWS Service and EC2 service, and then click Next: Permissions.

      This will create a trust relationship that allows EC2 instances to call AWS services on your behalf. Later in this procedure, you will modify the trust relationship per the authentication method of your choice.

    3. Search and then select the policy you created, and then click Next: Tags.

    4. (Optional) Add tags if desired and then click Next: Review.

    5. Give the role a meaningful name, e.g. ExabeamCCAWSConnectorRole, and description and then click Create Role.

    6. Search and then select the role you created.

    7. Record the ARN for the role.

    8. Finalize the AssumeRole and InstanceProfile authentication configuration:

      AssumeRole

      1. Navigate to IAM > Roles and search for the role created earlier.

      2. Allow a specific user to use (assume) the role:

        1. Go to the Trust relationships tab, click Edit trust relationship.

        2. Make sure the Statements array contains the following entry (modify accordingly):

          {
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/ccuser"
            },
            "Action": "sts:AssumeRole"
           }
        3. Click Update Trust Policy.

      InstanceProfile

      1. Navigate to IAM > Roles and search for the role created earlier.

      2. Allow EC2 instances to use (assume) the role.

        1. Go to the Trust relationships tab, click Edit trust relationship.

        2. Make sure the Statements array contains the following statement entry:

          {
            "Effect": "Allow",
            "Principal": {
              "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
           }
        3. Click Update Trust Policy.

      3. Navigate to AWS EC2 service.

      4. Right-click on the instance where Exabeam Cloud Connectors in installed.

      5. Click Instance Settings > Attach/Replace IAM Role.

      6. Choose the role from the drop-down list, and Apply.

  12. Proceed to Configure the AWS Multi-Tenant Cloud Connector.

Configure the AWS Multi-Tenant Cloud Connector

AWS is a suite of cloud services platform, provides Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) services. AWS helps organizations consume compute power and needed services, all without the need to buy or manage hardware.

If you send Cloudtrail audit events from multiple AWS accounts into a into a shared S3 bucket (see CloudTrail Receive Logs From Multiple Accounts), you can add Amazon Web Service (AWS) Multi-Tenant connector to your Exabeam Platform.

If you use a standard AWS account with a its own private audit logs, please use the standard AWS Cloud Connector instead and onboard a cloud connector for each AWS account.

  1. Log in to the Exabeam Cloud Connectors platform with your registered credentials.

  2. Navigate to Settings > Accounts > Add Account.

  3. Click Select Service to Add, then select AWS-MultiTenant from the list.

  4. Fill in the following information:

    aws-multi-tenant-configuration.png
    • Tenant – Select your tenant from the list.

    • Account Name – Provide this cloud connector a meaningful name. Exabeam uses this name to identify the cloud connector across the Exabeam Cloud Connectors platform and in entire events sent by your connector to your SIEM/Log/Splunk system. For example, AWS EMEA Central Audit.

    • Description – Enter any text that describes the specific cloud connector function and provides meaning for your organization. For example, AWS account for central cloudtrail audit in EMEA AWS accounts.

    • Sqs-URL – Enter the URL of the SQS in use for the central audit. For example (not a valid value for use), https://sqs.us-west-2.amazonaws.com/123456789/new-trail-s3-file-from-snsS3

    • Sqs-Region – Enter the SQS region. For example, us-west-2.

    • S3-Region – Enter the S3 bucket region name, from the S3 bucket used for the central CloudTrail. For example, us-west-2.

    • Access-Key – Enter the Access Key ID for the IAM user.

    • Secret-Key – Enter the Secret Access Key for the IAM user.

  5. To confirm that the Exabeam Cloud Connector platform communicates with the service, click Test Connection.

  6. Click Done to save your changes. The cloud connector is now set up on the Exabeam Cloud Connector platform.

  7. To ensure that the connector is ready to send and collect data, Start the connector and check that the status shows OK.