SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Brigid Johnson, AWS Identity and Access Management
November 29, 2016
SEC311
How to Automate
Policy Validation
Which entities can call powerful actions?
What to Expect from the Session
• Know why and when to validate policies
• Learn the tools available for policy validation
• Explore three common scenarios for policy validation
• See demonstrations using AWS Config, AWS Lambda,
and Amazon SNS to validate policy changes.
Policy Review
Policy Overview
Policies specify what AWS service actions users and systems are
allowed to perform on which resources.
Example: Amazon S3 Read-Only
Example of an IAM user/group/role access policy
{
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:Get*", "s3:List*"],
"Resource": "*"
}
]
}
JSON-formatted documents
Contain a statement (permissions)
which specify:
What actions a principal can perform
Which resources can be accessed
Note: Access is denied by default.
Identity-based policies
Attached to an IAM user, group,
or role.
Types of Policies for Access Control
Resource-based policies
Attached to a resource to specify
who has access to the resource.
 Amazon S3 buckets
 Amazon Glacier vaults
 Amazon SNS topics
 Amazon SQS queues
 AWS KMS keys
Policy Structure
Principal: Entity allowed or denied access to a resource.
Required for resource-based, but not IAM policies.
Policies contain one ore more statement. Each statement is the
following elements.
Action: Service and actions.
Resource: Object(s) the actions can be performed on.
Conditions: Conditions for when the statement is in effect.
Policy Validation Scenarios
Why Validate?
There are some powerful actions in AWS
 IAM:Put(User, Group, Role)Policy – Updates an inline policy.
 S3:PutBucketPolicy – Updates S3 bucket policy.
 KMS:Decrypt – Decrypts KMS ciphertext.
Ensure access to critical resources is limited
 S3 bucket with sensitive information.
 EC2 instance that runs a service critical to your business.
Permission Scenarios to Validate
Determine the IAM entities that are allowed to:
#1 Call powerful actions
#2 Access a critical resource
#3 Launch EC2 instances in restricted regions
Tools for Validation
Manual Option #1
Use the IAM console to validate access
Manual Option #2
Use the IAM policy simulator to validate access
APIs For Automation
Two APIs available for programmatic policy validation
IAM:SimulatePrincipalPolicy: Simulate the set of IAM policies attached to an
IAM user, group, or role to determine the policies' effective permissions for a
list of API actions and AWS resources.
IAM:SimulateCustomPolicy: Simulate a set of IAM policies and optionally a
resource policy that is not attached to an IAM entity to determine the policies’
effective permissions for a list of API actions and AWS resources.
Simulate Principal Policy
Inputs
policy-source-arn
policy-input-list(optional)
action-names
resource-arns(default *)
resource-policy(optional)
resource-owner(optional)
caller-arn(default sourceARN)
context-entries(optional)
resource-handling-
option(optional)
Outputs
EvaluationResults (list)
EvalActionName
EvalResourceName
EvalDecision
MatchedStatements(list)
EvalDecision:
• allowed
• explicitDeny
• implicitDeny
Simulate Principal Policy
aws iam simulate-principal-policy
--policy-source-arn
arn:aws:iam::112233445566:user/Casey
--action-names
"iam:putuserpolicy"
Let’s see what it looks like on the command line
IAM User ARN
Powerful action
Simulate Principal Policy
Here is the output from our command.
Oh Bother!
Simulate Custom Policy
Inputs
policy-input-list
action-names
resource-arns(default *)
resource-policy(optional)
resource-owner(optional)
caller-arn(default sourceARN)
context-entries(optional)
resource-handling-
option(optional)
Outputs
EvaluationResults (list)
EvalActionName
EvalResourceName
EvalDecision
MatchedStatements(list)
Quick Recap
• Policy refresher
• Scenarios
• Policy simulator APIs
So how do we automate?
How do we get this list?
AWS Services to Help us Automate
AWS Lambda AWS Config Rules Amazon SNS
Run policy validation to
determine if a user, group,
role, or policy is
compliant. This can be
scheduled or triggered by
a change.
Use AWS Config rules to
trigger validation
functions when an IAM
entity changes.
Notify when Lambda
policy validation
function finds an
invalid permission.
Two Solutions for Validation
Periodic Audit
Scheduled validation on
users, groups, and roles to
audit permissions.
Configuration Change
Run validation when a
change on an IAM resource
has been made.
Solution Architecture
AWS Lambda
AWS Config Rules
Amazon SNS
Run policy validation
on resources to check
if they are compliant.
Trigger Lambda
function when a user,
group, role, or policy
changes.
Alert when compliant
status changes based
on Lambda validation.
1
2
3
Solution Architecture
AWS Config
Trigger Lambda
function when a user,
group, role, or policy
changes or set a
schedule to audit
resources.
Three types of AWS Config rules to support our
scenarios. These rules use AWS Lambda functions
that you create to determine if IAM resources are
complaint or not.
1) Validate Powerful Actions
2) Validate Critical Resources
3) Validate Restricted Regions for EC2
Solution Architecture
AWS Lambda
Run policy validation
on resources to check
if they are compliant.
Three types of Lambda functions for each AWS
Config rule. These functions use IAM policy
simulator APIs to validate permissions.
1) Validate Powerful Actions
2) Validate Critical Resources
3) Validate Restricted Regions for EC2
Solution Architecture
Amazon SNS
Alert when compliant
status changes based
on permission
validation.
1 SNS topic to report when an IAM resource
changes status. Customers can subscribe to SNS
topics to receive near real-time notifications.
SNS Notification
New Compliance Change Record:
----------------------------
{ "awsAccountId": "028103658970",
"configRuleName": "powerful_actions_policy_validation_pre",
"resourceType": "AWS::IAM::User",
"resourceId": "AIDAJEWF7IMZXWB7AVHX2",
"awsRegion": "us-east-1",
...
"complianceType": "NON_COMPLIANT",
"resultRecordedTime": "2016-11-21T20:32:39.821Z",
"configRuleInvokedTime": "2016-11-21T20:29:20.684Z",
"annotation": "Entity: arn:aws:iam:028103658970::user/Casey is
NON_COMPLIANT for validation of powerful actions access.",
"resultToken": null
},
"oldEvaluationResult": "COMPLIANT",
...
}
You’ve
Got Mail!
Lambda Function
Core Elements of the Lambda Function
Inputs
1. IAM resource.
2. Related
resources.
3. Resource
policies.
Validation
Simulate
permissions of
related entities.
Outputs
1. IAM resource
information
2. COMPLIANT or
NOT_COMPLIANT
Lambda Function Evaluation Logic
Send
Result
Simulate
Principal
Send
Result
For Each
User
Simulate
Policy
Send
Result
For Each
Attached
Entity
Simulate
Principal
User or
Role
Group
Managed
Policy
Lambda Function
Validate Powerful Actions
Inputs
# Resource types this function can evaluate
APPLICABLE_RESOURCES = ["AWS::IAM::User",
"AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"]
# Actions that we will simulate to determine compliance
POWERFUL_ACTIONS = ['iam:putrolepolicy', 's3:putbucketpolicy']
def evaluate_compliance(configuration_item, result_token):
resource_name = configuration_item["resourceName"]
resource_arn = configuration_item["ARN"]
timestamp = configuration_item["configurationItemCaptureTime"]
resource_type = configuration_item["resourceType"]
resource_id = configuration_item["resourceId"]
Define list of
actions
Information
for
simulation
Simulate - Principal
def simulate_principal_policy(iam, resource_arn):
# Call IAM to simulate the policy on restricted actions.
response = iam.simulate_principal_policy(PolicySourceArn=resource_arn,
ActionNames=POWERFUL_ACTIONS,
ResourceArns=['*'])
results = response['EvaluationResults']
allows_powerful_action = False
# Determine if any restricted actions are allowed.
for actions in results:
eval_decision = actions['EvalDecision']
if(eval_decision == 'allowed'):
action_name = actions['EvalActionName']
print "Restricted action " + action_name + " granted “ + resource_arn
allows_powerful_action = True
# If any restricted actions were allowed, consider the resource non-compliant.
if(allows_powerful_action):
return "NON_COMPLIANT"
return "COMPLIANT"
Run
simulation
Evaluate
result
Determine
compliance
Simulate - Policy
def simulate_managed_policy(iam, policy_arn):
# Retrieve the policy.
get_policy_response = iam.get_policy(PolicyArn=policy_arn)
default_version = get_policy_response["Policy"]["DefaultVersionId"]
get_policy_version_response = iam.get_policy_version(
PolicyArn=policy_arn,
VersionId=default_version)
policy_document = json.dumps(
get_policy_version_response["PolicyVersion"]["Document"])
Get policy for
simulation
Simulate – Policy Continued
# Simulate the policy
simulation_response = iam.simulate_custom_policy(
PolicyInputList=[policy_document],
ActionNames=POWERFUL_ACTIONS,
ResourceArns=["*"])
results = simulation_response['EvaluationResults']
allows_powerful_action = False
# Determine if any restricted actions are allowed.
for actions in results:
evalDecision = actions['EvalDecision']
if(evalDecision == 'allowed'):
actionName = actions['EvalActionName']
print "Restricted action " + actionName + " granted to " + policy_arn
allows_powerful_action = True
# If any restricted actions were allowed, consider the resource non-compliant.
if(allows_powerful_action):
return "NON_COMPLIANT"
return "COMPLIANT"
Run
simulation
Evaluate
result
Determine
compliance
Sent Result to AWS Config
def record_results(config, compliance_result, result_token, resource_type,
resource_id, resource_arn, timestamp):
# Call Config to record the results of our evaluation.
annotation = "Entity: " + resource_arn + " is " + compliance_result + " for
validation of powerful actions access."
config.put_evaluations(
Evaluations=[
{
"ComplianceResourceType": resource_type,
"ComplianceResourceId": resource_id,
"ComplianceType": compliance_result,
"Annotation": annotation,
"OrderingTimestamp": timestamp
},
],
ResultToken=result_token
)
Pro Tip: You
can put
evaluations
for any
resource
Support Functions
get_users_for_group: gets a list of all users in a group
simulate_group: simulates group and each user in it
evaluate_compliance: coordinates evaluation of entities
Demo
Use Case: Validate which users, groups, roles, and policies
have access to invoke powerful actions.
1. Create a role for the Lambda function
2. Create the Lambda function
3. Create a AWS Config rule
4. Run and test
Lambda Role Policy
{ "Version": "2012-10-17",
"Statement": [
{ "Sid": "AllowLambdaSimulateAccess",
"Effect": "Allow",
"Action": [
"config:GetResourceConfigHistory",
"config:PutEvaluations",
"config:StartConfigRulesEvaluation",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:SimulateCustomPolicy",
"iam:SimulatePrincipalPolicy",
"iam:ListEntitiesforPolicy",
"iam:GetGroup",
"logs:*",
"s3:GetBucketPolicy"],
"Resource": ["*"]}]}
Lambda Function
Validate Critical Resources
Inputs
# Resource types this function can evaluate
APPLICABLE_RESOURCES = ["AWS::IAM::User",
"AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"]
# Actions non-compliant on a specific resource
ACTIONS = ['s3:GetObject']
# The critical bucket
BUCKET_ARN = "arn:aws:s3:::aws-reinvent-session-311-hr/*"
BUCKET_NAME = "aws-reinvent-session-311-hr"
def evaluate_compliance(configuration_item, result_token):
resource_name = configuration_item["resourceName"]
resource_arn = configuration_item["ARN"]
timestamp = configuration_item["configurationItemCaptureTime"]
resource_type = configuration_item["resourceType"]
resource_id = configuration_item["resourceId"]
Define list of
actions
Define critical
resource
Simulate - Principal
def simulate_principal_policy(iam, resource_arn):
# Get the resource-based policy
bucket_policy=get_bucket_policy()
# Call IAM to simulate the policy on critical resources.
if(bucket_policy is not None and resource_type == "AWS::IAM::User"):
response = iam.simulate_principal_policy(
PolicySourceArn=resource_arn,
ActionNames=ACTIONS,
ResourceArns=[BUCKET_ARN],
ResourcePolicy=bucket_policy)
else:
response =
iam.simulate_principal_policy(PolicySourceArn=resource_arn,
ActionNames=ACTIONS,ResourceArns=[BUCKET_ARN])
results = response['EvaluationResults']
allows_critical_resource = False
Get the
bucket policy
Simulate with
bucket policy
Simulate
without
bucket policy
Simulate - Policy
def simulate_managed_policy(iam, policy_arn):
# Retrieve the policy.
get_policy_response = iam.get_policy(PolicyArn=policy_arn)
default_version = get_policy_response["Policy"]["DefaultVersionId"]
get_policy_version_response = iam.get_policy_version(
PolicyArn=policy_arn,
VersionId=default_version)
policy_document = json.dumps(
get_policy_version_response["PolicyVersion"]["Document"])
Get policy for
simulation
Simulate – Policy Continued
# Simulate the policy
simulation_response =
iam.simulate_custom_policy(PolicyInputList=[policy_document],
ActionNames=ACTIONS,
ResourceArns=[BUCKET_ARN])
results = simulation_response['EvaluationResults']
allows_critical_resource = False
# Determine if any action is allowed on the critical resource.
for actions in results:
evalDecision = actions['EvalDecision']
if(evalDecision == 'allowed'):
actionName = actions['EvalActionName']
print “Access to " + BUCKET_ARN + " allowed by " + policy_arn
allows_critical_resource = True
# If any access to critical resources are allowed then non-compliant.
if(allows_critical_resource):
return "NON_COMPLIANT"
return "COMPLIANT"
Run
simulation
Support Functions
get_users_for_group: gets a list of all users in a group
simulate_group: simulates group and each user in it
evaluate_compliance: coordinates evaluation of entities
New!
get_bucket_policy: gets the bucket policy for a bucket
Demo
Use Case: Validate which users, groups, roles, and policies
have access to critical resources
1. Create the Lambda function
2. Create a AWS Config rule
3. Run and test
Lambda Function
Validate Restricted EC2 Regions
Restricted Regions Policy
{"Version": "2012-10-17",
"Statement": [{
"Sid": "THISALLOWSEC2ReadandRuninRegion",
"Effect": "Allow",
"Action": ["ec2:Describe*",
"ec2:RunInstances"],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": ["us-west-1", "us-west-2"]
}}},
{
"Effect": "Allow",
"Action": ["iam:PassRole"],
"Resource": "arn:aws:iam::028103658970:role/app-mobile-ec2-role"
},
{
"Effect": "Allow",
"Action": ["iam:List*"],
"Resource": "*"
}]}
Context keys
and values
Inputs
# Resource types this function can evaluate
APPLICABLE_RESOURCES = ["AWS::IAM::User",
"AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"]
# Actions that we will simulate to determine compliance
ACTIONS = ['ec2:RunInstances']
# Condion keys and values we consider non-compliant
CONTEXT_KEY_NAME = "ec2:Region"
CONTEXT_KEY_VALUES = ["us-east-1", "us-east-2"]
def evaluate_compliance(configuration_item, result_token):
resource_name = configuration_item["resourceName"]
resource_arn = configuration_item["ARN"]
timestamp = configuration_item["configurationItemCaptureTime"]
resource_type = configuration_item["resourceType"]
resource_id = configuration_item["resourceId"]
Define list of
actions
Define
conditions
Simulate - Principal
allows_restricted_regions = False
for contextValue in CONTEXT_KEY_VALUES:
# Call IAM to simulate the policy on restricted actions.
context = {'ContextKeyName': CONTEXT_KEY_NAME, 'ContextKeyValues':
[contextValue], 'ContextKeyType': 'string'}
response = iam.simulate_principal_policy(PolicySourceArn=resource_arn,
ActionNames=ACTIONS,ResourceArns=['*'],ContextEntries=[context])
results = response['EvaluationResults']
# Determine if the simulation allowed action in restricted region.
for actions in results:
eval_decision = actions['EvalDecision']
if(eval_decision == 'allowed'):
action_name = actions['EvalActionName']
print "Restricted " + action_name + " granted to " + resource_arn
allows_restricted_regions = True
# If any restricted regions were allowed, consider the resource non-compliant.
if(allows_restricted_regions):
return "NON_COMPLIANT"
return "COMPLIANT"
Set the
context
Simulate
Simulate – Policy Continued
allows_restricted_regions = False
for contextValue in CONTEXT_KEY_VALUES:
# Simulate the policy
context = {'ContextKeyName': CONTEXT_KEY_NAME, 'ContextKeyValues':
[contextValue], 'ContextKeyType': 'string'}
simulation_response = iam.simulate_custom_policy(
PolicyInputList=[policy_document],
ActionNames=ACTIONS,ResourceArns=['*'],ContextEntries=[context])
results = simulation_response['EvaluationResults']
# Determine if the simulation allowed action in restricted region.
for actions in results:
evalDecision = actions['EvalDecision']
if(evalDecision == 'allowed'):
actionName = actions['EvalActionName']
print "Restricted " + actionName + " granted to " + policy_arn
allows_restricted_regions = True
# If any restricted regions were allowed, consider the resource non-compliant.
if(allows_restricted_regions):
return "NON_COMPLIANT"
return "COMPLIANT"
Set the
context
Simulate
Let’s Recap
• Check multiple powerful actions
• Check actions on specific critical resources
• Check actions with context keys and values
What else is possible
• Use AWS Config to run recurring permission validation
every 24 hours.
• Invoke a reactive action to non-compliant IAM entities
using your Lambda function.
• Include a whitelist of entities that are allowed these
permissions.
• Parse your policies.
What Else?
Stop by the Security Booth to discuss your ideas
Additional Resources
AWS Config Documentation
- Supported Resources, Configuration Items, and
Relationships
- API on ConfigurationItem
AWS DevOps Blog
How to Centrally Manage AWS Config Rules across Multiple
AWS Accounts
Get the Code
Lambda functions available in this location:
Bucket Link:
https://s3.amazonaws.com/awsiammedia/public/sample/SE
C311automatingpolicyvalidation/
Powerful Actions:
iam-policy-validate-powerfulActions.py
Critical Resources:
iam-policy-validate-criticalResources.py
Restricted Regions:
iam-policy-validate-restrictedRegions.py
Thank you!
Remember to complete
your evaluations!

Más contenido relacionado

La actualidad más candente

Introduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CIntroduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CJoonas Westlin
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep DiveAmazon Web Services Korea
 
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018Amazon Web Services Korea
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)Amazon Web Services Korea
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon Web Services Korea
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationVengata Guruswamy
 
(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep DiveAmazon Web Services
 
AWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAmazon Web Services
 
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQL
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQLAnnouncing Amazon Athena - Instantly Analyze Your Data in S3 Using SQL
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQLAmazon Web Services
 
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksDeep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksAmazon Web Services
 
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWSAmazon Web Services Korea
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Databaserockplace
 
Aws organizations
Aws organizationsAws organizations
Aws organizationsOlaf Conijn
 

La actualidad más candente (20)

Introduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2CIntroduction to Azure AD and Azure AD B2C
Introduction to Azure AD and Azure AD B2C
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
 
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
 
Introduction to AWS Glue
Introduction to AWS Glue Introduction to AWS Glue
Introduction to AWS Glue
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
 
AWS Secrets Manager
AWS Secrets ManagerAWS Secrets Manager
AWS Secrets Manager
 
Amazon Redshift Deep Dive
Amazon Redshift Deep Dive Amazon Redshift Deep Dive
Amazon Redshift Deep Dive
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub Implementation
 
(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive
 
AWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design Patterns
 
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQL
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQLAnnouncing Amazon Athena - Instantly Analyze Your Data in S3 Using SQL
Announcing Amazon Athena - Instantly Analyze Your Data in S3 Using SQL
 
AWS CloudWatch
AWS CloudWatchAWS CloudWatch
AWS CloudWatch
 
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksDeep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
 
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Database
 
AWS SQS SNS
AWS SQS SNSAWS SQS SNS
AWS SQS SNS
 
Introduction to Amazon Athena
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon Athena
 
Aws organizations
Aws organizationsAws organizations
Aws organizations
 
Sqs and loose coupling
Sqs and loose couplingSqs and loose coupling
Sqs and loose coupling
 

Destacado

AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...
AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...
AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...Amazon Web Services
 
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...Amazon Web Services
 
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...Amazon Web Services
 
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...Amazon Web Services
 
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...Amazon Web Services
 
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...Amazon Web Services
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)Amazon Web Services
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf
 
Development of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management DatabaseDevelopment of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management DatabaseDavid Rubino
 
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...Amazon Web Services
 
AWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS MeetupAWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS MeetupAriel Smoliar
 
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)Amazon Web Services
 
Introduction to DevSecOps on AWS
Introduction to DevSecOps on AWSIntroduction to DevSecOps on AWS
Introduction to DevSecOps on AWSAmazon Web Services
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...Amazon Web Services
 
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...Amazon Web Services
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAlex Zyl
 
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...Amazon Web Services
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)Amazon Web Services
 
Compliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” PrinciplesCompliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” PrinciplesAmazon Web Services
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 

Destacado (20)

AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...
AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...
AWS re:Invent 2016: 5 Security Automation Improvements You Can Make by Using ...
 
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...
AWS re:Invent 2016: Microservices, Macro Security Needs: How Nike Uses a Mult...
 
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
AWS re:Invent 2016: Automating Security Event Response, from Idea to Code to ...
 
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...
AWS re:Invent 2016: NEW SERVICE: Centrally Manage Multiple AWS Accounts with ...
 
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
 
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
 
Development of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management DatabaseDevelopment of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management Database
 
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...
AWS re:Invent 2016: Workshop: Using the Database Migration Service (DMS) for ...
 
AWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS MeetupAWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS Meetup
 
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)
AWS re:Invent 2016: Automated Formal Reasoning About AWS Systems (SEC401)
 
Introduction to DevSecOps on AWS
Introduction to DevSecOps on AWSIntroduction to DevSecOps on AWS
Introduction to DevSecOps on AWS
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
 
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...
AWS re:Invent 2016: Optimizing Network Performance for Amazon EC2 Instances (...
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparison
 
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...
AWS re:Invent 2016: Predictive Security: Using Big Data to Fortify Your Defen...
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)
AWS re:Invent 2016: Deep Dive on Amazon Elastic File System (STG202)
 
Compliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” PrinciplesCompliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” Principles
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 

Similar a AWS re:Invent 2016: How to Automate Policy Validation (SEC311)

Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAMKnoldus Inc.
 
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...Amazon Web Services
 
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...Amazon Web Services
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityAmazon Web Services
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101Goran Karmisevic
 
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...Amazon Web Services
 
AWS deployment and management Services
AWS deployment and management ServicesAWS deployment and management Services
AWS deployment and management ServicesNagesh Ramamoorthy
 
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...Amazon Web Services
 
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...Amazon Web Services
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityAmazon Web Services
 
Identify and Access Management: The First Step in AWS Security
Identify and Access Management: The First Step in AWS SecurityIdentify and Access Management: The First Step in AWS Security
Identify and Access Management: The First Step in AWS SecurityAmazon Web Services
 
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftIdentity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftAmazon Web Services
 
External Security Services Round: Security Week at the San Francisco Loft
External Security Services Round: Security Week at the San Francisco LoftExternal Security Services Round: Security Week at the San Francisco Loft
External Security Services Round: Security Week at the San Francisco LoftAmazon Web Services
 
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...Foundations: Understanding the Critical Building Blocks of AWS Identity and G...
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...Amazon Web Services
 
Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls Amazon Web Services
 

Similar a AWS re:Invent 2016: How to Automate Policy Validation (SEC311) (20)

Deep dive into AWS IAM
Deep dive into AWS IAMDeep dive into AWS IAM
Deep dive into AWS IAM
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAM
 
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
 
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...
Become an IAM Policy Master in 60 Minutes or Less (SEC316-R1) - AWS reInvent ...
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101
 
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...
The 1%: Identity and Governance Patterns from the Most Advanced AWS Customers...
 
AWS deployment and management Services
AWS deployment and management ServicesAWS deployment and management Services
AWS deployment and management Services
 
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...
Foundations - Understanding the Critical Building Blocks of AWS Identity & Go...
 
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...
AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC...
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 
Identify and Access Management: The First Step in AWS Security
Identify and Access Management: The First Step in AWS SecurityIdentify and Access Management: The First Step in AWS Security
Identify and Access Management: The First Step in AWS Security
 
SID314_IAM Policy Ninja
SID314_IAM Policy NinjaSID314_IAM Policy Ninja
SID314_IAM Policy Ninja
 
AWS core services
AWS core servicesAWS core services
AWS core services
 
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftIdentity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
 
External Security Services Round: Security Week at the San Francisco Loft
External Security Services Round: Security Week at the San Francisco LoftExternal Security Services Round: Security Week at the San Francisco Loft
External Security Services Round: Security Week at the San Francisco Loft
 
AWS IAM Introduction
AWS IAM IntroductionAWS IAM Introduction
AWS IAM Introduction
 
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...Foundations: Understanding the Critical Building Blocks of AWS Identity and G...
Foundations: Understanding the Critical Building Blocks of AWS Identity and G...
 
Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls
 
Becoming an IAM Policy Ninja
Becoming an IAM Policy NinjaBecoming an IAM Policy Ninja
Becoming an IAM Policy Ninja
 

Más de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Más de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Último

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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 WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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.pdfsudhanshuwaghmare1
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

AWS re:Invent 2016: How to Automate Policy Validation (SEC311)

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Brigid Johnson, AWS Identity and Access Management November 29, 2016 SEC311 How to Automate Policy Validation
  • 2. Which entities can call powerful actions?
  • 3. What to Expect from the Session • Know why and when to validate policies • Learn the tools available for policy validation • Explore three common scenarios for policy validation • See demonstrations using AWS Config, AWS Lambda, and Amazon SNS to validate policy changes.
  • 5. Policy Overview Policies specify what AWS service actions users and systems are allowed to perform on which resources. Example: Amazon S3 Read-Only Example of an IAM user/group/role access policy { "Statement": [ { "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "*" } ] } JSON-formatted documents Contain a statement (permissions) which specify: What actions a principal can perform Which resources can be accessed Note: Access is denied by default.
  • 6. Identity-based policies Attached to an IAM user, group, or role. Types of Policies for Access Control Resource-based policies Attached to a resource to specify who has access to the resource.  Amazon S3 buckets  Amazon Glacier vaults  Amazon SNS topics  Amazon SQS queues  AWS KMS keys
  • 7. Policy Structure Principal: Entity allowed or denied access to a resource. Required for resource-based, but not IAM policies. Policies contain one ore more statement. Each statement is the following elements. Action: Service and actions. Resource: Object(s) the actions can be performed on. Conditions: Conditions for when the statement is in effect.
  • 9. Why Validate? There are some powerful actions in AWS  IAM:Put(User, Group, Role)Policy – Updates an inline policy.  S3:PutBucketPolicy – Updates S3 bucket policy.  KMS:Decrypt – Decrypts KMS ciphertext. Ensure access to critical resources is limited  S3 bucket with sensitive information.  EC2 instance that runs a service critical to your business.
  • 10. Permission Scenarios to Validate Determine the IAM entities that are allowed to: #1 Call powerful actions #2 Access a critical resource #3 Launch EC2 instances in restricted regions
  • 12. Manual Option #1 Use the IAM console to validate access
  • 13. Manual Option #2 Use the IAM policy simulator to validate access
  • 14. APIs For Automation Two APIs available for programmatic policy validation IAM:SimulatePrincipalPolicy: Simulate the set of IAM policies attached to an IAM user, group, or role to determine the policies' effective permissions for a list of API actions and AWS resources. IAM:SimulateCustomPolicy: Simulate a set of IAM policies and optionally a resource policy that is not attached to an IAM entity to determine the policies’ effective permissions for a list of API actions and AWS resources.
  • 15. Simulate Principal Policy Inputs policy-source-arn policy-input-list(optional) action-names resource-arns(default *) resource-policy(optional) resource-owner(optional) caller-arn(default sourceARN) context-entries(optional) resource-handling- option(optional) Outputs EvaluationResults (list) EvalActionName EvalResourceName EvalDecision MatchedStatements(list) EvalDecision: • allowed • explicitDeny • implicitDeny
  • 16. Simulate Principal Policy aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::112233445566:user/Casey --action-names "iam:putuserpolicy" Let’s see what it looks like on the command line IAM User ARN Powerful action
  • 17. Simulate Principal Policy Here is the output from our command. Oh Bother!
  • 18. Simulate Custom Policy Inputs policy-input-list action-names resource-arns(default *) resource-policy(optional) resource-owner(optional) caller-arn(default sourceARN) context-entries(optional) resource-handling- option(optional) Outputs EvaluationResults (list) EvalActionName EvalResourceName EvalDecision MatchedStatements(list)
  • 19. Quick Recap • Policy refresher • Scenarios • Policy simulator APIs So how do we automate?
  • 20. How do we get this list?
  • 21. AWS Services to Help us Automate AWS Lambda AWS Config Rules Amazon SNS Run policy validation to determine if a user, group, role, or policy is compliant. This can be scheduled or triggered by a change. Use AWS Config rules to trigger validation functions when an IAM entity changes. Notify when Lambda policy validation function finds an invalid permission.
  • 22. Two Solutions for Validation Periodic Audit Scheduled validation on users, groups, and roles to audit permissions. Configuration Change Run validation when a change on an IAM resource has been made.
  • 23. Solution Architecture AWS Lambda AWS Config Rules Amazon SNS Run policy validation on resources to check if they are compliant. Trigger Lambda function when a user, group, role, or policy changes. Alert when compliant status changes based on Lambda validation. 1 2 3
  • 24. Solution Architecture AWS Config Trigger Lambda function when a user, group, role, or policy changes or set a schedule to audit resources. Three types of AWS Config rules to support our scenarios. These rules use AWS Lambda functions that you create to determine if IAM resources are complaint or not. 1) Validate Powerful Actions 2) Validate Critical Resources 3) Validate Restricted Regions for EC2
  • 25. Solution Architecture AWS Lambda Run policy validation on resources to check if they are compliant. Three types of Lambda functions for each AWS Config rule. These functions use IAM policy simulator APIs to validate permissions. 1) Validate Powerful Actions 2) Validate Critical Resources 3) Validate Restricted Regions for EC2
  • 26. Solution Architecture Amazon SNS Alert when compliant status changes based on permission validation. 1 SNS topic to report when an IAM resource changes status. Customers can subscribe to SNS topics to receive near real-time notifications.
  • 27. SNS Notification New Compliance Change Record: ---------------------------- { "awsAccountId": "028103658970", "configRuleName": "powerful_actions_policy_validation_pre", "resourceType": "AWS::IAM::User", "resourceId": "AIDAJEWF7IMZXWB7AVHX2", "awsRegion": "us-east-1", ... "complianceType": "NON_COMPLIANT", "resultRecordedTime": "2016-11-21T20:32:39.821Z", "configRuleInvokedTime": "2016-11-21T20:29:20.684Z", "annotation": "Entity: arn:aws:iam:028103658970::user/Casey is NON_COMPLIANT for validation of powerful actions access.", "resultToken": null }, "oldEvaluationResult": "COMPLIANT", ... } You’ve Got Mail!
  • 29. Core Elements of the Lambda Function Inputs 1. IAM resource. 2. Related resources. 3. Resource policies. Validation Simulate permissions of related entities. Outputs 1. IAM resource information 2. COMPLIANT or NOT_COMPLIANT
  • 30. Lambda Function Evaluation Logic Send Result Simulate Principal Send Result For Each User Simulate Policy Send Result For Each Attached Entity Simulate Principal User or Role Group Managed Policy
  • 32. Inputs # Resource types this function can evaluate APPLICABLE_RESOURCES = ["AWS::IAM::User", "AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"] # Actions that we will simulate to determine compliance POWERFUL_ACTIONS = ['iam:putrolepolicy', 's3:putbucketpolicy'] def evaluate_compliance(configuration_item, result_token): resource_name = configuration_item["resourceName"] resource_arn = configuration_item["ARN"] timestamp = configuration_item["configurationItemCaptureTime"] resource_type = configuration_item["resourceType"] resource_id = configuration_item["resourceId"] Define list of actions Information for simulation
  • 33. Simulate - Principal def simulate_principal_policy(iam, resource_arn): # Call IAM to simulate the policy on restricted actions. response = iam.simulate_principal_policy(PolicySourceArn=resource_arn, ActionNames=POWERFUL_ACTIONS, ResourceArns=['*']) results = response['EvaluationResults'] allows_powerful_action = False # Determine if any restricted actions are allowed. for actions in results: eval_decision = actions['EvalDecision'] if(eval_decision == 'allowed'): action_name = actions['EvalActionName'] print "Restricted action " + action_name + " granted “ + resource_arn allows_powerful_action = True # If any restricted actions were allowed, consider the resource non-compliant. if(allows_powerful_action): return "NON_COMPLIANT" return "COMPLIANT" Run simulation Evaluate result Determine compliance
  • 34. Simulate - Policy def simulate_managed_policy(iam, policy_arn): # Retrieve the policy. get_policy_response = iam.get_policy(PolicyArn=policy_arn) default_version = get_policy_response["Policy"]["DefaultVersionId"] get_policy_version_response = iam.get_policy_version( PolicyArn=policy_arn, VersionId=default_version) policy_document = json.dumps( get_policy_version_response["PolicyVersion"]["Document"]) Get policy for simulation
  • 35. Simulate – Policy Continued # Simulate the policy simulation_response = iam.simulate_custom_policy( PolicyInputList=[policy_document], ActionNames=POWERFUL_ACTIONS, ResourceArns=["*"]) results = simulation_response['EvaluationResults'] allows_powerful_action = False # Determine if any restricted actions are allowed. for actions in results: evalDecision = actions['EvalDecision'] if(evalDecision == 'allowed'): actionName = actions['EvalActionName'] print "Restricted action " + actionName + " granted to " + policy_arn allows_powerful_action = True # If any restricted actions were allowed, consider the resource non-compliant. if(allows_powerful_action): return "NON_COMPLIANT" return "COMPLIANT" Run simulation Evaluate result Determine compliance
  • 36. Sent Result to AWS Config def record_results(config, compliance_result, result_token, resource_type, resource_id, resource_arn, timestamp): # Call Config to record the results of our evaluation. annotation = "Entity: " + resource_arn + " is " + compliance_result + " for validation of powerful actions access." config.put_evaluations( Evaluations=[ { "ComplianceResourceType": resource_type, "ComplianceResourceId": resource_id, "ComplianceType": compliance_result, "Annotation": annotation, "OrderingTimestamp": timestamp }, ], ResultToken=result_token ) Pro Tip: You can put evaluations for any resource
  • 37. Support Functions get_users_for_group: gets a list of all users in a group simulate_group: simulates group and each user in it evaluate_compliance: coordinates evaluation of entities
  • 38. Demo Use Case: Validate which users, groups, roles, and policies have access to invoke powerful actions. 1. Create a role for the Lambda function 2. Create the Lambda function 3. Create a AWS Config rule 4. Run and test
  • 39. Lambda Role Policy { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLambdaSimulateAccess", "Effect": "Allow", "Action": [ "config:GetResourceConfigHistory", "config:PutEvaluations", "config:StartConfigRulesEvaluation", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:SimulateCustomPolicy", "iam:SimulatePrincipalPolicy", "iam:ListEntitiesforPolicy", "iam:GetGroup", "logs:*", "s3:GetBucketPolicy"], "Resource": ["*"]}]}
  • 41. Inputs # Resource types this function can evaluate APPLICABLE_RESOURCES = ["AWS::IAM::User", "AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"] # Actions non-compliant on a specific resource ACTIONS = ['s3:GetObject'] # The critical bucket BUCKET_ARN = "arn:aws:s3:::aws-reinvent-session-311-hr/*" BUCKET_NAME = "aws-reinvent-session-311-hr" def evaluate_compliance(configuration_item, result_token): resource_name = configuration_item["resourceName"] resource_arn = configuration_item["ARN"] timestamp = configuration_item["configurationItemCaptureTime"] resource_type = configuration_item["resourceType"] resource_id = configuration_item["resourceId"] Define list of actions Define critical resource
  • 42. Simulate - Principal def simulate_principal_policy(iam, resource_arn): # Get the resource-based policy bucket_policy=get_bucket_policy() # Call IAM to simulate the policy on critical resources. if(bucket_policy is not None and resource_type == "AWS::IAM::User"): response = iam.simulate_principal_policy( PolicySourceArn=resource_arn, ActionNames=ACTIONS, ResourceArns=[BUCKET_ARN], ResourcePolicy=bucket_policy) else: response = iam.simulate_principal_policy(PolicySourceArn=resource_arn, ActionNames=ACTIONS,ResourceArns=[BUCKET_ARN]) results = response['EvaluationResults'] allows_critical_resource = False Get the bucket policy Simulate with bucket policy Simulate without bucket policy
  • 43. Simulate - Policy def simulate_managed_policy(iam, policy_arn): # Retrieve the policy. get_policy_response = iam.get_policy(PolicyArn=policy_arn) default_version = get_policy_response["Policy"]["DefaultVersionId"] get_policy_version_response = iam.get_policy_version( PolicyArn=policy_arn, VersionId=default_version) policy_document = json.dumps( get_policy_version_response["PolicyVersion"]["Document"]) Get policy for simulation
  • 44. Simulate – Policy Continued # Simulate the policy simulation_response = iam.simulate_custom_policy(PolicyInputList=[policy_document], ActionNames=ACTIONS, ResourceArns=[BUCKET_ARN]) results = simulation_response['EvaluationResults'] allows_critical_resource = False # Determine if any action is allowed on the critical resource. for actions in results: evalDecision = actions['EvalDecision'] if(evalDecision == 'allowed'): actionName = actions['EvalActionName'] print “Access to " + BUCKET_ARN + " allowed by " + policy_arn allows_critical_resource = True # If any access to critical resources are allowed then non-compliant. if(allows_critical_resource): return "NON_COMPLIANT" return "COMPLIANT" Run simulation
  • 45. Support Functions get_users_for_group: gets a list of all users in a group simulate_group: simulates group and each user in it evaluate_compliance: coordinates evaluation of entities New! get_bucket_policy: gets the bucket policy for a bucket
  • 46. Demo Use Case: Validate which users, groups, roles, and policies have access to critical resources 1. Create the Lambda function 2. Create a AWS Config rule 3. Run and test
  • 48. Restricted Regions Policy {"Version": "2012-10-17", "Statement": [{ "Sid": "THISALLOWSEC2ReadandRuninRegion", "Effect": "Allow", "Action": ["ec2:Describe*", "ec2:RunInstances"], "Resource": "*", "Condition": { "StringEquals": { "ec2:Region": ["us-west-1", "us-west-2"] }}}, { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": "arn:aws:iam::028103658970:role/app-mobile-ec2-role" }, { "Effect": "Allow", "Action": ["iam:List*"], "Resource": "*" }]} Context keys and values
  • 49. Inputs # Resource types this function can evaluate APPLICABLE_RESOURCES = ["AWS::IAM::User", "AWS::IAM::Group","AWS::IAM::Role","AWS::IAM::Policy"] # Actions that we will simulate to determine compliance ACTIONS = ['ec2:RunInstances'] # Condion keys and values we consider non-compliant CONTEXT_KEY_NAME = "ec2:Region" CONTEXT_KEY_VALUES = ["us-east-1", "us-east-2"] def evaluate_compliance(configuration_item, result_token): resource_name = configuration_item["resourceName"] resource_arn = configuration_item["ARN"] timestamp = configuration_item["configurationItemCaptureTime"] resource_type = configuration_item["resourceType"] resource_id = configuration_item["resourceId"] Define list of actions Define conditions
  • 50. Simulate - Principal allows_restricted_regions = False for contextValue in CONTEXT_KEY_VALUES: # Call IAM to simulate the policy on restricted actions. context = {'ContextKeyName': CONTEXT_KEY_NAME, 'ContextKeyValues': [contextValue], 'ContextKeyType': 'string'} response = iam.simulate_principal_policy(PolicySourceArn=resource_arn, ActionNames=ACTIONS,ResourceArns=['*'],ContextEntries=[context]) results = response['EvaluationResults'] # Determine if the simulation allowed action in restricted region. for actions in results: eval_decision = actions['EvalDecision'] if(eval_decision == 'allowed'): action_name = actions['EvalActionName'] print "Restricted " + action_name + " granted to " + resource_arn allows_restricted_regions = True # If any restricted regions were allowed, consider the resource non-compliant. if(allows_restricted_regions): return "NON_COMPLIANT" return "COMPLIANT" Set the context Simulate
  • 51. Simulate – Policy Continued allows_restricted_regions = False for contextValue in CONTEXT_KEY_VALUES: # Simulate the policy context = {'ContextKeyName': CONTEXT_KEY_NAME, 'ContextKeyValues': [contextValue], 'ContextKeyType': 'string'} simulation_response = iam.simulate_custom_policy( PolicyInputList=[policy_document], ActionNames=ACTIONS,ResourceArns=['*'],ContextEntries=[context]) results = simulation_response['EvaluationResults'] # Determine if the simulation allowed action in restricted region. for actions in results: evalDecision = actions['EvalDecision'] if(evalDecision == 'allowed'): actionName = actions['EvalActionName'] print "Restricted " + actionName + " granted to " + policy_arn allows_restricted_regions = True # If any restricted regions were allowed, consider the resource non-compliant. if(allows_restricted_regions): return "NON_COMPLIANT" return "COMPLIANT" Set the context Simulate
  • 52. Let’s Recap • Check multiple powerful actions • Check actions on specific critical resources • Check actions with context keys and values
  • 53. What else is possible • Use AWS Config to run recurring permission validation every 24 hours. • Invoke a reactive action to non-compliant IAM entities using your Lambda function. • Include a whitelist of entities that are allowed these permissions. • Parse your policies. What Else? Stop by the Security Booth to discuss your ideas
  • 54. Additional Resources AWS Config Documentation - Supported Resources, Configuration Items, and Relationships - API on ConfigurationItem AWS DevOps Blog How to Centrally Manage AWS Config Rules across Multiple AWS Accounts
  • 55. Get the Code Lambda functions available in this location: Bucket Link: https://s3.amazonaws.com/awsiammedia/public/sample/SE C311automatingpolicyvalidation/ Powerful Actions: iam-policy-validate-powerfulActions.py Critical Resources: iam-policy-validate-criticalResources.py Restricted Regions: iam-policy-validate-restrictedRegions.py