SlideShare a Scribd company logo
1 of 48
Download to read offline
Puppetconf	2013
Building	a	Hyper	Secure	VPC	
on	AWS
with	Puppet
Tim	Nolet
Architect	at	Xebia	(the	Netherlands)
Linux/Java/Cloud/Automation/Operations
tnolet@xebia.com
github.com/tnolet
nl.linkedin.com/in/tnolet
Holland	=	The	Netherlands
Image:	xkcd.com
I	tend	to	ramble...
The	Assignment
The	Assignment	(1)
1.	 Build	a	general	purpose	VPC	on	AWS
2.	 Standardize	application	deployment
3.	 Apply	company	security	policies
The	Assignment	(2)
1.	 Do	it	with	Open	Source
2.	 Use	AWS	standards
3.	 Stay	close	to	reference	implementations
AWS	and	security
IAM,	MFA,	HSM
SSL,	SSH,	VPN
ISO	27001
PCI-DSS
PGP
..and	probably	some	more	acronyms
Design	Principles
A	Grid	based	on:
3	x	Availability	Zone
3	x	Tier:	web,	app,	data
1	x	Management	subnet
Design	Principles
Reference	stacks	
Implemented	in	CloudFormation
Provision:
EC2	instances
Security	Groups
RDS	instances
ELB	loadbalancers
RDS	instances
etc.
public_three_tier_stack_redundant_rds.template
AMI	Hardening
1.	 Apply	CIS	Benchmark	for	RedHat	Linux
2.	 Log	+Alert	on	any	discrepancies
3.	 Monitor	YUM	security	updates
Benchmark:	
https://benchmarks.cisecurity.org/tools2/linux/CIS_Redhat_Linux_5_Benchm
CIS	Benchmark	Module
manifests/
								1_software.pp
								2_osservices.pp
								3_specialservices.pp
								4_network.pp
								5_logaudit.pp
								6_accessauth.pp
								7_user.pp
								8_banners.pp
								9_maintenance.pp
								init.pp
=>
Coooode!
	#	1.6	Additional	Process	Hardening
		#	1.6.1	Restrict	Core	Dumps
		file	{	"/etc/security/limits.conf":
				source	=>	"puppet:///modules/cis_baseline/limits.conf",
				ensure	=>	"present",
				group		=>	"0",
				mode			=>	"644",
				owner		=>	"0",
		}
		#	1.6.2	Configure	ExecShield
		file_line	{	"Execshield":
				path	=>	"/etc/sysctl.conf",
				line	=>	"kernel.exec-shield	=	1",
		}
Hacking	/etc/pam.d/su
Allows	only	users	in	the	`wheel`	group	to	use	`su`
		#	6.5	Restrict	Access	to	the	su	Command
		augeas	{	"pam.d/su":
				context	=>	"/files/etc/pam.d/su/",
				changes	=>	[
						"ins	01	after	*[module	=	'pam_rootok.so'][control	=	'sufficient'][type	='auth']					
						[last()]",
						"set	01/type	auth",
						"set	01/control	required",
						"set	01/module	pam_wheel.so",
						"set	01/argument	use_uid",],
				onlyif		=>	"match	*[type	=	'auth'][control	=	'required'][module	=		'pam_wheel.so']
			[argument	=	'use_uid']	size	==	0",
		}
Tagging	dependent	modules
IPtables	is	managed	by	it	own	module
We	check	if	it	is	included	using	the	`tagged`	function				
								
		#	4.7	Enable	IPtables
		#	CIS	Rule	4.7	should	be	enforced	through	the	iptables/firewall	module.
		#	We	only	notify	if	it	is	not	running
		if	tagged("firewall_base")	{
				notice	("CIS	rule	4.7	Enable	IPtables	is	installed	and	enabled")
		}	else	{
				alert{	"CIS	rule	4.7	Enable	IPtables	is	not	installed":	}
		}
Tags:	order	is	important
Actual	IP	of	the	Graylog2	host	is	in	Hiera
Central	Logging
Rsyslog	=>	Graylog2
/etc/rsyslog.conf
#	Forward	all	logs	to	central	logging	server
*.*					@<%=	central_log_app_server	%>	#udp	forwarding
Sorting
Searching
Alerting
Graphing
...basically	a	SIEM	on	the	cheap
Network	traffic	logging
Why?
AWS	Security	Groups	and	Network	ACL's	don't	log
anything
Network	traffic	logging
How?
Puppet	+	IPtables	+	Rsyslog	+	Graylog2
Extending	the	puppetlabs_firewall	module	from	the	forge
https://forge.puppetlabs.com/puppetlabs/firewall
Allow/Drop/Log
1.	 Allow	or	Drop	connections
2.	 Tag	initial	connections,	on	both	dropped	and	allowed
3.	 Don't	tag	established	and	related	connections
4.	 Log	to	Graylog2	via	rsyslog
Let	Related	and	Established	pass	through	unharmed
Allow/Drop/Log
		firewall	{	"000	INPUT	allow	related	and	established":
				state		=>	["RELATED",	"ESTABLISHED"],
				action	=>	"accept",
				chain		=>	"INPUT",
				proto		=>	"all",
		}
Allow/Drop/Log
		firewallchain	{	'LOGNEW:filter:IPv4':	ensure	=>	present,	}
		firewall	{	"100	Log	all	NEW	connections":
				chain						=>	"LOGNEW",
				log_level		=>	"info",
				log_prefix	=>	"FIREWALL	TCP	INBOUND	",
				jump							=>	"LOG",
		}
		firewall	{	"101	Accept	the	connection":
				chain		=>	"LOGNEW",
				action	=>	"accept",
		}
Create	a	"LOGNEW"	chain	for	all	NEW	connections
Tag	them	with	a	prefix	and	jump	them	to	the	LOG	target
Then	accept	the	connections
Jump	your	allowed	traffic	to	the	LOGNEW	chain
Allow/Drop/Log
		firewall	{	"100	allow	ssh":
				state	=>	["NEW"],
				dport	=>	"22",
				proto	=>	"tcp",
				jump		=>	"LOGNEW"
		}
Exceptions...
Proxies
DNS
Database	running	nodes
Other	bridging	type	nodes
Custom	Facter	to	the	rescue!
IP	ranges	match	the	GRID
Availability	zone
Tier
Av.Zone	custom	Fact
def	get_avzone
				ipaddress	=	Facter.value(:ipaddress)
								if	Facter.value(:tier)	==	"management"
												av_zone	=	"zone_1b"
								elsif	ipaddress	=~(/^.*.*.*.([012345][0-9]|6[0-2])$/)
												avzone	=	"zone_1a"
								elsif	ipaddress	=~(/^.*.*.*.(6[5-9]|[789][0-9]|1[0-1][0-9]|12[0-6])$/)
												avzone	=	"zone_1b"
								elsif	ipaddress	=~(/^.*.*.*.(129|1[3-8][0-9]|190)$/)
												avzone	=	"zone_1c"
								else	avzone	=	"default"
				end
end
Done!
Good/Bad/Plain	Ugly
Good
Community!
Good
Graylog2	is	great	and	extremely	flexible
Good
VPC	is	the	way	to	go	on	AWS
CloudFormation's	power	is	incredible
Bad
Performance	of	large	catalogs	with	Puppet	2.7
		file	{	"/etc/somedirectory":
				recurse	=>	true,
				ignore	=>	["work","temp","log"],
				checksum	=>	none
		}
Hiera-GPG	is	cumbersome	to	say	the	least
Bad
JSON	notation	of	CloudFormation	templates
...meh
Tip:	CFNDSL	=	Ruby	DSL	for	CloudFormation	templates
https://github.com/howech/cfndsl
Ugly
Unified	state	and	life	cycle
management
Ugly
Everything	is	automated,
but	using	it's	own:
1.	 DSL
2.	 Authentication/Authorization
3.	 Paradigms
4.	 Versioning
5.	 You	name	it...
Ugly
One	single	source	of	truth	for:
1.	 Audit	trail	/	logging
2.	 Instance	status
3.	 Application	status
4.	 CRUD	actions	on	the	whole	infrastructure
Hope?!
RightScale,	Scalr,	Cloudify	and	similar?
AWS	OpsWorks?
Hope?!
Not	third	party	or	a	plugin
Part	of	the	core
Not	SaaS	only
Enterprise
Cloud	Provisioning,	Configuration	Management
and	Application	Deployment
Rant	over...
Questions?

More Related Content

What's hot

What's hot (20)

Security & Compliance (Part 2)
Security & Compliance (Part 2)Security & Compliance (Part 2)
Security & Compliance (Part 2)
 
(SEC301) Strategies for Protecting Data Using Encryption in AWS
(SEC301) Strategies for Protecting Data Using Encryption in AWS(SEC301) Strategies for Protecting Data Using Encryption in AWS
(SEC301) Strategies for Protecting Data Using Encryption in AWS
 
AWS Security Best Practices (March 2017)
AWS Security Best Practices (March 2017)AWS Security Best Practices (March 2017)
AWS Security Best Practices (March 2017)
 
(SEC303) Architecting for End-To-End Security in the Enterprise
(SEC303) Architecting for End-To-End Security in the Enterprise(SEC303) Architecting for End-To-End Security in the Enterprise
(SEC303) Architecting for End-To-End Security in the Enterprise
 
Managing Security with AWS | AWS Public Sector Summit 2017
Managing Security with AWS | AWS Public Sector Summit 2017Managing Security with AWS | AWS Public Sector Summit 2017
Managing Security with AWS | AWS Public Sector Summit 2017
 
AWS Partner Webcast - Use Your AWS CloudTrail Data and Splunk Software To Imp...
AWS Partner Webcast - Use Your AWS CloudTrail Data and Splunk Software To Imp...AWS Partner Webcast - Use Your AWS CloudTrail Data and Splunk Software To Imp...
AWS Partner Webcast - Use Your AWS CloudTrail Data and Splunk Software To Imp...
 
Security Assurance and Governance in AWS (SEC203) | AWS re:Invent 2013
Security Assurance and Governance in AWS (SEC203) | AWS re:Invent 2013Security Assurance and Governance in AWS (SEC203) | AWS re:Invent 2013
Security Assurance and Governance in AWS (SEC203) | AWS re:Invent 2013
 
AWS APAC Webinar Week - Getting The Most From EC2
AWS APAC Webinar Week - Getting The Most From EC2AWS APAC Webinar Week - Getting The Most From EC2
AWS APAC Webinar Week - Getting The Most From EC2
 
Encryption and key management in AWS (SEC304) | AWS re:Invent 2013
Encryption and key management in AWS (SEC304) | AWS re:Invent 2013Encryption and key management in AWS (SEC304) | AWS re:Invent 2013
Encryption and key management in AWS (SEC304) | AWS re:Invent 2013
 
Incident Response in the Cloud | AWS Public Sector Summit 2017
Incident Response in the Cloud | AWS Public Sector Summit 2017Incident Response in the Cloud | AWS Public Sector Summit 2017
Incident Response in the Cloud | AWS Public Sector Summit 2017
 
AWS re:Invent 2016: Advanced Techniques for Managing Sensitive Data in the Cl...
AWS re:Invent 2016: Advanced Techniques for Managing Sensitive Data in the Cl...AWS re:Invent 2016: Advanced Techniques for Managing Sensitive Data in the Cl...
AWS re:Invent 2016: Advanced Techniques for Managing Sensitive Data in the Cl...
 
Protecting Your Data with Encryption on AWS
Protecting Your Data with Encryption on AWSProtecting Your Data with Encryption on AWS
Protecting Your Data with Encryption on AWS
 
Practical Steps to Hack-Proofing AWS
Practical Steps to Hack-Proofing AWSPractical Steps to Hack-Proofing AWS
Practical Steps to Hack-Proofing AWS
 
AWS 201 - A Walk through the AWS Cloud: AWS Security Best Practices
AWS 201 - A Walk through the AWS Cloud: AWS Security Best PracticesAWS 201 - A Walk through the AWS Cloud: AWS Security Best Practices
AWS 201 - A Walk through the AWS Cloud: AWS Security Best Practices
 
The 2014 AWS Enterprise Summit - Understanding AWS Security
The 2014 AWS Enterprise Summit - Understanding AWS SecurityThe 2014 AWS Enterprise Summit - Understanding AWS Security
The 2014 AWS Enterprise Summit - Understanding AWS Security
 
Understanding AWS Security
Understanding AWS SecurityUnderstanding AWS Security
Understanding AWS Security
 
AWS Security: A Practitioner's Perspective
AWS Security: A Practitioner's PerspectiveAWS Security: A Practitioner's Perspective
AWS Security: A Practitioner's Perspective
 
AWS Re:Invent - Securing HIPAA Compliant Apps in AWS
AWS Re:Invent - Securing HIPAA Compliant Apps in AWSAWS Re:Invent - Securing HIPAA Compliant Apps in AWS
AWS Re:Invent - Securing HIPAA Compliant Apps in AWS
 
Intro & Security Update
Intro & Security UpdateIntro & Security Update
Intro & Security Update
 
Aws(in)security - the devil is in the detail
Aws(in)security - the devil is in the detailAws(in)security - the devil is in the detail
Aws(in)security - the devil is in the detail
 

Similar to Building a Hyper Secure VPC on AWS with Puppet

Similar to Building a Hyper Secure VPC on AWS with Puppet (20)

Europe Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud servicesEurope Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud services
 
Shifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istioShifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istio
 
Security and Advanced Automation in the Enterprise
Security and Advanced Automation in the EnterpriseSecurity and Advanced Automation in the Enterprise
Security and Advanced Automation in the Enterprise
 
CoreOS and cloud provider integration: simple cloud-init example at Exoscale
CoreOS and cloud provider integration: simple cloud-init example at ExoscaleCoreOS and cloud provider integration: simple cloud-init example at Exoscale
CoreOS and cloud provider integration: simple cloud-init example at Exoscale
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Dockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx CasablancaDockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx Casablanca
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
How to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsHow to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startups
 
[DevDay 2016] OpenStack and approaches for new users - Speaker: Chi Le – Head...
[DevDay 2016] OpenStack and approaches for new users - Speaker: Chi Le – Head...[DevDay 2016] OpenStack and approaches for new users - Speaker: Chi Le – Head...
[DevDay 2016] OpenStack and approaches for new users - Speaker: Chi Le – Head...
 
Gentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetesGentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetes
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Securing the Infrastructure and the Workloads of Linux Containers
Securing the Infrastructure and the Workloads of Linux ContainersSecuring the Infrastructure and the Workloads of Linux Containers
Securing the Infrastructure and the Workloads of Linux Containers
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
 
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
 
Net core, mssql, container und kubernetes
Net core, mssql, container und kubernetesNet core, mssql, container und kubernetes
Net core, mssql, container und kubernetes
 
IBM Multicloud Management on the OpenShift Container Platform
IBM Multicloud Management on theOpenShift Container PlatformIBM Multicloud Management on theOpenShift Container Platform
IBM Multicloud Management on the OpenShift Container Platform
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
 
Securing Your Cloud with Xen (CloudOpen NA 2013)
Securing Your Cloud with Xen (CloudOpen NA 2013)Securing Your Cloud with Xen (CloudOpen NA 2013)
Securing Your Cloud with Xen (CloudOpen NA 2013)
 
Introduction to Cloudify for OpenStack users
Introduction to Cloudify for OpenStack users Introduction to Cloudify for OpenStack users
Introduction to Cloudify for OpenStack users
 

More from Tim Nolet

More from Tim Nolet (6)

Five things I learned building s Saas App with Vue.js
Five things I learned building s Saas App with Vue.jsFive things I learned building s Saas App with Vue.js
Five things I learned building s Saas App with Vue.js
 
Advanced deployment strategies and workflows for containerized app on DC/OS
Advanced deployment strategies and workflows for containerized app on DC/OSAdvanced deployment strategies and workflows for containerized app on DC/OS
Advanced deployment strategies and workflows for containerized app on DC/OS
 
Continuous Delivery Amsterdam Meetup
Continuous Delivery Amsterdam MeetupContinuous Delivery Amsterdam Meetup
Continuous Delivery Amsterdam Meetup
 
Advanced application delivery on DCOS
Advanced application delivery on DCOSAdvanced application delivery on DCOS
Advanced application delivery on DCOS
 
Vert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCDVert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCD
 
Service Discovery for Continuous Delivery with Docker
Service Discovery for Continuous Delivery with DockerService Discovery for Continuous Delivery with Docker
Service Discovery for Continuous Delivery with Docker
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Building a Hyper Secure VPC on AWS with Puppet