Skip to content

Commit d9b768a

Browse files
authored
(docs)fix ACM procedures in FAQ, future-unsupported Fortinet 2nd tunnel config (#616)
* new config -both tunnels active both firewalls * update certificate process/instructions
1 parent 1a8c539 commit d9b768a

File tree

2 files changed

+840
-25
lines changed

2 files changed

+840
-25
lines changed

docs/faq/faq.md

Lines changed: 63 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
- [1.6. Deployed Functionality](#16-deployed-functionality)
3232
- [1.6.1. I wish to be in compliance with the 12 TBS Guardrails, what don't you cover with the provided sample architecture?](#161-i-wish-to-be-in-compliance-with-the-12-tbs-guardrails-what-dont-you-cover-with-the-provided-sample-architecture)
3333
- [1.6.2. Does the ALB perform SSL offloading?](#162-does-the-alb-perform-ssl-offloading)
34-
- [1.6.3. What is the recommended approach to manage the ALB certificates deployed by the ASEA?](#163-what-is-the-recommended-approach-to-manage-the-alb-certificates-deployed-by-the-asea)
34+
- [1.6.3. What is the recommended approach to manage the ALB certificates deployed by the Accelerator?](#163-what-is-the-recommended-approach-to-manage-the-alb-certificates-deployed-by-the-accelerator)
3535
- [1.6.4. Why do we have rsyslog servers? I thought everything was sent to CloudWatch?](#164-why-do-we-have-rsyslog-servers-i-thought-everything-was-sent-to-cloudwatch)
3636
- [1.6.5. Can you deploy the solution without Fortinet Firewall Licenses?](#165-can-you-deploy-the-solution-without-fortinet-firewall-licenses)
3737
- [1.6.6. I installed additional software on my Accelerator deployed RDGW / rsyslog host, where did it go?](#166-i-installed-additional-software-on-my-accelerator-deployed-rdgw--rsyslog-host-where-did-it-go)
@@ -287,44 +287,82 @@ Finally, while we started with a goal of delivering on the 12 guardrails, we bel
287287

288288
As configured - the perimeter ALB decrypts incoming traffic using its certificate and then re-encrypts it with the certificate for the back-end ALB. The front-end and back-end ALB's can use the same or different certs. If the Firewall needs to inspect the traffic, it also needs the backend certificate be manually installed.
289289

290-
### 1.6.3. What is the recommended approach to manage the ALB certificates deployed by the ASEA?
290+
### 1.6.3. What is the recommended approach to manage the ALB certificates deployed by the Accelerator?
291291

292-
Self-Signed certificates should NOT be used for production. The Accelerator installation process allows customers to provide their own certificates (either self-signed or generated by a CA), to enable quick and easy installation and allowing customers to test end-to-end traffic flows. After the initial installation, we recommend customers leverage AWS Certificate Manager (ACM) to easily provision, manage, and deploy public and private SSL/TLS certificates. ACM helps manage the challenges of maintaining certificates, including certificate rotation and renewal, so you don’t have to worry about expiring certificates.
292+
The Accelerator installation process allows customers to provide their own certificates (either self-signed or generated by a CA), to enable quick and easy installation and allowing customers to test end-to-end traffic flows. After the initial installation, we recommend customers leverage AWS Certificate Manager (ACM) to easily provision, manage, and deploy public and private SSL/TLS certificates. ACM helps manage the challenges of maintaining certificates, including certificate rotation and renewal, so you don’t have to worry about expiring certificates.
293293

294-
The most effective mechanism for leveraging ACM is adding CNAME authorization records to the relevant DNS domains (documented [here](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html)). The Accelerator then supports requesting newly generated ACM certificates, by adding a certificate request to the configuration file, rather than import, as follows:
294+
The Accelerator provides 3 mechanisms to enable utilizing certificates with ALB's:
295295

296-
```json
297-
"certificates": [
298-
{
299-
"name": "PublicCert1",
300-
"type": "request",
301-
"domain": "*.example.com",
302-
"validation": "DNS",
303-
"san": ["*.example1.com"]
304-
}
305-
]
306-
```
296+
- **Method 1** - IMPORT a certificate into AWS Certificate Manager from a 3rd party product
307297

308-
You also need to update the config file so that your ALB's “cert-name” or “cert-arn” uses the new certificate in the format below:
298+
```json
299+
"certificates": [
300+
{
301+
"name": "My-Cert",
302+
"type": "import",
303+
"priv-key": "certs/example1-cert.key",
304+
"cert": "certs/example1-cert.crt"
305+
}
306+
]
307+
```
309308

310-
```json
311-
"alb": [
312-
{
313-
"cert-name": "PublicCert1"
314-
}
315-
]
316-
```
309+
- this mechanism allows a customer to generate certificates using their existing tools and processes and import 3rd party certificates into AWS Certificate Manager for use in AWS
310+
- Self-Signed certificates should NOT be used for production (samples were provided simply to demonstrate functionality)
311+
- both a `.key` and a `.crt` file must be supplied in the customers S3 input bucket
312+
- this will create a certificate in ACM and a secret in secrets manager named `accelerator/certificates/My-Cert` in the specified AWS account(s), which points to the newly imported certificates ARN
313+
314+
- **Method 2** - REQUEST AWS Certificate Manager generate a certificate
315+
316+
```json
317+
"certificates": [
318+
{
319+
"name": "My-Cert",
320+
"type": "request",
321+
"domain": "*.example.com",
322+
"validation": "DNS",
323+
"san": ["www.example.com"]
324+
}
325+
]
326+
```
317327

318-
or
328+
- this mechanism allows a customer to generate new public certificates directly in ACM
329+
- both `DNS` and `EMAIL` validation mechanisms are supported (DNS recommended)
330+
- this will also create a certificate in ACM and a secret in secrets manager named `accelerator/certificates/My-Cert` in the specified AWS account(s), which points to the newly imported certificates ARN
331+
- this mechanism should NOT be used on new installs, skip certificate and ALB deployment during initial deployment (removing them from the config file) and simply add on a subsequent state machine execution
332+
- Process:
333+
- you need a public DNS domain properly registered and configured to publicly resolve the domain(s) you will be generating certificates for (i.e. example.com)
334+
- domains can be purchased and configured in Amazon Route53 or through any 3rd party registrar and DNS service provider
335+
- in Accelerator phase 1, the cert is generated, but the stack does NOT complete deploying (i.e. it waits) until certificate validation is complete
336+
- during deployment, go to the AWS account in question, open ACM and the newly requested certificate. Document the authorization CNAME record required to validate certificate generation
337+
- add the CNAME record to the zone in bullet 1 (in Route53 or 3rd party DNS provider) (documented [here](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html))
338+
- after a few minutes the certificate will validate and switch to `Issued` status
339+
- Accelerator phase 1 will finish (assuming the phase didn't time-out)
340+
- the ALB will deploy in a later phase with the specified certificate
341+
342+
- **Method 3** - Manually generate a certificate in ACM
343+
344+
- this mechanism allows a customer to manually generate certificates directly in the ACM interface for use by the Accelerator
345+
- this mechanism should NOT be used on new installs, skip certificate and ALB deployment during initial deployment (removing them from the config file) and simply add on a subsequent state machine execution
346+
- Process:
347+
- go to the AWS account for which you plan to deploy an ALB and open ACM
348+
- generate a certificate, documenting the certificates ARN
349+
- open Secrets manager and generate a new secret of the format `accelerator/certificates/My-Cert` (of type `Plaintext` under `Other type of secrets`), where `My-Cert` is the unique name you will use to reference this certificate
350+
351+
- In all three mechanisms a secret will exist in Secrets Manager named `accelerator/certificates/My-Cert` which contains the ARN of the certificate to be used.
352+
- In the Accelerator config file, find the definition of the ALB for that AWS account and specify `My-Cert` for the ALB `cert-name`
319353

320354
```json
321355
"alb": [
322356
{
323-
"cert-arn": "arn:aws:acm:ca-central-1:[account-id]:certificate/[identifier]"
357+
"cert-name": "My-Cert"
324358
}
325359
]
326360
```
327361

362+
- The state machine will fail if you specify a certificate in any ALB which is not defined in Secrets Manager in the local account.
363+
364+
We suggest the most effective mechanism for leveraging ACM is by adding CNAME authorization records to the relevant DNS domains using Method 2, but may not appropriate right for all customers.
365+
328366
### 1.6.4. Why do we have rsyslog servers? I thought everything was sent to CloudWatch?
329367

330368
The rsyslog servers are included to accept logs for appliances and third party applications that do not natively support the CloudWwatch Agent from any account within a customers Organization. These logs are then immediatly forwarded to CloudWatch Logs within the account the rsyslog servers are deployed (Operations) and are also copied to the S3 immutable bucket in the log-archive account. Logs are only persisted on the rsyslog hosts for 24 hours. The rsyslog servers are required to centralize the 3rd party firewall logs (Fortinet Fortigate).

0 commit comments

Comments
 (0)