Giter Club home page Giter Club logo

govuk-aws's Introduction

๐Ÿšง Deprecated ๐Ÿšง

Please use govuk-infrastructure for anything new. Talk with #govuk-platform-engineering if you're unsure.

GOV.UK AWS

This is the Terraform code that still manages some of GOV.UK's AWS resources.

Platform Engineering team is in the process of:

  • cleaning up disused modules
  • updating what's left and incorporating it into govuk-infrastructure

Getting started

Start by reading the getting started guide.

Architecture Decision Records

Some of the design choices in the history of this codebase are documented in docs/architecture/ for posterity.

Licence

MIT License

govuk-aws's People

Contributors

afda16 avatar agadufrat avatar aldavidson avatar barrucadu avatar boffbowsh avatar brucebolt avatar camdesgov avatar chrisbashton avatar deanwilson avatar deborahchua avatar edwardkerry avatar erino avatar fredericfran-gds avatar issyl0 avatar kevindew avatar mahmudh avatar maxf avatar richardtowers avatar robinjam avatar rtrinque avatar rubenarakelyan avatar samlr avatar schmie avatar sengi avatar sihugh avatar surminus avatar suthagarht avatar szd55gds avatar theseanything avatar thomasleese avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

govuk-aws's Issues

Replace govukcli with other tooling

govukcli was introduced in 2017 to help people run 'assume-role' and 'ssh' commands against AWS machines on GOV.UK. Since that time, we've seen a divergence in the approaches people use in practice and in our docs, which is duplicated effort and confusing for new starters. The naming 'govukcli' also belies the fact that it is not an agreed or actual CLI for running all GOV.UK tools.

We would like to replace govukcli with other tooling, and this issue is a precursor to an RFC for the SSH sub-command specifically.

govukcli aws

Usage: govukcli aws [options]

Gets a temporary session for the requested context, including asking for
your MFA token if needed. By default, passes arguments to the "aws" CLI tool. Use the "invoke" command to set up the credentials then invoke another tool. Requires your AWS credentials to be set up as in the GOV.UK Developer Docs:

https://docs.publishing.service.gov.uk/manual/user-management-in-aws.html#storing-credentials-on-disk

We believe this can be replaced with gds-cli, which means we benefit for using standard GDS tooling to meet a non-GOV.UK-specific need. Our approach to making this change will be:

@issyl0 will be leading on this.

govukcli ssh

Usage: govukcli ssh [options]

By default it will expect a Puppet node class (eg backend, frontend), and will attempt to SSH to a random instance within that class. If only a single instance exists, then it will SSH to that instance (eg puppetmaster, jenkins).

Options:

set-user Set a different username to SSH with than the default shell user ($(whoami)).

node-types List the types of instances available to connect to.

node-list List the machines for a particular node. Try node-list whitehall_backend.

Phase 1

We believe this can be replaced with govuk-connect. Our approach to making this change will be to create a prototype repo that will help people understand the subsequent RFC:

  • Extract govuk-connect into a new, dedicated, prototype repo
  • Ensure the prototype repo has setup and usage instructions

@cbaines will be leading on this.

Phase 2

We know there are a variety of preferences for SSH tooling among GOV.UK developers and we're conscious we need to consult people before making further changes:

Potential PII in repository?

Hi so I've been browsing this repository and noticed that you're currently exposing PII of some of your engineers in some files.

One example of this is 87f6435 as well as the entire history of this file (and potentially others) giving outsiders complete insight into people's full names, email addresses (sometimes personal as well as governmental) and the rough idea of when they left/joined the teams based on when SSH keys were added.

Sorry for reaching out via a github issue but I wasn't sure how else to raise this to you.

Thanks,

Veil.

Improve aws rds_instance default security posture

The Terraform module aws_db_instance provides an argument of storage_encrypted which is defaulted to off when not specified. I think it would be a good idea if the https://github.com/alphagov/govuk-aws/blob/master/terraform/modules/aws/rds_instance/main.tf module here; specified this argument and defaulted to true.

Setting the storage_encrypted argument will require a kms_key_id to be used as mentioned here: https://www.terraform.io/docs/providers/aws/r/db_instance.html

Encrypted RDS instances shows an improved security posture in the event that the vender's RDS service is compromised. Additionally, AWS don't provide a easy solution for encrypting already unencrypted RDS instances without wiping data, as a default an RDS instance should be encrypted.

DNS entry update tasks missing from provisioning a new environment guide

Two extra changes need to be made when provisioning a new environment:

The production AWS account route53 hosted zones must be updated:

It's on the RFC 0015 diagram, but these tasks should be added to the steps one should take when provisioning a new environment.

There's a part on updating the NS records, but this doesn't say what actions one should take.

Some confusion in your decisions documents organisation

Hello there,

I was reading through your decision documents and I found the following mistake:
ADR 10 has a note "Amended by 13. Terraform Data Structure". The actual document is in fact ADR 15. The text and the link aren't correct.

Also you seem to have two documents ADR 15:

Btw, thank you for sharing publicly those documents ๐Ÿ‘

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.