SlideShare a Scribd company logo
1 of 31
Download to read offline
Account Bootstrap
OpenSesame DevOps
Motivation
● More teams 🡒 more services 🡒 more risk
● Multiple vendor accounts
○ Minimizes blast radius
○ Enhances Principle of Least Privilege
○ Provides strong service boundaries
○ Allows teams to deploy more independently
● A layered vendor account architecture
○ Allows centralized teams (DevOps, SecOps) to provide foundational resources
■ Terraform state management
■ Off-site backups
■ Log management
■ Access controls
■ Networking stack
Outline
● Vendor Accounts
● Account Roles
● Account Login
○ First-Time Setup
○ Day-to-Day Usage
Vendor Accounts
Terminology
● Each team supports one or more “product domains”
(“domain” for short)
○ Examples: Data Science, Catalog
● Each product domain receives:
○ A set of AWS, New Relic accounts; one per “account
class”
○ User credentials
○ Starter-pack of pre-configured resources
Accounts
● Dev
○ For sandbox play, and development on-platform
● Stage
○ Matches production resources closely
○ DB contains fake or sanitized prod data
○ For load/scale testing, cross-team or external integration testing
● Prod
○ All external customer-facing resources
Starter Pack
● Account KMS key
○ Auto-rotating
○ Use for any encryption needs (DBs, Redis, secrets, SQS/SNS)
● Terraform state
○ S3 state bucket, DynamoDB lock table
○ Encrypted with account KMS key
● Faceless users
○ Users who are not a real, live person
○ Used for services like CI/CD, security scanning, etc.
○ Example: DataScienceGitHubActionsFacelessUser
○ Credentials available in Secrets Manager (Someday: auto pushed to CI provider)
Starter Pack
● Networking stack
○ VPC with 2 subnets (multi-AZ), NAT Gateways, and Internet Gateway
● Logging & Metrics
○ AWS account pre-wired to forward metrics to New Relic
○ S3 bucket for Load Balancer access logs (forwards to New Relic)
○ Lambda for forwarding CloudWatch logs
Account Roles
Users
● (New) Each team member gets a single AWS user
○ Use for all AWS access for that person
● Each user has 1 set of Access keys
○ Used for CLI access
○ No need to store multiple keys in
~/.aws/credentials
Roles
● Each AWS user is granted permissions via IAM Roles
○ Roles are like hats - assume the right one for the job
● Two roles per account
○ Developer - day to day use
○ Operator - account admin-level privileges
● Teams (ie: team leads) decide which team members
are Developers vs. Operators
○ For small teams - everyone can be an Operator
By default, Developers have:
● Full access to all domain Dev
accounts (open-source model)
● Read access to their domain’s
Stage and Prod accounts
● No IAM access to other
domain Stage and Prod
accounts
All permissions can be extended by
the team.
Developers can only assume
Developer roles.
By default, Operators have:
● Full access to all domain Dev
accounts (open-source model)
● Full access to their domain’s
Stage and Prod accounts
● No IAM access to other
domain Stage and Prod
accounts
Operators can assume Developer or
Operator roles, depending on their
task.
Faceless Users
● Each gets a role - team sets permissions
● Created in global AWS account - NOT in domain accounts
○ Existing users will be migrated over time
● Example: DataScienceProdGitHubActionsFacelessRole
Admins
● Users requiring broad, all-domain access to perform their work
○ Examples: Directors, CTO, DevOps, SecOps
● Can assume any Developer or Operator role
○ Includes non-domain accounts like Security Portal, Audit
Account Logins
Web Console Command Line
Account Login -
Web Console
1. Password Reset
● Admin creates your user
● Log on to AWS Console
○ Account ID: global-aws-account-id
○ User: your.name as provided
○ Password: as provided
● Change your password
○ 1 week grace period to reset from account creation
○ Use a password manager please :)
AWS Role Switcher
If it displays:
● your.name @ opensesame-…
○ No role assumed
○ Can change password, MFA
● Role Name
○ Role assumed
○ Use Back to your.name to
un-assume role
2. Set up MFA
● From the login screen:
○ Click on Role Switcher menu
○ Select “My Security Credentials”
○ Click “Manage MFA Device” button
○ Select the Virtual MFA Device option
○ Follow the instructions
3. Set up AWS Extend Role Switcher Plugin
● Install plugin:
○ For Chrome
○ For Firefox
● Open plugin 🡒 “Configuration”
○ Copy-paste from here
○ Select Local option for Configuration storage
○ Customize as desired (change colors, icons, ordering,
remove unused roles, etc)
4. Log out, Log in
● Log out and in to kick MFA
○ Click on your.name 🡒
○ Select “Sign Out”
○ Log back in
● Click on Role Switcher Plugin (Blue Key) 🡒
Choose a role!
Day-to-Day Login
● Log on to https://console.aws.amazon.com
○ Account ID: global-aws-account-alias
○ User: your.name as provided
○ Password: as provided
● Assume a role using the Role Switcher browser
plugin (Blue Key)
Account Login -
Command Line
1. Install aws-mfa locally
● (New) MFA required for command-line access
● aws-mfa automates fetching and caching AWS tokens
○ Token valid for 12 hours - refresh once per work day
● Install Option 1: Via pip3
○ pip3 install aws-mfa
● Install Option 2:
○ Git clone https://github.com/broamski/aws-mfa.git
○ python3 setup.py install
2. Generate AWS CLI Credentials
● From any AWS console page:
○ Click on Role Switcher menu
○ Select “My Security Credentials”
■ Click “Back to your.name” if not visible
○ Click the “Create access key” button, and leave the page
open
[portal-long-term]
aws_access_key_id = <Your AWS access key ID>
aws_secret_access_key = <Your AWS secret key>
aws_mfa_device = <Your MFA device ARN>
3. Edit credentials file
● With your favorite text editor:
○ Open ~/.aws/credentials
○ Copy-paste from here
○ Replace values in top section with
your AWS access key ID and secret,
and your user.name
[portal-long-term]
aws_access_key_id = <YOUR AWS ACCESS KEY ID>
aws_secret_access_key = <YOUR AWS SECRET ACCESS KEY>
aws_mfa_device = arn:aws:iam::000000000000:mfa/<YOUR AWS user.name>
[devops-prod]
source_profile = portal
role_arn = arn:aws:iam::000000000000:role/DevOpsProdDeveloperRole
[devops-prod-ops]
source_profile = portal
role_arn = arn:aws:iam::000000000000:role/DevOpsProdOperatorRole
[data-science-dev]
source_profile = portal
Day-To-Day Login
● Open a terminal, run aws-mfa --profile portal
○ Enter 2FA code if prompted
● Run aws commands, terraform, etc.
○ NOTE: Expired tokens can cause weird errors. If you get a weird error, be sure to check aws-mfa.
Review
Review
● AWS Accounts
○ Terminology
○ Dev, Stage, Prod
○ Starter Pack Resources
● Account Roles
○ Developer
○ Operator
● Account Login
○ Web Console
○ AWS CLI
Thank You
Questions?

More Related Content

What's hot

Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2Ramy Allam
 
Introduction to node
Introduction to nodeIntroduction to node
Introduction to nodeJustin Woo
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for MicroservicesVõ Duy Tuấn
 
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...Chinar Goel
 
Learn AJAX at ASIT
Learn AJAX at ASITLearn AJAX at ASIT
Learn AJAX at ASITASIT
 
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSKubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSNATS
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkPierre Mavro
 
Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with FayeMatjaž Lipuš
 

What's hot (10)

Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2Linux Hosting Training Course Level 1-2
Linux Hosting Training Course Level 1-2
 
Introduction to node
Introduction to nodeIntroduction to node
Introduction to node
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for Microservices
 
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...
How I build a Hyperledger Fabric blockchain network using Amazon Managed Bloc...
 
Fine Uploader S3
Fine Uploader S3Fine Uploader S3
Fine Uploader S3
 
Learn AJAX at ASIT
Learn AJAX at ASITLearn AJAX at ASIT
Learn AJAX at ASIT
 
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATSKubeCon + CloudNative Con NA 2021 | A New Generation of NATS
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech Talk
 
Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with Faye
 

Similar to Engineering Domain Team Bootstrap

004 - Logging in the Cloud -- hide01.ir.pptx
004 - Logging in the Cloud  --  hide01.ir.pptx004 - Logging in the Cloud  --  hide01.ir.pptx
004 - Logging in the Cloud -- hide01.ir.pptxnitinscribd
 
XP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsXP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsVlad Fedosov
 
AWS for Aufzugswächter
AWS for AufzugswächterAWS for Aufzugswächter
AWS for Aufzugswächterorless
 
MariaDB Security Best Practices
MariaDB Security Best PracticesMariaDB Security Best Practices
MariaDB Security Best PracticesFederico Razzoli
 
Spring 21 Salesforce Release Webinar
Spring 21 Salesforce Release WebinarSpring 21 Salesforce Release Webinar
Spring 21 Salesforce Release Webinarbrightgenss
 
PyConIE 2017 Writing and deploying serverless python applications
PyConIE 2017 Writing and deploying serverless python applicationsPyConIE 2017 Writing and deploying serverless python applications
PyConIE 2017 Writing and deploying serverless python applicationsCesar Cardenas Desales
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applicationsCesar Cardenas Desales
 
AWS CSA Associate 05-07
AWS CSA Associate 05-07AWS CSA Associate 05-07
AWS CSA Associate 05-07Heitor Vital
 
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...eMadrid network
 
Secure Developer Access at Decisiv
Secure Developer Access at DecisivSecure Developer Access at Decisiv
Secure Developer Access at DecisivTeleport
 
PyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsPyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsCesar Cardenas Desales
 
002 - Account Setup _ Primer -- hide01.ir.pptx
002 - Account Setup _ Primer  --  hide01.ir.pptx002 - Account Setup _ Primer  --  hide01.ir.pptx
002 - Account Setup _ Primer -- hide01.ir.pptxnitinscribd
 
Azure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAzure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAlessandro Melchiori
 
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...Anant Corporation
 
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3Amazon Web Services
 
AWS Workshop 101
AWS Workshop 101AWS Workshop 101
AWS Workshop 101lynn80827
 
Ever Present Persistence - Established Footholds Seen in the Wild
Ever Present Persistence - Established Footholds Seen in the WildEver Present Persistence - Established Footholds Seen in the Wild
Ever Present Persistence - Established Footholds Seen in the WildCTruncer
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost EnvironmentPratipD
 

Similar to Engineering Domain Team Bootstrap (20)

004 - Logging in the Cloud -- hide01.ir.pptx
004 - Logging in the Cloud  --  hide01.ir.pptx004 - Logging in the Cloud  --  hide01.ir.pptx
004 - Logging in the Cloud -- hide01.ir.pptx
 
XP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsXP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applications
 
AWS for Aufzugswächter
AWS for AufzugswächterAWS for Aufzugswächter
AWS for Aufzugswächter
 
MariaDB Security Best Practices
MariaDB Security Best PracticesMariaDB Security Best Practices
MariaDB Security Best Practices
 
Spring 21 Salesforce Release Webinar
Spring 21 Salesforce Release WebinarSpring 21 Salesforce Release Webinar
Spring 21 Salesforce Release Webinar
 
PyConIE 2017 Writing and deploying serverless python applications
PyConIE 2017 Writing and deploying serverless python applicationsPyConIE 2017 Writing and deploying serverless python applications
PyConIE 2017 Writing and deploying serverless python applications
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applications
 
AWS CSA Associate 05-07
AWS CSA Associate 05-07AWS CSA Associate 05-07
AWS CSA Associate 05-07
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
 
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
 
Secure Developer Access at Decisiv
Secure Developer Access at DecisivSecure Developer Access at Decisiv
Secure Developer Access at Decisiv
 
The Perimeter Is Dead
The Perimeter Is DeadThe Perimeter Is Dead
The Perimeter Is Dead
 
PyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsPyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applications
 
002 - Account Setup _ Primer -- hide01.ir.pptx
002 - Account Setup _ Primer  --  hide01.ir.pptx002 - Account Setup _ Primer  --  hide01.ir.pptx
002 - Account Setup _ Primer -- hide01.ir.pptx
 
Azure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAzure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutes
 
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
 
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3
Hands on Setup and Overview of AWS Console, AWS CLI, AWS SDK, Boto 3
 
AWS Workshop 101
AWS Workshop 101AWS Workshop 101
AWS Workshop 101
 
Ever Present Persistence - Established Footholds Seen in the Wild
Ever Present Persistence - Established Footholds Seen in the WildEver Present Persistence - Established Footholds Seen in the Wild
Ever Present Persistence - Established Footholds Seen in the Wild
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost Environment
 

Recently uploaded

online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
How to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareHow to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareNYGGS Automation Suite
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Jonathan Katz
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptkinjal48
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 

Recently uploaded (20)

online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
How to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareHow to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS Software
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.ppt
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 

Engineering Domain Team Bootstrap

  • 2. Motivation ● More teams 🡒 more services 🡒 more risk ● Multiple vendor accounts ○ Minimizes blast radius ○ Enhances Principle of Least Privilege ○ Provides strong service boundaries ○ Allows teams to deploy more independently ● A layered vendor account architecture ○ Allows centralized teams (DevOps, SecOps) to provide foundational resources ■ Terraform state management ■ Off-site backups ■ Log management ■ Access controls ■ Networking stack
  • 3. Outline ● Vendor Accounts ● Account Roles ● Account Login ○ First-Time Setup ○ Day-to-Day Usage
  • 5. Terminology ● Each team supports one or more “product domains” (“domain” for short) ○ Examples: Data Science, Catalog ● Each product domain receives: ○ A set of AWS, New Relic accounts; one per “account class” ○ User credentials ○ Starter-pack of pre-configured resources
  • 6. Accounts ● Dev ○ For sandbox play, and development on-platform ● Stage ○ Matches production resources closely ○ DB contains fake or sanitized prod data ○ For load/scale testing, cross-team or external integration testing ● Prod ○ All external customer-facing resources
  • 7. Starter Pack ● Account KMS key ○ Auto-rotating ○ Use for any encryption needs (DBs, Redis, secrets, SQS/SNS) ● Terraform state ○ S3 state bucket, DynamoDB lock table ○ Encrypted with account KMS key ● Faceless users ○ Users who are not a real, live person ○ Used for services like CI/CD, security scanning, etc. ○ Example: DataScienceGitHubActionsFacelessUser ○ Credentials available in Secrets Manager (Someday: auto pushed to CI provider)
  • 8. Starter Pack ● Networking stack ○ VPC with 2 subnets (multi-AZ), NAT Gateways, and Internet Gateway ● Logging & Metrics ○ AWS account pre-wired to forward metrics to New Relic ○ S3 bucket for Load Balancer access logs (forwards to New Relic) ○ Lambda for forwarding CloudWatch logs
  • 10. Users ● (New) Each team member gets a single AWS user ○ Use for all AWS access for that person ● Each user has 1 set of Access keys ○ Used for CLI access ○ No need to store multiple keys in ~/.aws/credentials
  • 11. Roles ● Each AWS user is granted permissions via IAM Roles ○ Roles are like hats - assume the right one for the job ● Two roles per account ○ Developer - day to day use ○ Operator - account admin-level privileges ● Teams (ie: team leads) decide which team members are Developers vs. Operators ○ For small teams - everyone can be an Operator
  • 12. By default, Developers have: ● Full access to all domain Dev accounts (open-source model) ● Read access to their domain’s Stage and Prod accounts ● No IAM access to other domain Stage and Prod accounts All permissions can be extended by the team. Developers can only assume Developer roles.
  • 13. By default, Operators have: ● Full access to all domain Dev accounts (open-source model) ● Full access to their domain’s Stage and Prod accounts ● No IAM access to other domain Stage and Prod accounts Operators can assume Developer or Operator roles, depending on their task.
  • 14. Faceless Users ● Each gets a role - team sets permissions ● Created in global AWS account - NOT in domain accounts ○ Existing users will be migrated over time ● Example: DataScienceProdGitHubActionsFacelessRole
  • 15. Admins ● Users requiring broad, all-domain access to perform their work ○ Examples: Directors, CTO, DevOps, SecOps ● Can assume any Developer or Operator role ○ Includes non-domain accounts like Security Portal, Audit
  • 18. 1. Password Reset ● Admin creates your user ● Log on to AWS Console ○ Account ID: global-aws-account-id ○ User: your.name as provided ○ Password: as provided ● Change your password ○ 1 week grace period to reset from account creation ○ Use a password manager please :)
  • 19. AWS Role Switcher If it displays: ● your.name @ opensesame-… ○ No role assumed ○ Can change password, MFA ● Role Name ○ Role assumed ○ Use Back to your.name to un-assume role
  • 20. 2. Set up MFA ● From the login screen: ○ Click on Role Switcher menu ○ Select “My Security Credentials” ○ Click “Manage MFA Device” button ○ Select the Virtual MFA Device option ○ Follow the instructions
  • 21. 3. Set up AWS Extend Role Switcher Plugin ● Install plugin: ○ For Chrome ○ For Firefox ● Open plugin 🡒 “Configuration” ○ Copy-paste from here ○ Select Local option for Configuration storage ○ Customize as desired (change colors, icons, ordering, remove unused roles, etc)
  • 22. 4. Log out, Log in ● Log out and in to kick MFA ○ Click on your.name 🡒 ○ Select “Sign Out” ○ Log back in ● Click on Role Switcher Plugin (Blue Key) 🡒 Choose a role!
  • 23. Day-to-Day Login ● Log on to https://console.aws.amazon.com ○ Account ID: global-aws-account-alias ○ User: your.name as provided ○ Password: as provided ● Assume a role using the Role Switcher browser plugin (Blue Key)
  • 25. 1. Install aws-mfa locally ● (New) MFA required for command-line access ● aws-mfa automates fetching and caching AWS tokens ○ Token valid for 12 hours - refresh once per work day ● Install Option 1: Via pip3 ○ pip3 install aws-mfa ● Install Option 2: ○ Git clone https://github.com/broamski/aws-mfa.git ○ python3 setup.py install
  • 26. 2. Generate AWS CLI Credentials ● From any AWS console page: ○ Click on Role Switcher menu ○ Select “My Security Credentials” ■ Click “Back to your.name” if not visible ○ Click the “Create access key” button, and leave the page open [portal-long-term] aws_access_key_id = <Your AWS access key ID> aws_secret_access_key = <Your AWS secret key> aws_mfa_device = <Your MFA device ARN>
  • 27. 3. Edit credentials file ● With your favorite text editor: ○ Open ~/.aws/credentials ○ Copy-paste from here ○ Replace values in top section with your AWS access key ID and secret, and your user.name [portal-long-term] aws_access_key_id = <YOUR AWS ACCESS KEY ID> aws_secret_access_key = <YOUR AWS SECRET ACCESS KEY> aws_mfa_device = arn:aws:iam::000000000000:mfa/<YOUR AWS user.name> [devops-prod] source_profile = portal role_arn = arn:aws:iam::000000000000:role/DevOpsProdDeveloperRole [devops-prod-ops] source_profile = portal role_arn = arn:aws:iam::000000000000:role/DevOpsProdOperatorRole [data-science-dev] source_profile = portal
  • 28. Day-To-Day Login ● Open a terminal, run aws-mfa --profile portal ○ Enter 2FA code if prompted ● Run aws commands, terraform, etc. ○ NOTE: Expired tokens can cause weird errors. If you get a weird error, be sure to check aws-mfa.
  • 30. Review ● AWS Accounts ○ Terminology ○ Dev, Stage, Prod ○ Starter Pack Resources ● Account Roles ○ Developer ○ Operator ● Account Login ○ Web Console ○ AWS CLI