35
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Andrew Kiggins, Solutions Architect April 19, 2016 Network Security and Access Control within AWS

Network Security and Access Control within AWS

Embed Size (px)

Citation preview

Page 1: Network Security and Access Control within AWS

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Andrew Kiggins, Solutions Architect

April 19, 2016

Network Security and Access

Control within AWS

Page 2: Network Security and Access Control within AWS

What to expect from the session

• Configure network security using VPC

• Configure users, groups and roles to manage

actions

• Configure monitoring and logging to audit

changes

Page 3: Network Security and Access Control within AWS

Network security

Page 4: Network Security and Access Control within AWS

Network security tools

• Amazon VPC

• Subnet

• Security groups

• Network ACLs

• Amazon CloudFront

• Amazon Route 53

• IP tables

Page 5: Network Security and Access Control within AWS

VPC

VPC (BuildABeer-VPC-1)

security group (BuildABeer-SG-1)

HTTP GET Beer

TCP(6) Port(80)

NTP Buffer Overrun

UDP(17) Port(123)

Page 6: Network Security and Access Control within AWS

Network ACL

VPC (BuildABeer-VPC-1)

security group (BuildABeer-SG-1)

HTTP GET Beer

TCP(6) Port(80)

HTTP GET Beer

TCP(6) Port(80)

srcIP=216.246.16.228

Page 7: Network Security and Access Control within AWS

VPC (BuildABeer-VPC-1)

Obfuscate

Amazon

Route 53

CloudFront

Userssecurity group (BuildABeer-SG-1)

Public subnet

servers

Private subnet

ELB

Page 8: Network Security and Access Control within AWS

FAIL

Page 9: Network Security and Access Control within AWS

End run

VPC (BuildABeer-VPC-1)

Amazon

Route 53

CloudFront

security group (BuildABeer-SG-1)

Public subnet

servers

Private subnet

ELB load

balancer

www.foo.com

mail.foo.com

security group (BuildABeer-SG-1)

Public subnet

Mail servers

Private subnet

Elastic Load Balancing

load balancer

security group (BuildABeer-SG-2)

Public subnet

Web servers

Private subnet

ELB load balancer

mail.foo.com

www.foo.com

Page 10: Network Security and Access Control within AWS

Hide ’n’ go seek~>nslookup www.buildabeer.com

Server: 10.43.23.72

Address: 10.43.23.72#53

Non-authoritative answer:

www.buildabeer.us canonical name = d3u9qbug2y23to.cloudfront.net.

Name: d3u9qbug2y23to.cloudfront.net

Address: 52.84.20.173

<snip>

Name: d3u9qbug2y23to.cloudfront.net

Address: 52.84.20.85

~>nslookup ftp.buildabeer.com

Server: 10.43.23.72

Address: 10.43.23.72#53

Non-authoritative answer:

ftp.buildabeer canonical name = bab-elb-1-916251722.us-west-2.elb.amazonaws.com.

Name: bab-elb-1-916251722.us-west-2.elb.amazonaws.com

Address: 54.148.117.41

<snip>

Page 11: Network Security and Access Control within AWS

Layers of defense

VPC (BuildABeer-VPC-1)

userssecurity group (BuildABeer-SG-1)

Private subnet

Web

servers

Private subnet

ELBSecurity services

(IPS/IDS, WAF,

Firewall)

Public subnet

Page 12: Network Security and Access Control within AWS

Access denied

Page 13: Network Security and Access Control within AWS

Access points to AWS

AWS Command Line Interface API AWS Management Console~>aws ec2 describe-instances

{

"Reservations": [

{

"Groups": [],

"Instances": [

{

"KeyName": "kiggins-bab-ec1-t2micro-keypair_0217",

"VirtualizationType": "hvm",

"AmiLaunchIndex": 0,

"SourceDestCheck": true,

"PublicIpAddress": "52.37.47.60",

"Architecture": "x86_64",

"RootDeviceType": "ebs",

#!/usr/bin/python3

import boto3

# Get the service resource

ec2 = boto3.resource('ec2')

# Print out each ec2 instance

for instance in ec2.instances.all():

print(instance)

Page 14: Network Security and Access Control within AWS

Who can access resources

• Accounts

• Users

• AWS Identity and Access

Management (IAM) Users

• Federated users

• Groups

• Roles

• Services

IAM role

IAM users

IAM groups

Amazon EC2

Federated user

Page 15: Network Security and Access Control within AWS

Restricted access best practices

• Do not use the root account

• Create an administrative account

• Enable MFA

• Enforce strong passwords

• Use groups to assign permissions

• Use cross account access for secure logging

Page 16: Network Security and Access Control within AWS

Managing your policies

• IAM policies

• Managed policies

• Inline policies

• Resource-based policies

Page 17: Network Security and Access Control within AWS

IAM policies

• Managed policies (newer way)

• Can be attached to multiple users, groups, and roles

• AWS managed policies: Created and maintained by AWS

• Customer managed policies: Created and maintained by you

• Up to 5K per policy

• Up to 5 versions of a policy so you can roll back to a prior version

• You can attach 10 managed policies per user, group, or role

• You can limit who can attach which managed policies

• Inline policies (older way)

• You create and embed directly in a single user, group, or role

• Variable policy size (2K per user, 5K per group, 10K per role)

Page 18: Network Security and Access Control within AWS

Beyond IAM

Amazon Directory Services

AD Connector

Customer Identity Broker

AWS Directory

Service

SEC307 A Progressive Journey Through AWS IAM Federation Options

- https://www.youtube.com/watch?v=-XARG9W2bGc

Page 19: Network Security and Access Control within AWS

Configuring logging and

monitoring

Page 20: Network Security and Access Control within AWS

Services

• AWS CloudTrail

• AWS Config

• Amazon Inspector

• VPC Flow Logs

Page 21: Network Security and Access Control within AWS

AWS CloudTrail

us-east-2

Page 22: Network Security and Access Control within AWS

Introduction to AWS CloudTrail

Store/ archive

Troubleshoot

Monitor and alarm

You are making API

calls...

On a growing set of AWS

services around the world..

CloudTrail is continuously

recording API calls

Amazon Elastic

Block Store

(Amazon EBS)

Amazon S3

bucket

Page 23: Network Security and Access Control within AWS

Use cases enabled by CloudTrail

• IT and security administrators can perform security

analysis

• IT administrators and DevOps engineers can attribute

changes on AWS resources to the identity, time and

other critical details of who made the change

• DevOps engineers can troubleshoot operational issues

• IT auditors can use log files as a compliance aid

• See: Security at Scale: Logging in AWS White Paper

Page 24: Network Security and Access Control within AWS

AWS Config

• Get inventory of AWS resources

• Discover new and deleted resources

• Record configuration changes continuously

• Get notified when configurations change

Page 25: Network Security and Access Control within AWS

AWS Config

Page 26: Network Security and Access Control within AWS

AWS Config

Page 27: Network Security and Access Control within AWS

• Check configuration changes

• Periodic

• Event driven

• Rules

• Pre-built rules provided by AWS

• Custom rules using AWS Lambda

• Use dashboard for visualizing compliance and

identifying offending changes

Compliance guideline Action if noncompliance

All EBS volumes should be encrypted Encrypt volumes

Instances must be within a VPC Terminate instance

Instances must be tagged with

environment type

Notify developer (email, page,

Amazon SNS)

AWS Config Rules

Page 28: Network Security and Access Control within AWS

AWS Config Rules (Example—instances must be tagged with a data classification)

Page 29: Network Security and Access Control within AWS

Amazon Inspector

• Vulnerability Assessment Service

• Built from the ground up to support DevOps model

• Automatable by using API actions

• AWS Context Aware

• Static and dynamic telemetry

• Integrated with CI/CD tools

• On-demand pricing model

• CVE and CIS rules packages

• AWS AppSec best practices

Page 30: Network Security and Access Control within AWS

Rule packages

• CVE (common vulnerabilities and exposures)

• 1000+ rules evaluated

• CIS (Center for Internet Security Benchmarks)

• OS hardening

• Vulnerability

• Patch

• Inventory

• Compliance

• AWS Security best practices

• AppSec learnings

Page 31: Network Security and Access Control within AWS

VPC Flow Logs

Page 32: Network Security and Access Control within AWS

Dumping out the heavy hitter IP addresses

#!/usr/bin/python3

import boto3

# Get the service resource

logs = boto3.client(’logs’)

# Get the log groups

groups = logs.describe_log_groups()

for logGroup in groups[’logGroups’] :

# Get the LogStream for each logGroup

logStreamsDesc = logs.describe_log_streams(logGroupName=logGroup[’logGroupName’])

for logStream in logStreamsDesc[’logStreams’]:

events_resp = logs.get_log_events(logGroupName=logGroup[’logGroupName’], logStreamName=logStream[’logStreamName’])

# Store each log entry by the src IP address

ip_dict = {}

for event in events_resp[’events’] :

ip = event[cd ’message’].split()[4]

if ip in ip_dict:

ip_dict[ip] = ip_dict[ip] + 1

else :

ip_dict[ip] = 1

for w in sorted(ip_dict, key=ip_dict.get, reverse=True):

print (’{0:15} {1:8d}’.format(w, ip_dict[w]))

#Early exit

exit()

Page 33: Network Security and Access Control within AWS

Partners

Page 34: Network Security and Access Control within AWS

Thank you!

aws.amazon.com/security

aws.amazon.com/compliance

Page 35: Network Security and Access Control within AWS

Remember to complete

your evaluations!

Remember to complete

your evaluations!