Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add immersion day lab guide #132

Merged
merged 3 commits into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/immersion-day/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 073832ccff5ecc831799afbad50bd195
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/immersion-day/_images/IGWList20211109.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/image3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/image4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/image5-new.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/image6-20211109.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/region20211109.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_images/vpcList20211109.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions docs/immersion-day/_sources/docs/eventengine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# AWS Event & EventEngine

## Get Started Using the Lab Environment - in an AWS Event, using Event Engine

If you are attending a formal AWS event, you will have been sent a 12-character access code (or `hash`) that grants you permission to use a dedicated AWS account for this workshop. If you have any issues please let your instructor know.

Go to [dashboard.eventengine.run](https://dashboard.eventengine.run/), enter the access code and click Proceed:

![EventEngine](images/image2.png)

Click on **AWS Console**, then **Open AWS Console** to login into your dedicated AWS environment.

![EventEngine](images/image3.png)
![EventEngine](images/image4.png)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/home.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Aviatrix Immersion Day

Welcome to the Aviatrix Immersion Day! This website contains information for access the lab environment, called event engine, and the lab modules that you will use for the day. Proceed to the event engine login information by clicking the `AWS EventEngine` link below.
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 0: Deploy Aviatrix using Automation

[Click here to open the lab guide for Lab 0](pdfs/immersion-day-lab0.pdf)
94 changes: 94 additions & 0 deletions docs/immersion-day/_sources/docs/lab1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Lab 1: AWS Networking Fundamentals

## Create VPCs, IGWs, and EC2 instances

Amazon Virtual Private Cloud (Amazon VPC) lets you provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you define. You have complete control over your virtual networking environment, including selection of your own IP address range, creation of subnets, and configuration of route tables and network gateways. You can use both IPv4 and IPv6 in your VPC for secure and easy access to resources and applications.

An internet gateway (IGW) is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.
In this lab, we will create three VPC’s with Internet Gateways.

The lab modules build upon each other. Be sure to follow each step completely, build out in the specified region, and take note of IP addresses and CIDRs to ensure that future lab modules will work correctly.

![LAB1](images/image5-new.png)

## Navigate to CloudFormation

### 1.1.1

If you have not already signed into event engine, open the link you received in your email. Let the instructor know if you have any issues getting logged in. For instructions on using event engine, [click here](eventengine.md)

### 1.1.2

To get started, navigate to [VPC Dashboard Services](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks). Make sure that in the upper right-hand corner of the console it says `N. Virginia` (if not select N. Virginia from the drop down list)

![LAB1](images/region20211109.png)

### 1.1.3

Navigate to Cloudformation by searching for Cloudformation in Services search bar.

![LAB1](images/image6-20211109.png)

### 1.1.4

Click `CreateStack` to launch the CloudFormation stack for this lab. Accept the defaults on each page, and select `Create Stack`. Should you need to manually deploy the template [click here](https://s3.us-east-1.amazonaws.com/aws-immersion-day.aviatrixlab.com/AWS-ImmersionDay-lab-1-new.yaml)

### 1.1.5

Refresh every few minutes until the stack is in the status `CREATE_COMPLETE`

![LAB1](images/stackEvent20211109.png)

![LAB1](images/stackComplete20211109.png)

### 1.1.6

Using figure1 below as a reference, validate that the infrastructure has been created as desired

![LAB1](images/firgure1-20211109.png)

### 1.1.6.1

Navigate to the VPC service, validate that the VPCs and subnets have been created as follows:

![LAB1](images/vpcList20211109.png)

![LAB1](images/subnetList20211109.png)

**Note:** You may see a third subnet in each VPC, this is used later in the lab and can be ignored.

### 1.1.6.2

You should also have an IGW for the default VPC and three newly created IGWs available and attached to the VPCs:

![LAB1](images/IGWList20211109.png)

### 1.1.6.3

You should also have an IGW for the default VPC and three newly created IGWs available and attached to the VPCs:

![LAB1](images/IGWList20211109.png)

### 1.1.6.4

Validate that the route tables for the VPC have been created, and updated to direct Internet-bound traffic to the IGW for each VPC. The Route Tables are named VPC A Route Table, VPC B Route Table, and VPC C Route Table.

![LAB1](images/routeTable2011109.png)

### 1.1.6.5

Navigate to the EC2 service, validate that there are 2 EC2 instances in the “running” state.

![LAB1](images/InstanceList20211109-new.png)

### 1.1.6.6

For each EC2 instance, the Security Group rules under the Security tab should allow SSH (TCP port 22) and ICMP.

![LAB1](images/InstanceSelectA2011109-new.png)

![LAB1](images/SecurityGroup20211109.png)

![LAB1](images/SecurityGroupRules20211109.png)

This completes Lab 1.
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 2: Aviatrix Distributed Firewall for Secure Egress

[Click here to open the lab guide for Lab 2](pdfs/immersion-day-lab2-dfw-egress.pdf)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 3: Aviatrix Distributed Cloud Firewall for East-West

[Click here to open the lab guide for Lab 3](pdfs/immersion-day-lab3-dfw-eastwest.pdf)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 4: Threat Protection with Aviatrix ThreatIQ

[Click here to open the lab guide for Lab 4](pdfs/immersion-day-lab4-threats.pdf)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 5: Distributed Firewalling

[Click here to open the lab guide for Lab 5](pdfs/immersion-day-lab5.pdf)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 6: Chargeback Visibility with CostIQ

[Click here to open the lab guide for Lab 6](pdfs/immersion-day-lab6.pdf)
3 changes: 3 additions & 0 deletions docs/immersion-day/_sources/docs/lab7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Lab 7: Secure Egress Filtering

[Click here to open the lab guide for Lab 7](pdfs/immersion-day-lab7.pdf)

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions docs/immersion-day/_sphinx_design_static/design-tabs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
var sd_labels_by_text = {};

function ready() {
const li = document.getElementsByClassName("sd-tab-label");
for (const label of li) {
syncId = label.getAttribute("data-sync-id");
if (syncId) {
label.onclick = onLabelClick;
if (!sd_labels_by_text[syncId]) {
sd_labels_by_text[syncId] = [];
}
sd_labels_by_text[syncId].push(label);
}
}
}

function onLabelClick() {
// Activate other inputs with the same sync id.
syncId = this.getAttribute("data-sync-id");
for (label of sd_labels_by_text[syncId]) {
if (label === this) continue;
label.previousElementSibling.checked = true;
}
window.localStorage.setItem("sphinx-design-last-tab", syncId);
}

document.addEventListener("DOMContentLoaded", ready, false);
134 changes: 134 additions & 0 deletions docs/immersion-day/_static/_sphinx_javascript_frameworks_compat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/*
* _sphinx_javascript_frameworks_compat.js
* ~~~~~~~~~~
*
* Compatability shim for jQuery and underscores.js.
*
* WILL BE REMOVED IN Sphinx 6.0
* xref RemovedInSphinx60Warning
*
*/

/**
* select a different prefix for underscore
*/
$u = _.noConflict();


/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};

/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;

/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};

/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};

/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();

var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];

return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/immersion-day/_static/aviatrix-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading