diff --git a/_data/landing-zone-features.yml b/_data/landing-zone-features.yml new file mode 100644 index 000000000..670743379 --- /dev/null +++ b/_data/landing-zone-features.yml @@ -0,0 +1,50 @@ + +- title: Create a Multi-Account AWS Structure + description: Gruntwork Landing Zone gives you the ingredients to create a best-practices multi-account structure using AWS Organizations, all based on official AWS recommendations. + url: "/assets/img/landing-zone-features/features-0@3x.png" + description_assets: "/assets/img/landing-zone-features/landing-zone-chart@3x.png" + description_assets_mobile: "/assets/img/landing-zone-features/landing-zone-chart-mobile@3x.png" + +- title: Quickly create new AWS accounts + description: Gruntwork Landing Zone includes an opinionated way to create a new AWS account as part of your AWS Organization using just three lines of code, plusa Terraform apply. + url: "/assets/img/landing-zone-features/features-1@3x.png" + precode: | +
Variables.tf
+
+      
+        // Create a new AWS account with just three lines of code and a Terraform apply 
+        child_accounts = {
+          dev = {
+            email = "dev@acme.com"
+          },
+          stage = {
+            email = "stage@acme.com"
+          },
+          prod = {
+            email = "prod@acme.com"
+          }
+        }
+      
+    
+
+ + +- title: Apply a best-practices security baseline to each AWS account + description: We define security baselines for the "root", "security", and "app" AWS accounts that include best-practices configurations for AWS CloudTrail, AWS Config, AWS Config rules, AWS IAM user password policies, cross-account access, Amazon GuardDuty, and more. + url: "/assets/img/landing-zone-features/features-2@3x.png" + +- title: 100% Terraform-native + description: Manage your accounts and security baselines as Terraform code. Update to the latest Gruntwork Landing Zone baselines or make AWS Organization changes such as setting AWS Config Rules with simple changes to Terraform code. + url: "/assets/img/landing-zone-features/features-4@3x.png" + +- title: Customize your AWS account baseline + description: Extend or customize your AWS account baselines by adding or removing any set of services you want directly in the Terraform code. + url: "/assets/img/landing-zone-features/features-5@3x.png" + +- title: Automate account creation + description: Because Gruntwork Landing Zone is 100% Terraform-native, you can create new accounts as part of any pipeline that runs Terraform code. For a production-ready example, see Gruntwork Pipelines. + url: "/assets/img/landing-zone-features/features-6@3x.png" + +- title: Available off the shelf + description: Gruntwork Landing Zone is pre-written, commercially supported, production-grade code that is available right now. No consulting engagement needed. + url: "/assets/img/landing-zone-features/features-7@3x.png" diff --git a/_data/sitemap.yml b/_data/sitemap.yml index 04805a9ea..942ca4cc3 100644 --- a/_data/sitemap.yml +++ b/_data/sitemap.yml @@ -3,6 +3,9 @@ - title: Infrastructure Code Library url: /infrastructure-as-code-library/ + - title: Gruntwork Landing Zone + url: /landing-zone-for-aws/ + - title: Reference Architecture url: /reference-architecture/ diff --git a/_includes/navbar.html b/_includes/navbar.html index c71714c1f..8e272b966 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -48,6 +48,14 @@ >Infrastructure as Code Library +
  • + Gruntwork Landing Zone +
  • code { - position: relative; - border-left: 10px solid #358ccb; - box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf; - background-color: #fdfdfd; - background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%); - background-size: 3em 3em; - background-origin: content-box; - background-attachment: local; -} - -code[class*="language"] { - max-height: inherit; - height: inherit; - padding: 0 1em; - display: block; - overflow: auto; -} - -/* Margin bottom to accommodate shadow */ -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background-color: #fdfdfd; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - margin-bottom: 1em; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - position: relative; - padding: .2em; - border-radius: 0.3em; - color: #c92c2c; - border: 1px solid rgba(0, 0, 0, 0.1); - display: inline; - white-space: normal; -} - -pre[class*="language-"]:before, -pre[class*="language-"]:after { - content: ''; - z-index: -2; - display: block; - position: absolute; - bottom: 0.75em; - left: 0.18em; - width: 40%; - height: 20%; - max-height: 13em; - box-shadow: 0px 13px 8px #979797; - -webkit-transform: rotate(-2deg); - -moz-transform: rotate(-2deg); - -ms-transform: rotate(-2deg); - -o-transform: rotate(-2deg); - transform: rotate(-2deg); -} - -:not(pre) > code[class*="language-"]:after, -pre[class*="language-"]:after { - right: 0.75em; - left: auto; - -webkit-transform: rotate(2deg); - -moz-transform: rotate(2deg); - -ms-transform: rotate(2deg); - -o-transform: rotate(2deg); - transform: rotate(2deg); -} - -.token.comment, -.token.block-comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #7D8B99; -} - -.token.punctuation { - color: #5F6364; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.function-name, -.token.constant, -.token.symbol, -.token.deleted { - color: #c92c2c; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.function, -.token.builtin, -.token.inserted { - color: #2f9c0a; -} - -.token.operator, -.token.entity, -.token.url, -.token.variable { - color: #a67f59; - background: rgba(255, 255, 255, 0.5); -} - -.token.atrule, -.token.attr-value, -.token.keyword, -.token.class-name { - color: #1990b8; -} - -.token.regex, -.token.important { - color: #e90; -} - -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: rgba(255, 255, 255, 0.5); -} - -.token.important { - font-weight: normal; -} - -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.namespace { - opacity: .7; -} - -@media screen and (max-width: 767px) { - pre[class*="language-"]:before, - pre[class*="language-"]:after { - bottom: 14px; - box-shadow: none; - } - -} - -/* Plugin styles */ -.token.tab:not(:empty):before, -.token.cr:before, -.token.lf:before { - color: #e0d7d1; -} - -/* Plugin styles: Line Numbers */ -pre[class*="language-"].line-numbers.line-numbers { - padding-left: 0; -} - -pre[class*="language-"].line-numbers.line-numbers code { - padding-left: 3.8em; -} - -pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows { - left: 0; -} - -/* Plugin styles: Line Highlight */ -pre[class*="language-"][data-line] { - padding-top: 0; - padding-bottom: 0; - padding-left: 0; -} -pre[data-line] code { - position: relative; - padding-left: 4em; -} -pre .line-highlight { - margin-top: 0; -} - + code[class*="language-"], + pre[class*="language-"] { + color: #04bedf; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + } + + /* Code blocks */ + pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; + } + + :not(pre) > code[class*="language-"], + pre[class*="language-"] { + background: #242e3b; + } + + /* Inline code */ + :not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; + } + + .token.comment, + .token.prolog, + .token.doctype, + .token.cdata { + color: #4ad8b0; + } + + .token.punctuation { + color: #bfbfbf; + } + + .token.namespace { + opacity: .7; + } + + .token.property, + .token.tag, + .token.constant, + .token.symbol, + .token.deleted { + color: #f92672; + } + + .token.boolean, + .token.number { + color: #ae81ff; + } + + .token.selector, + .token.attr-name, + .token.string, + .token.char, + .token.builtin, + .token.inserted { + color: #bfbfbf; + } + + .token.operator, + .token.entity, + .token.url, + .language-css .token.string, + .style .token.string, + .token.variable { + color: #bfbfbf; + } + + .token.atrule, + .token.attr-value, + .token.function, + .token.class-name { + color: #e6db74; + } + + .token.keyword { + color: #66d9ef; + } + + .token.regex, + .token.important { + color: #fd971f; + } + + .token.important, + .token.bold { + font-weight: bold; + } + .token.italic { + font-style: italic; + } + + .token.entity { + cursor: help; + } + + \ No newline at end of file diff --git a/assets/img/landing-zone-features/features-0@3x.png b/assets/img/landing-zone-features/features-0@3x.png new file mode 100644 index 000000000..6f66be476 Binary files /dev/null and b/assets/img/landing-zone-features/features-0@3x.png differ diff --git a/assets/img/landing-zone-features/features-1@3x.png b/assets/img/landing-zone-features/features-1@3x.png new file mode 100644 index 000000000..dafc57055 Binary files /dev/null and b/assets/img/landing-zone-features/features-1@3x.png differ diff --git a/assets/img/landing-zone-features/features-2@3x.png b/assets/img/landing-zone-features/features-2@3x.png new file mode 100644 index 000000000..d622eff4b Binary files /dev/null and b/assets/img/landing-zone-features/features-2@3x.png differ diff --git a/assets/img/landing-zone-features/features-3@3x.png b/assets/img/landing-zone-features/features-3@3x.png new file mode 100644 index 000000000..e2dd200af Binary files /dev/null and b/assets/img/landing-zone-features/features-3@3x.png differ diff --git a/assets/img/landing-zone-features/features-4@3x.png b/assets/img/landing-zone-features/features-4@3x.png new file mode 100644 index 000000000..39411b1be Binary files /dev/null and b/assets/img/landing-zone-features/features-4@3x.png differ diff --git a/assets/img/landing-zone-features/features-5@3x.png b/assets/img/landing-zone-features/features-5@3x.png new file mode 100644 index 000000000..5e3ed431c Binary files /dev/null and b/assets/img/landing-zone-features/features-5@3x.png differ diff --git a/assets/img/landing-zone-features/features-6@3x.png b/assets/img/landing-zone-features/features-6@3x.png new file mode 100644 index 000000000..d7daec7e4 Binary files /dev/null and b/assets/img/landing-zone-features/features-6@3x.png differ diff --git a/assets/img/landing-zone-features/features-7@3x.png b/assets/img/landing-zone-features/features-7@3x.png new file mode 100644 index 000000000..8e692788e Binary files /dev/null and b/assets/img/landing-zone-features/features-7@3x.png differ diff --git a/assets/img/landing-zone-features/landing-zone-chart-mobile@3x.png b/assets/img/landing-zone-features/landing-zone-chart-mobile@3x.png new file mode 100644 index 000000000..3a5c89c9f Binary files /dev/null and b/assets/img/landing-zone-features/landing-zone-chart-mobile@3x.png differ diff --git a/assets/img/landing-zone-features/landing-zone-chart@3x.png b/assets/img/landing-zone-features/landing-zone-chart@3x.png new file mode 100644 index 000000000..da77dc8c2 Binary files /dev/null and b/assets/img/landing-zone-features/landing-zone-chart@3x.png differ diff --git a/pages/landing-zone-for-aws/_docs.html b/pages/landing-zone-for-aws/_docs.html new file mode 100644 index 000000000..8f8e5f5fa --- /dev/null +++ b/pages/landing-zone-for-aws/_docs.html @@ -0,0 +1,10 @@ +
    +
    +

    Docs

    +

    + See our guide + How to configure a production-grade AWS account structure using Gruntwork AWS Landing Zone + for step-by-step instructions on how to setup your Terraform AWS Landing Zone. +

    +
    +
    diff --git a/pages/landing-zone-for-aws/_features.html b/pages/landing-zone-for-aws/_features.html new file mode 100644 index 000000000..2d19fa40d --- /dev/null +++ b/pages/landing-zone-for-aws/_features.html @@ -0,0 +1,25 @@ +
    +
    +

    Features

    + {% for feature in site.data.landing-zone-features %} +
    +
    + feature-icon +
    +
    +

    {{ feature.title }}

    +

    {{ feature.description }}

    + {% if feature.description_assets %} +
    + + +
    + {% endif %} + {% if feature.precode %} +
    {{ feature.precode }}
    + {% endif %} +
    +
    + {% endfor %} +
    +
    diff --git a/pages/landing-zone-for-aws/_hero.html b/pages/landing-zone-for-aws/_hero.html new file mode 100644 index 000000000..eb31aa890 --- /dev/null +++ b/pages/landing-zone-for-aws/_hero.html @@ -0,0 +1,22 @@ +
    +
    +
    +

    {{ page.title }}

    +

    + {{ page.excerpt }} +

    +

    + {{ link.title }}Get a Demo +

    +
    +
    +
    diff --git a/pages/landing-zone-for-aws/_pricing.html b/pages/landing-zone-for-aws/_pricing.html new file mode 100644 index 000000000..60a166bd5 --- /dev/null +++ b/pages/landing-zone-for-aws/_pricing.html @@ -0,0 +1,11 @@ +
    +
    +

    Pricing

    +

    + Gruntwork AWS Landing Zone is included as part of the + Gruntwork Subscription. + If you have questions about how it works or would like to see a demo, + contact our sales team. +

    +
    +
    diff --git a/pages/landing-zone-for-aws/_sub-hero.html b/pages/landing-zone-for-aws/_sub-hero.html new file mode 100644 index 000000000..a958f98fa --- /dev/null +++ b/pages/landing-zone-for-aws/_sub-hero.html @@ -0,0 +1,10 @@ +
    +
    +

    A Terraform-native approach to AWS Landing Zone

    +

    + A "Landing Zone" is a tool for quickly creating new AWS accounts, configuring AWS accounts + with a standard security baseline, and defining a best-practices multi-account setup. Gruntwork + Landing Zone helps you achieve all these goals using Terraform, allowing you to create and manage AWS accounts as code.” +

    +
    +
    diff --git a/pages/landing-zone-for-aws/index.html b/pages/landing-zone-for-aws/index.html new file mode 100644 index 000000000..e734f4a5e --- /dev/null +++ b/pages/landing-zone-for-aws/index.html @@ -0,0 +1,28 @@ +--- +layout: default +title: Gruntwork Landing Zone for AWS +excerpt: Streamline the way you create, configure, and secure AWS accounts. +permalink: /landing-zone-for-aws/ +slug: gruntwork-landing-zone +footer_heading: Talk with our team of DevOps experts now! +custom_js: + - search + - prism +--- + +
    +
    + {% include_relative _hero.html %} +
    +
    +
    + {% include_relative _sub-hero.html %} +
    +
    + {% include_relative _features.html %} {% include_relative + _docs.html %} {% include_relative _pricing.html %} +
    +
    +
    +
    +