Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
You can use this document to collect and send AWS VPC Flow Logs to Armor's Security Information & Event Management (SIEM).
Note |
---|
Armor does not support AWS Enriched VPC Flow Logs. |
...
Prerequisites
Armor Account ID
Note To learn how to obtain your Account ID, see Get Accounts API.
- Ubuntu shell for build and deployment
...
Note |
---|
To learn more about permissions in AMP, see Roles and Permissions. |
Log Relay
For remote log collection, you must have Log Relay added to your account.
- To learn how to add Log Relay to your account, see Obtain Log Relay for Remote Log Collection.
Flow Source
A flow source is required in order to ingest flow data in the Armor SIEM. The flow source will be dedicated to your flow data. You will not be charged until data begins to flow into the Armor SIEM.
Complete the following steps to create a flow source:
- In the Armor Management Portal (AMP), in the left-side navigation, click Security.
- Click Log & Data Management.
- Click External Sources.
- Click the plus ( + ) sign.
- If you do not have any log sources already created, then click Add a New Log Source.
- In Endpoint, select the available Armor Endpoint.
- In Log Source Type, select Amazon AWS VPC Flow Logs.
In the pop-up window, click Yes, Create Flow Source.
- A message will display at the bottom of the screen, indicating that the flow source has been created.
AWS account permissions (policies)
Your AWS service account must have full access to AWS CloudWatch.
Your individual AWS user account must have full access to the following AWS features:
- AWS VPC
- AWS Lambda
- AWS CloudWatch
- AWS CloudFormation
AWS Components
The AWS components that will be used are:
...
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Note |
---|
The CloudFormation template must be executed in the same region as the flow log. |
- This name must begin with a letter, and can only contain letters, numbers, and hyphens.
- By default, the logs will be stored in s3 with AES256 encryption.
Example: https://<LOG_RELAY_IP>:5443
- By default, Armor has configured 3 days; set to 0 to keep logs until manually removed.
In StrictSsl, indicate whether or not strict SSL checks should be enforced on the destination log URL (True or False).
For TLS Syslog and HTTPS sources, Armor recommends that StrictSsl be set to True.
For all other sources, StrictSsl can be set to False.
Note If StrictSsl is set to True (TLS Syslog and HTTPS), you must complete the steps to enable SSL to utilize the CloudFormation template. If these steps are not performed, when you attempt to launch the newly created CloudFormation template, the process will fail.
Expand title Steps to enable SSL ... SSL/TLS Secured Communications
In most cases, we assume network isolation using subneting and/or firewalls are in place to secure communication between a log source and your Log Relay. There are a few exceptions to this assumption:
In scenarios where it is typical to have data traverse the Internet, or in scenarios where a device only supports TLS-secured transport, the Log Relay config supports TLS ingestion.
Certificates
When you install the Log Relay software, a self-signed certificate and its corresponding private key are generated and placed in /opt/armor/logrelay.pem and /opt/armor/logrelay.key respectively. If the device sending logs requires strict SSL checks, you have a few options to satisfy this requirement:
Exporting the Self-Signed Certificate
You may export the certificate and add it to the trust store of the log source device (if supported). You copy the PEM certificate from the Log Relay server and then consult the vendor-supplied documentation to install a new trusted certificate.
Using a Certificate from a Valid CA
You can also generate a CSR and request a certificate from a CA the log source device already trusts. Using openssl you can generate a new CSR. We recommend using a configuration file to supply Subject Alternate Names (SANs) for the various DNS hostnames pointed at your Log Relay in addition to its IP address.
logrealy.cnf
Code Block [ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = <COUNTRY> stateOrProvinceName = <STATE> localityName = <CITY> organizationName = <COMPANY_NAME> commonName = <LOG_RELAY_IP_ADDRESS> [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = <DNS_NAME_1> DNS.2 = <DNS_NAME_2> DNS.3 = <DNS_NAME_3>
Fill in the values in angle brackets above with applicable values. For <COUNTRY> us the 2-digit ISO country code. For <STATE>. you can use the 2-digit abbreviation or the full name of your state or province.
If the IP address of the Log Relay changes frequently or you already use a DNS hostname as the default means of addressing the Log Relay, use the DNS hostname instead of the IP address in <LOG_RELAY_IP_ADDRESS>.
Add any DNS hostnames that resolve to this Log Relay using the alt_names section of the config. If you're not using any SANs, remove the [alt_names] and [req_ext] sections and remove the
reference under the [req] section.Then use openssl to request the certificate:
Code Block openssl req -new rsa:2048 -key /opt/armor/logrelay.key -nodes -out logrelay.csr -config logrelay.cnf
Note that you may need to run this command as root as the key is owned by the Log Relay service account.
After you've generated your CSR and received the certificate from the CA, ensure that it is in PEM format and upload it to your Log Relay machine. Ensure that is accessible to the Log Relay service account.
Once the file is uploaded and has the correct permissions, update the override environment file to point at the path of the new certificate. Create a file at /etc/sysconfig/armor-logstash.override with the following contents:
Code Block ARMOR_LOGSTASH_SSL_CERT='/path/to/cert.pem'
If you used a key other than the one included with the Log Relay, you can specify it in this file as well:
Code Block ARMOR_LOGSTASH_SSL_KEY='/path/to/private.key'
Note that this key must not have a password and be in PKCS8 format. You can use file permissions and/or selinux policies to protect the key.
After creating or updating these configuration files, restart the Log Relay service:
Code Block sudo systemctl restart armor-logstash.service
- This can be found in the Account Overview section of your AMP account.
- ALL - Capture all traffic (default); recommended
- Accept - Capture the VPC accepted traffic
- Reject - Capture the VPC rejected traffic
In
Click Next.
At the bottom of the screen, mark the box to accept the terms, and then click Create.
(Optional) Click the Refresh button to see the status of the stack creation.
Option 2: New View
In the AWS console, in the top menu, on the right side, select the desired region for log collection.
- In Specify an Amazon S3 template URL, input the following link: https://s3-us-west-2.amazonaws.com/logs.armor.com/log-relay-aws-vpc-flows/log-relay-aws-vpc-flows.yaml.
- Click Next.
- In Stack name, enter a descriptive name.
- This name must begin with a letter, and can only contain letters, numbers, and hyphens.
- (Optional) In KmsKeyStack, enter the customer KMS key stack (if applicable).
- By default, the logs will be stored in s3 with AES256 encryption.
- In LogUrl, enter the URL where the VPC flow log will be sent, to include the log relay IP address and port number (5443/tcp).
Example: https://<LOG_RELAY_IP>:5443
- In RetentionInDays, enter the number of days to retain the log files in the S3 bucket.
- By default, Armor has configured 3 days; set to 0 to keep logs until manually removed.
- By default, Armor has configured 3 days; set to 0 to keep logs until manually removed.
In StrictSsl, indicate whether or not strict SSL checks should be enforced on the destination log URL (True or False).
For TLS Syslog and HTTPS sources, Armor recommends that StrictSsl be set to True.
For all other sources, StrictSsl can be set to False.
Note If StrictSsl is set to True (TLS Syslog and HTTPS), you must complete the steps to enable SSL to utilize the CloudFormation template. If these steps are not performed, when you attempt to launch the newly created CloudFormation template, the process will fail.
Expand title Steps to enable SSL ... SSL/TLS Secured Communications
In most cases, we assume network isolation using subneting and/or firewalls are in place to secure communication between a log source and your Log Relay. There are a few exceptions to this assumption:
In scenarios where it is typical to have data traverse the Internet, or in scenarios where a device only supports TLS-secured transport, the Log Relay config supports TLS ingestion.
Certificates
When you install the Log Relay software, a self-signed certificate and its corresponding private key are generated and placed in /opt/armor/logrelay.pem and /opt/armor/logrelay.key respectively. If the device sending logs requires strict SSL checks, you have a few options to satisfy this requirement:
Exporting the Self-Signed Certificate
You may export the certificate and add it to the trust store of the log source device (if supported). You copy the PEM certificate from the Log Relay server and then consult the vendor-supplied documentation to install a new trusted certificate.
Using a Certificate from a Valid CA
You can also generate a CSR and request a certificate from a CA the log source device already trusts. Using openssl you can generate a new CSR. We recommend using a configuration file to supply Subject Alternate Names (SANs) for the various DNS hostnames pointed at your Log Relay in addition to its IP address.
logrealy.cnf
Code Block theme Midnight [ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = <COUNTRY> stateOrProvinceName = <STATE> localityName = <CITY> organizationName = <COMPANY_NAME> commonName = <LOG_RELAY_IP_ADDRESS> [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = <DNS_NAME_1> DNS.2 = <DNS_NAME_2> DNS.3 = <DNS_NAME_3>
Fill in the values in angle brackets above with applicable values. For <COUNTRY> us the 2-digit ISO country code. For <STATE>. you can use the 2-digit abbreviation or the full name of your state or province.
If the IP address of the Log Relay changes frequently or you already use a DNS hostname as the default means of addressing the Log Relay, use the DNS hostname instead of the IP address in <LOG_RELAY_IP_ADDRESS>.
Add any DNS hostnames that resolve to this Log Relay using the alt_names section of the config. If you're not using any SANs, remove the [alt_names] and [req_ext] sections and remove the
reference under the [req] section.Then use openssl to request the certificate:
Code Block theme Midnight openssl req -new rsa:2048 -key /opt/armor/logrelay.key -nodes -out logrelay.csr -config logrelay.cnf
Note that you may need to run this command as root as the key is owned by the Log Relay service account.
After you've generated your CSR and received the certificate from the CA, ensure that it is in PEM format and upload it to your Log Relay machine. Ensure that is accessible to the Log Relay service account.
Once the file is uploaded and has the correct permissions, update the override environment file to point at the path of the new certificate. Create a file at /etc/sysconfig/armor-logstash.override with the following contents:
Code Block theme Midnight ARMOR_LOGSTASH_SSL_CERT='/path/to/cert.pem'
If you used a key other than the one included with the Log Relay, you can specify it in this file as well:
Code Block theme Midnight ARMOR_LOGSTASH_SSL_KEY='/path/to/private.key'
Note that this key must not have a password and be in PKCS8 format. You can use file permissions and/or selinux policies to protect the key.
After creating or updating these configuration files, restart the Log Relay service:
Code Block theme Midnight sudo systemctl restart armor-logstash.service
- In TenantId, enter your Armor account number.
- This can be found in the Account Overview section of your AMP account.
- In TrafficType, select the type of traffic to log:
- ALL - Capture all traffic (default); recommended
- Accept - Capture the VPC accepted traffic
- Reject - Capture the VPC rejected traffic
In
Click Next.
- Click Next.
- At the bottom of the screen, mark the box to accept the terms, and then click Create.
(Optional) Click the Refresh button to see the status of the stack creation.
- You can verify that the stack was created successfully on the Resources tab.
Verify Connection in AMP
...
- In the Armor Management Portal (AMP), in the left-side navigation, click Security.
- Click Log & Data Management, and then select Search.
- In the Source column, review the source name to locate the newly created AWS VPC Flow Log remote log source.
- In the search field, you can also enter the AWS acccount ID to locate AWS VPC Flow Log messages.
Edit a Stack
...
Note |
---|
This section only applies to single stacks, not stack sets. |
Currently, Armor's AWS CloudFormation template does not support updates. If you want to update your stack, then you must delete the remote log source, and then create a new one with your desired updates.
...