SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Jeff Wierer, Senior Manager – AWS IAM
November 30, 2016
How to Become an IAM Policy Ninja
in 60 Minutes or Less
SAC303
What to Expect from the Session
• Know more about securing your AWS resources
• Deeper understanding of AWS IAM permissions
• Tips and tricks
• Debugging, testing, and other policy foo
• A lively session via demos
Amazon
S3
AWS
IAM
Amazon
EC2
Limit Amazon EC2 instance types
Demo
• Goal: Limit a user from starting an instance unless the
instance is t1.*, t2.*, m3.*
• Let’s try to:
– Create a managed policy that attempts to limit starting an EC2
instance except for these instance types.
– Attach that policy to an IAM user.
The policy language
• Provides authorization
• Two facets:
– Specification: Defining access policies
– Enforcement: Evaluating policies
Principal – Examples
• An entity that is allowed or denied access to a resource
• Indicated by an Amazon Resource Name (ARN)
• With IAM policies, the principal element is implicit (i.e., the user, group, or role attached)
<!-- Everyone (anonymous users) -->
"Principal":"AWS":"*.*"
<!-- Specific account or accounts -->
"Principal":{"AWS":"arn:aws:iam::123456789012:root" }
"Principal":{"AWS":"123456789012"}
<!-- Individual IAM user -->
"Principal":"AWS":"arn:aws:iam::123456789012:user/username"
<!-- Federated user (using web identity federation) -->
"Principal":{"Federated":"www.amazon.com"}
"Principal":{"Federated":"graph.facebook.com"}
"Principal":{"Federated":"accounts.google.com"}
<!-- Specific role -->
"Principal":{"AWS":"arn:aws:iam::123456789012:role/rolename"}
<!-- Specific service -->
"Principal":{"Service":"ec2.amazonaws.com"}
Replace
with your
account
number
Action – Examples
• Describes the type of access that should be allowed or denied
• You can find these in the docs or use the policy editor to get a drop-down list
• Statements must include either an Action or NotAction element
<!-- EC2 action -->
"Action":"ec2:StartInstances"
<!-- IAM action -->
"Action":"iam:ChangePassword"
<!– Amazon S3 action -->
"Action":"s3:GetObject"
<!-- Specify multiple values for the Action element-->
"Action":["sqs:SendMessage","sqs:ReceiveMessage"]
<-- Wildcards (* or ?) in the action name. Below covers create/delete/list/update-->
"Action":"iam:*AccessKey*"
Understanding NotAction
• Lets you specify an exception to a list of actions
• Could result in shorter policies than using Action and denying many actions
• Example: Let’s say you want to allow everything but IAM APIs
{
"Version": "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "iam:*",
"Resource": "*"
}
]
}
or
This is not a Deny. A user could still have a
separate policy that grants IAM:*
If you want to prevent the user from ever being
able to call IAM APIs, use an explicit Deny.
Is there a
difference?
Resource – Examples
• The object or objects that are being requested
• Statements must include either a Resource or a NotResource element
<-- S3 Bucket -->
"Resource":"arn:aws:s3:::my_corporate_bucket/*"
<-- Amazon SQS queue-->
"Resource":"arn:aws:sqs:us-west-2:123456789012:queue1"
<-- Multiple Amazon DynamoDB tables -->
"Resource":["arn:aws:dynamodb:us-west-2:123456789012:table/books_table",
"arn:aws:dynamodb:us-west-2:123456789012:table/magazines_table"]
<-- All EC2 instances for an account in a region -->
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
Conditions
• Optional criteria that must evaluate to true for
the policy to evaluate as true
(ex: restrict to an IP address range)
• Can contain multiple conditions
• Condition keys can contain multiple values
• If a single condition includes multiple values
for one key, the condition is evaluated using
logical OR
• Multiple conditions (or multiple keys in a
single condition): the conditions are
evaluated using logical AND
Condition element
Condition 1:
Key1: Value1A
Condition 2:
Key3: Value3A
AND
AND
Key2: Value2A OR Value2B
OR ORKey1: Value1A Value1B Value 1C
Condition example
"Condition" : {
"DateGreaterThan" : {"aws:CurrentTime" : "2016-11-30T11:00:00Z"},
"DateLessThan": {"aws:CurrentTime" : "2016-11-30T15:00:00Z"},
"IpAddress" : {"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]}
}
• Allows a user to access a resource under the following conditions:
• The time is after 11:00 A.M. on 11/30/2016 AND
• The time is before 3:00 P.M. on 11/30/2016 AND
• The request comes from an IP address in the 192.0.2.0 /24 OR 203.0.113.0 /24
range
All of these conditions must be met in order for the statement to evaluate to TRUE.
AND
OR
What if you wanted to restrict access to a time frame and IP address range?
Policy variables
• Predefined variables based on service request context
– Existing keys (aws:SourceIP, aws:CurrentTime, etc.)
– Principal-specific keys (aws:username, aws:userid, aws:principaltype)
– Provider-specific keys (graph.facebook.com:id, www.amazon.com:user_id)
– SAML keys (saml:aud, saml:iss)
– See documentation for service-specific variables
• Benefits
– Simplifies policy management
– Reduces the need for hard-coded, user-specific policies
• Use cases we’ll look at
– Set up user access to “home folder” in S3
– Limit access to specific EC2 resources
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::myBucket"],
"Condition":
{"StringLike":
{"s3:prefix":["home/${aws:username}/*"]}
}
},
{
"Effect":"Allow",
"Action":["s3:*"],
"Resource": ["arn:aws:s3:::myBucket/home/${aws:username}",
"arn:aws:s3:::myBucket/home/${aws:username}/*"]
}
]
}
The anatomy of a policy with variables
Version is required
Variable in conditions
Variable in resource ARNs
Grants a user access to a home directory in S3 that can be accessed programmatically
Managing your policies
• IAM policies
– Managed policies
– Inline polices
• Resource-based policies
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)
Resource-based policies
IAM policies live with:
• IAM users
• IAM groups
• IAM roles
Some services allow storing policy
with resources:
• S3 (bucket policy)
• Amazon Glacier (vault policy)
• Amazon SNS (topic policy)
• Amazon SQS (queue policy)
{
"Statement":
{
"Effect": "Allow",
"Principal": {"AWS": "111122223333"},
"Action": "sqs:SendMessage",
"Resource":
"arn:aws:sqs:us-east-1:444455556666:queue1"
}
}
Principal required here
Managed policies
apply only to users,
groups, and roles—
not resources
Policy enforcement
Final decision =“deny”
(explicit deny)
Yes
Final decision =“allow”
Yes
No Is there an
Allow?
4
Decision
starts at Deny
1
Evaluate all
applicable
policies
2
Is there an
explicit
Deny?
3
No Final decision =“deny”
(default deny)
5
• AWS retrieves all policies
associated with the user and
resource.
• Only policies that match the action
and conditions are evaluated.
• If a policy statement
has a deny, it trumps
all other policy
statements.
• Access is granted
if there is an
explicit allow and
no deny.
• By default, an
implicit (default)
deny is returned.
Enough already…
Let’s look at some examples
S3 IAM EC2
Creating a home directory using S3
Demo
• Goal: Create a managed policy that:
– Limits access to a prefix in an S3 bucket
– For example, arn:aws:s3:::my_bucket/home/Bob/*
• We’ll examine how to:
– Create a managed policy that uses variables.
– Enable users to list buckets in the S3 console.
– Limit users’ access to specific folders in a bucket.
Giving a user a home directory from the S3 console
{
"Version": "2012-10-17",
"Statement": [
{"Sid": "AllowGroupToSeeBucketListInTheManagementConsole",
"Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"]},
{"Sid": "AllowRootLevelListingOfThisBucketAndHomePrefix",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::myBucket"],
"Condition":{"StringEquals":{"s3:prefix":["","home/"],"s3:delimiter":["/"]}}},
{"Sid": "AllowListBucketofASpecificUserPrefix",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::myBucket"],
"Condition":{"StringLike":{"s3:prefix":["home/${aws:username}/*"]}}},
{"Sid":"AllowUserFullAccesstoJustSpecificUserPrefix",
"Action":["s3:*"],
"Effect":"Allow",
"Resource": ["arn:aws:s3:::myBucket/home/${aws:username}",
"arn:aws:s3:::myBucket/home/${aws:username}/*"]}
]
}
• Necessary to
access the
S3 console.
• Allows listing all
objects in a folder
and its subfolders.
• Allows modifying
objects in the folder
and subfolders.
Creating a “limited” IAM administrator
Demo
• Goal:
– Create a limited administrator who can use the IAM
console to manage users, but only using certain policies
• We’ll examine group policies that use variables to:
– Grant admin full access to Amazon DynamoDB and
read/write access to an S3 bucket.
– Grant admin access to the IAM console to be able to
create users and generate access keys.
– Limit admin to a well-defined set of managed policies.
Create a “limited” IAM administrator
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "ManageUsersPermissions",
"Effect": "Allow",
"Action": ["iam:ChangePasword", "iam:CreateAccessKey", "iam:CreateLoginProfile",
"iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile",
"iam:DeleteUser", "iam:UpdateAccessKey", "iam:ListAttachedUserPolicies",
"iam:ListPolicies"],
"Resource": "*"
},
{
"Sid": "LimitedAttachmentPermissions",
"Effect": "Allow",
"Action": ["iam:AttachUserPolicy","iam:DetachUserPolicy"],
"Resource": "*",
"Condition": {
"ArnEquals": {
"iam:PolicyArn": [
"arn:aws:iam::123456789012:policy/reInvent_S3_Home_Folder",
"arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess"
]
}
}
}
]
}
See AWS Security Blog post http://amzn.to/1Hf2XRl
• Allows creating
users, managing
keys, and setting
passwords.
• Limits attaching
only these two
policies.
Grant a user access to the IAM console
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "ViewListOfAllUsers",
"Action": "iam:ListUsers",
"Effect": "Allow",
"Resource": "arn:aws:iam::123456789012:user/*"
},
{
"Sid": "AllowAdmintoAccessUser",
"Effect": "Allow",
"Action": ["iam:GetUser","iam:GetLoginProfile",
"iam:ListGroupsForUser","iam:ListAccessKeys"],
"Resource": "arn:aws:iam::123456789012:user/${aws:username}"
}
]
}
• Underneath the covers, the
IAM console calls these
APIs to view user settings.
• The user will be able to view
details about all users.
• Doesn’t enable
adding/removing MFA.
Production Account
Acct ID: 222222222222
my-role
{ "Statement": [
{
"Effect": "Allow",
"Action": "ACTIONS",
"Resource": "*"
}
]
}
My DEV Account
Acct ID: 111111111111
Authenticate as Bob
Assumes my-role
Switches to production
Account in the console
{ "Statement": [
{
"Effect": "Allow",
"Action": “sts:AssumeRole",
"Resource": "arn:aws:iam::222222222222:role/my-role"
}
]
}
{ "Statement": [
{
"Effect":"Allow",
"Principal":{"AWS":"arn:aws:iam::111111111111:root"},
"Action":"sts:AssumeRole"
}
]
}
Cross-Account Console Access
Policy assigned to my-role defining
who (trusted entities) can assume the role
Policy assigned to Bob granting him permission
to assume my-role in the production account
Permissions assigned to my-role
STS
Bob

Switch Console as Bob
• Goal: Create a managed policy that:
– Limits cross-account access to specific users.
– E.g., IAM users and federated users.
• We’ll examine how to:
– Create a managed policy that uses IAM/STS ARNs.
– Enable specific users to switch between AWS accounts.
– Deny switching between accounts to other users.
How to Grant Conditional Cross-Account Access
Demo
Grant cross-account conditional IAM user access
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": ["arn:aws:iam::790891838339:root"]
]
}
}]
}
This is what is put in by default
Grant cross-account conditional IAM user access
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": ["arn:aws:iam::111111111111:user/Bob"]
]
}
}]
} Specify the exact IAM user you want to
grant access.
Grant cross-account conditional federated access
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": ["arn:aws:sts::111111111111:assumed-role/ROLENAME/ROLESESSIONNAME"]
]
}
}]
}
This will grant access to the specified
federated user
Grant cross-account conditional federated access
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:user/Bob",
"arn:aws:sts::111111111111:assumed-role/ROLENAME/ROLESESSIONNAME"
]
}
}]
}
You can
even mix
and match!
• Previously, policies applied to all EC2 resources
• Permissions can be set per resource
• Ex: assign which users can stop, start, or terminate a
particular instance
EC2 resource-level permissions
{
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:TerminateInstances"],
"Resource":"*"
}
]
}
That’s not very
Ninja-like!
EC2 policies before resource-level permissions
{
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:TerminateInstances"],
"Resource":
"arn:aws:ec2:us-east-1:123456789012:instance/i-abc12345"
}
]
}
EC2 policies after resource-level permissions
EC2 policies after resource-level permissions
{
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:TerminateInstances"],
"Resource":
"arn:aws:ec2:us-east-1:123456789012:instance/*"
}
]
}
EC2 policies after resource-level permissions
{
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:TerminateInstances"],
"Resource":
"arn:aws:ec2:us-east-1:123456789012:instance/*",
"Condition": {
"StringEquals": {"ec2:ResourceTag/department": "dev"}
}
}
]
}
Supported EC2 resource types
• Customer
gateway
• DHCP options
set
• Image
• Instance
• Instance profile
• Internet gateway
• Key pair
• Network ACL
• Network
interface
• Placement group
• Route table
• Security group
• Snapshot
• Subnet
• Volume
• VPC
• VPC peering
connection
Supports many different resource types, including:
Supported EC2 actions Note: This is only a subset of all possible EC2 actions.
Type of resource Actions
EC2 instances RebootInstances, RunInstance, StartInstances, StopInstances, TerminateInstances,
AttachClassicLinkVpc, AttachVolume, DetachClassicLinkVpc, DetachVolume,
GetConsoleScreenshot
Customer gateway DeleteCustomerGateway
DHCP options sets DeleteDhcpOptions
Internet gateways DeleteInternetGateway
Network ACLs DeleteNetworkAcl, DeleteNetworkAclEntry
Route tables DeleteRoute, DeleteRouteTable
Security groups AuthorizeSecurityGroupEgress, AuthorizeSecurityGroupIngress,
DeleteSecurityGroup, RevokeSecurityGroupEgress, RevokeSecurityGroupIngress,
AttachClassicLinkVpc, RunInstances
Volumes AttachVolume, DeleteVolume, DetachVolume, RunInstances
VPC peering
connections
AcceptVpcPeeringConnection, CreateVpcPeeringConnection,
DeleteVpcPeeringConnection, RejectVpcPeeringConnection, DisableVpcClassicLink,
EnableVpcClassicLink
Accurate as of 11/16/2016
Categorize your EC2 resources
Use tags as a resource attribute
• Allows user-defined models
• “Prod”/”Dev”
• “Cost Center X”
• “Department Y”
• “Project reInvent”
EC2 resource-level permissions
Demo
• Goal: Limit a user from starting, stopping, or
terminating an instance unless the instance is owned
by the user.
• We’ll examine:
– Adding an owner tag to an EC2 instance.
– A policy that grants a user access to the EC2 console.
– A policy that uses variables to limit access based on an owner tag.
Locking down access to EC2 instances
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics","cloudwatch:GetMetricStatistics","cloudwatch:Describe*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "autoscaling:Describe*",
"Resource": "*"
}]
}
Allows seeing everything from
the EC2 console
This is the AWS managed policy named AmazonEC2ReadOnlyAccess
Locking down access to EC2 instances
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "THISLIMITSACCESSTOOWNINSTANCES",
"Effect": "Allow",
"Action": ["ec2:RebootInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Resource": "arn:aws:ec2:*:123456789012:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Owner": "${aws:username}"
}
}
}
]
}
Version is required here
because we’re using variables
Only allowed if this tag
condition is true
Specify the tag key and value
here
Limit EC2 instance types
Demo
• Goal: Limit a user from starting an instance unless the
instance is t1.*, t2.*, m3.*
• We’ll do the following:
– Create a new IAM group.
– Create a managed policy that limits starting EC2 instances to specific
instance types.
– Attach that managed policy to the IAM group.
Locking down access to instance types
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"NotAction": ["iam:*","ec2:RunInstances"],
"Resource": "*"},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"NotResource": [
"arn:aws:ec2:us-east-2:012345678912:instance/*",
"arn:aws:ec2:eu-west-1:012345678912:instance/*"]},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:us-east-2:012345678912:instance/*",
"arn:aws:ec2:eu-west-1:012345678912:instance/*"],
"Condition": {
"StringLike": {"ec2:InstanceType": ["t1.*","t2.*","m3.*"]}
}
}
]
}
Include all services/actions you
want to exclude!
Grants access to everything
you need to launch an
instance, except the actual
instance
Lock down types here
Take advantage of IfExists conditional operator
• Many condition keys only exist for certain resource
types.
• If you test for a nonexistent key, your policy will fail to
evaluate (in other words, access denied).
• You can add IfExists at the end of any condition
operator except the Null condition (for example,
StringLikeIfExists).
• Allows you to create policies that “don’t care” if the key is
not present.
StringNotLikeIfExists example
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:012345678901:instance/*",
"Condition": {
"StringNotLikeIfExists": {
"ec2:InstanceType": [
"t1.*", "t2.*", "m3.*"
]
}
}
}
]
}
Only apply this condition if this
InstanceType key exists
Explicitly deny access to
RunInstances, for all regions
and resources if condition is met
Granting access to all EC2
actions on all resources in all
regions
That sounds
great. What if I
get stuck? Can I
call you?
Magic: Testing and debugging
• Authoring – Policy editor
• Testing – Policy simulator
• Debugging – Encoded authorization message
(EC2)
Policy editor
Policy validation checks:
• JSON errors
• Policy grammar errors
Policy formatting:
• On-demand
• Autoformatting
Policy simulator
Decoding the EC2 authorization message
• The decoded message includes:
– Whether the request was denied due
to an explicit deny or absence of an
explicit allow.
– The principal who made the request.
– The requested action.
– The requested resource.
– The values of condition keys in the
context of the user's request.
• Requires permissions to call
sts:DecodeAuthorizationMessage
The message is encoded because the details of the
authorization status can constitute privileged information!
• Additional information about the authorization status of a request
Output
Decoding the EC2 authorization message
Demo
• Goal: Determine what caused an EC2 authorization
failure
• We’ll do the following:
– Try to call an EC2 action
– Capture the EC2 Authorization Failure in JSON format
– Remove the DecodeMessage “wrapper”
– Format the message to identify the missing permission
Summary
• IAM provides access control for your AWS account.
• The policy language authorizes that access.
• All applicable policies are evaluated.
• Users are denied access by default.
• A deny always trumps an allow.
• Use policy variables and remember the version!
• Use managed policies: they make life easier.
• Keep in mind which EC2 actions or
resources are currently supported.
AWS IAM Policy Ninja
Disclaimer: Not really. This is not a real certification, but thank you for sticking around until the end.

Remember to complete
your evaluations!
Additional resources
• AWS IAM home page: http://aws.amazon.com/iam
• Documentation
• http://aws.amazon.com/documentation/iam/
• http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-
permissions.html
• AWS Security Blog
• https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/
• https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-
amazon-ec2-console/
• https://aws.amazon.com/blogs/security/how-to-create-a-limited-iam-administrator-by-
using-managed-policies/
• IAM forum: https://forums.aws.amazon.com/forum.jspa?forumID=76
• Twitter: @AWSIdentity
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Designing security & governance via AWS Control Tower & Organizations - SEC30...
Designing security & governance via AWS Control Tower & Organizations - SEC30...Designing security & governance via AWS Control Tower & Organizations - SEC30...
Designing security & governance via AWS Control Tower & Organizations - SEC30...Amazon Web Services
 
VPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCVPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCAmazon Web Services
 
Getting Started with Amazon Inspector
Getting Started with Amazon InspectorGetting Started with Amazon Inspector
Getting Started with Amazon InspectorAmazon Web Services
 
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIsAmazon Web Services
 
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Amazon Web Services
 
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon Web Services
 
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...Amazon Web Services
 
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인Amazon Web Services Korea
 
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...Edureka!
 
Aws organizations
Aws organizationsAws organizations
Aws organizationsOlaf Conijn
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best PracticesAmazon Web Services
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAMKnoldus Inc.
 
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
 

Was ist angesagt? (20)

Become an AWS IAM Policy Ninja
Become an AWS IAM Policy NinjaBecome an AWS IAM Policy Ninja
Become an AWS IAM Policy Ninja
 
Designing security & governance via AWS Control Tower & Organizations - SEC30...
Designing security & governance via AWS Control Tower & Organizations - SEC30...Designing security & governance via AWS Control Tower & Organizations - SEC30...
Designing security & governance via AWS Control Tower & Organizations - SEC30...
 
AWS Security Hub
AWS Security HubAWS Security Hub
AWS Security Hub
 
VPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCVPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPC
 
Getting Started with Amazon Inspector
Getting Started with Amazon InspectorGetting Started with Amazon Inspector
Getting Started with Amazon Inspector
 
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
 
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
 
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
 
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...
Top 10 AWS Identity and Access Management (IAM) Best Practices (SEC301) | AWS...
 
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인
AWS Control Tower를 통한 클라우드 보안 및 거버넌스 설계 - 김학민 :: AWS 클라우드 마이그레이션 온라인
 
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
 
Fundamentals of AWS Security
Fundamentals of AWS SecurityFundamentals of AWS Security
Fundamentals of AWS Security
 
Aws organizations
Aws organizationsAws organizations
Aws organizations
 
AWS Security Best Practices
AWS Security Best PracticesAWS Security Best Practices
AWS Security Best Practices
 
Aws VPC
Aws VPCAws VPC
Aws VPC
 
Introduction of AWS KMS
Introduction of AWS KMSIntroduction of AWS KMS
Introduction of AWS KMS
 
Deep Dive into AWS SAM
Deep Dive into AWS SAMDeep Dive into AWS SAM
Deep Dive into AWS SAM
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best Practices
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAM
 
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
 

Ähnlich wie AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC303)

Mastering Access Control Policies
Mastering Access Control PoliciesMastering Access Control Policies
Mastering Access Control PoliciesAmazon Web Services
 
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017Amazon Web Services
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsAmazon Web Services
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsAmazon Web Services
 
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or LessAmazon Web Services
 
How to Become an IAM Policy Ninja
How to Become an IAM Policy NinjaHow to Become an IAM Policy Ninja
How to Become an IAM Policy NinjaAmazon Web Services
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsAmazon Web Services
 
Controlling Access to your Resources
Controlling Access to your ResourcesControlling Access to your Resources
Controlling Access to your ResourcesAmazon 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
 
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013Mastering Access Control Policies (SEC302) | AWS re:Invent 2013
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013Amazon Web Services
 
Security Day IAM Recommended Practices
Security Day IAM Recommended PracticesSecurity Day IAM Recommended Practices
Security Day IAM Recommended PracticesAmazon Web Services
 
IAM Best Practices to Live By - Pop-up Loft Tel Aviv
IAM Best Practices to Live By - Pop-up Loft Tel AvivIAM Best Practices to Live By - Pop-up Loft Tel Aviv
IAM Best Practices to Live By - Pop-up Loft Tel AvivAmazon Web Services
 
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Riyadh User Group
 

Ähnlich wie AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC303) (20)

Becoming an IAM Policy Ninja
Becoming an IAM Policy NinjaBecoming an IAM Policy Ninja
Becoming an IAM Policy Ninja
 
Mastering Access Control Policies
Mastering Access Control PoliciesMastering Access Control Policies
Mastering Access Control Policies
 
Policy Ninja
Policy NinjaPolicy Ninja
Policy Ninja
 
Policy Ninja
Policy NinjaPolicy Ninja
Policy Ninja
 
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
Becoming an AWS Policy Ninja using AWS IAM - AWS Summit Tel Aviv 2017
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
 
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less
(SEC305) How to Become an IAM Policy Ninja in 60 Minutes or Less
 
How to Become an IAM Policy Ninja
How to Become an IAM Policy NinjaHow to Become an IAM Policy Ninja
How to Become an IAM Policy Ninja
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
 
SID314_IAM Policy Ninja
SID314_IAM Policy NinjaSID314_IAM Policy Ninja
SID314_IAM Policy Ninja
 
Controlling Access to your Resources
Controlling Access to your ResourcesControlling Access to your Resources
Controlling Access to your Resources
 
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
 
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013Mastering Access Control Policies (SEC302) | AWS re:Invent 2013
Mastering Access Control Policies (SEC302) | AWS re:Invent 2013
 
Become an IAM Policy Ninja
Become an IAM Policy NinjaBecome an IAM Policy Ninja
Become an IAM Policy Ninja
 
Security Day IAM Recommended Practices
Security Day IAM Recommended PracticesSecurity Day IAM Recommended Practices
Security Day IAM Recommended Practices
 
Masting Access Control Policies
Masting Access Control PoliciesMasting Access Control Policies
Masting Access Control Policies
 
IAM Best Practices to Live By - Pop-up Loft Tel Aviv
IAM Best Practices to Live By - Pop-up Loft Tel AvivIAM Best Practices to Live By - Pop-up Loft Tel Aviv
IAM Best Practices to Live By - Pop-up Loft Tel Aviv
 
AWS IAM Introduction
AWS IAM IntroductionAWS IAM Introduction
AWS IAM Introduction
 
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech 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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech 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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

AWS re:Invent 2016: Become an AWS IAM Policy Ninja in 60 Minutes or Less (SAC303)

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Jeff Wierer, Senior Manager – AWS IAM November 30, 2016 How to Become an IAM Policy Ninja in 60 Minutes or Less SAC303
  • 2. What to Expect from the Session • Know more about securing your AWS resources • Deeper understanding of AWS IAM permissions • Tips and tricks • Debugging, testing, and other policy foo • A lively session via demos Amazon S3 AWS IAM Amazon EC2
  • 3. Limit Amazon EC2 instance types Demo • Goal: Limit a user from starting an instance unless the instance is t1.*, t2.*, m3.* • Let’s try to: – Create a managed policy that attempts to limit starting an EC2 instance except for these instance types. – Attach that policy to an IAM user.
  • 4. The policy language • Provides authorization • Two facets: – Specification: Defining access policies – Enforcement: Evaluating policies
  • 5. Principal – Examples • An entity that is allowed or denied access to a resource • Indicated by an Amazon Resource Name (ARN) • With IAM policies, the principal element is implicit (i.e., the user, group, or role attached) <!-- Everyone (anonymous users) --> "Principal":"AWS":"*.*" <!-- Specific account or accounts --> "Principal":{"AWS":"arn:aws:iam::123456789012:root" } "Principal":{"AWS":"123456789012"} <!-- Individual IAM user --> "Principal":"AWS":"arn:aws:iam::123456789012:user/username" <!-- Federated user (using web identity federation) --> "Principal":{"Federated":"www.amazon.com"} "Principal":{"Federated":"graph.facebook.com"} "Principal":{"Federated":"accounts.google.com"} <!-- Specific role --> "Principal":{"AWS":"arn:aws:iam::123456789012:role/rolename"} <!-- Specific service --> "Principal":{"Service":"ec2.amazonaws.com"} Replace with your account number
  • 6. Action – Examples • Describes the type of access that should be allowed or denied • You can find these in the docs or use the policy editor to get a drop-down list • Statements must include either an Action or NotAction element <!-- EC2 action --> "Action":"ec2:StartInstances" <!-- IAM action --> "Action":"iam:ChangePassword" <!– Amazon S3 action --> "Action":"s3:GetObject" <!-- Specify multiple values for the Action element--> "Action":["sqs:SendMessage","sqs:ReceiveMessage"] <-- Wildcards (* or ?) in the action name. Below covers create/delete/list/update--> "Action":"iam:*AccessKey*"
  • 7. Understanding NotAction • Lets you specify an exception to a list of actions • Could result in shorter policies than using Action and denying many actions • Example: Let’s say you want to allow everything but IAM APIs { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "NotAction": "iam:*", "Resource": "*" } ] } { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "iam:*", "Resource": "*" } ] } or This is not a Deny. A user could still have a separate policy that grants IAM:* If you want to prevent the user from ever being able to call IAM APIs, use an explicit Deny. Is there a difference?
  • 8. Resource – Examples • The object or objects that are being requested • Statements must include either a Resource or a NotResource element <-- S3 Bucket --> "Resource":"arn:aws:s3:::my_corporate_bucket/*" <-- Amazon SQS queue--> "Resource":"arn:aws:sqs:us-west-2:123456789012:queue1" <-- Multiple Amazon DynamoDB tables --> "Resource":["arn:aws:dynamodb:us-west-2:123456789012:table/books_table", "arn:aws:dynamodb:us-west-2:123456789012:table/magazines_table"] <-- All EC2 instances for an account in a region --> "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
  • 9. Conditions • Optional criteria that must evaluate to true for the policy to evaluate as true (ex: restrict to an IP address range) • Can contain multiple conditions • Condition keys can contain multiple values • If a single condition includes multiple values for one key, the condition is evaluated using logical OR • Multiple conditions (or multiple keys in a single condition): the conditions are evaluated using logical AND Condition element Condition 1: Key1: Value1A Condition 2: Key3: Value3A AND AND Key2: Value2A OR Value2B OR ORKey1: Value1A Value1B Value 1C
  • 10. Condition example "Condition" : { "DateGreaterThan" : {"aws:CurrentTime" : "2016-11-30T11:00:00Z"}, "DateLessThan": {"aws:CurrentTime" : "2016-11-30T15:00:00Z"}, "IpAddress" : {"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]} } • Allows a user to access a resource under the following conditions: • The time is after 11:00 A.M. on 11/30/2016 AND • The time is before 3:00 P.M. on 11/30/2016 AND • The request comes from an IP address in the 192.0.2.0 /24 OR 203.0.113.0 /24 range All of these conditions must be met in order for the statement to evaluate to TRUE. AND OR What if you wanted to restrict access to a time frame and IP address range?
  • 11. Policy variables • Predefined variables based on service request context – Existing keys (aws:SourceIP, aws:CurrentTime, etc.) – Principal-specific keys (aws:username, aws:userid, aws:principaltype) – Provider-specific keys (graph.facebook.com:id, www.amazon.com:user_id) – SAML keys (saml:aud, saml:iss) – See documentation for service-specific variables • Benefits – Simplifies policy management – Reduces the need for hard-coded, user-specific policies • Use cases we’ll look at – Set up user access to “home folder” in S3 – Limit access to specific EC2 resources
  • 12. { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::myBucket"], "Condition": {"StringLike": {"s3:prefix":["home/${aws:username}/*"]} } }, { "Effect":"Allow", "Action":["s3:*"], "Resource": ["arn:aws:s3:::myBucket/home/${aws:username}", "arn:aws:s3:::myBucket/home/${aws:username}/*"] } ] } The anatomy of a policy with variables Version is required Variable in conditions Variable in resource ARNs Grants a user access to a home directory in S3 that can be accessed programmatically
  • 13. Managing your policies • IAM policies – Managed policies – Inline polices • Resource-based policies
  • 14. 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)
  • 15. Resource-based policies IAM policies live with: • IAM users • IAM groups • IAM roles Some services allow storing policy with resources: • S3 (bucket policy) • Amazon Glacier (vault policy) • Amazon SNS (topic policy) • Amazon SQS (queue policy) { "Statement": { "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:444455556666:queue1" } } Principal required here Managed policies apply only to users, groups, and roles— not resources
  • 16. Policy enforcement Final decision =“deny” (explicit deny) Yes Final decision =“allow” Yes No Is there an Allow? 4 Decision starts at Deny 1 Evaluate all applicable policies 2 Is there an explicit Deny? 3 No Final decision =“deny” (default deny) 5 • AWS retrieves all policies associated with the user and resource. • Only policies that match the action and conditions are evaluated. • If a policy statement has a deny, it trumps all other policy statements. • Access is granted if there is an explicit allow and no deny. • By default, an implicit (default) deny is returned.
  • 17. Enough already… Let’s look at some examples S3 IAM EC2
  • 18. Creating a home directory using S3 Demo • Goal: Create a managed policy that: – Limits access to a prefix in an S3 bucket – For example, arn:aws:s3:::my_bucket/home/Bob/* • We’ll examine how to: – Create a managed policy that uses variables. – Enable users to list buckets in the S3 console. – Limit users’ access to specific folders in a bucket.
  • 19. Giving a user a home directory from the S3 console { "Version": "2012-10-17", "Statement": [ {"Sid": "AllowGroupToSeeBucketListInTheManagementConsole", "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"], "Effect": "Allow", "Resource": ["arn:aws:s3:::*"]}, {"Sid": "AllowRootLevelListingOfThisBucketAndHomePrefix", "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::myBucket"], "Condition":{"StringEquals":{"s3:prefix":["","home/"],"s3:delimiter":["/"]}}}, {"Sid": "AllowListBucketofASpecificUserPrefix", "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::myBucket"], "Condition":{"StringLike":{"s3:prefix":["home/${aws:username}/*"]}}}, {"Sid":"AllowUserFullAccesstoJustSpecificUserPrefix", "Action":["s3:*"], "Effect":"Allow", "Resource": ["arn:aws:s3:::myBucket/home/${aws:username}", "arn:aws:s3:::myBucket/home/${aws:username}/*"]} ] } • Necessary to access the S3 console. • Allows listing all objects in a folder and its subfolders. • Allows modifying objects in the folder and subfolders.
  • 20. Creating a “limited” IAM administrator Demo • Goal: – Create a limited administrator who can use the IAM console to manage users, but only using certain policies • We’ll examine group policies that use variables to: – Grant admin full access to Amazon DynamoDB and read/write access to an S3 bucket. – Grant admin access to the IAM console to be able to create users and generate access keys. – Limit admin to a well-defined set of managed policies.
  • 21. Create a “limited” IAM administrator { "Version": "2012-10-17", "Statement": [{ "Sid": "ManageUsersPermissions", "Effect": "Allow", "Action": ["iam:ChangePasword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:DeleteUser", "iam:UpdateAccessKey", "iam:ListAttachedUserPolicies", "iam:ListPolicies"], "Resource": "*" }, { "Sid": "LimitedAttachmentPermissions", "Effect": "Allow", "Action": ["iam:AttachUserPolicy","iam:DetachUserPolicy"], "Resource": "*", "Condition": { "ArnEquals": { "iam:PolicyArn": [ "arn:aws:iam::123456789012:policy/reInvent_S3_Home_Folder", "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess" ] } } } ] } See AWS Security Blog post http://amzn.to/1Hf2XRl • Allows creating users, managing keys, and setting passwords. • Limits attaching only these two policies.
  • 22. Grant a user access to the IAM console { "Version": "2012-10-17", "Statement": [{ "Sid": "ViewListOfAllUsers", "Action": "iam:ListUsers", "Effect": "Allow", "Resource": "arn:aws:iam::123456789012:user/*" }, { "Sid": "AllowAdmintoAccessUser", "Effect": "Allow", "Action": ["iam:GetUser","iam:GetLoginProfile", "iam:ListGroupsForUser","iam:ListAccessKeys"], "Resource": "arn:aws:iam::123456789012:user/${aws:username}" } ] } • Underneath the covers, the IAM console calls these APIs to view user settings. • The user will be able to view details about all users. • Doesn’t enable adding/removing MFA.
  • 23. Production Account Acct ID: 222222222222 my-role { "Statement": [ { "Effect": "Allow", "Action": "ACTIONS", "Resource": "*" } ] } My DEV Account Acct ID: 111111111111 Authenticate as Bob Assumes my-role Switches to production Account in the console { "Statement": [ { "Effect": "Allow", "Action": “sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/my-role" } ] } { "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::111111111111:root"}, "Action":"sts:AssumeRole" } ] } Cross-Account Console Access Policy assigned to my-role defining who (trusted entities) can assume the role Policy assigned to Bob granting him permission to assume my-role in the production account Permissions assigned to my-role STS Bob  Switch Console as Bob
  • 24. • Goal: Create a managed policy that: – Limits cross-account access to specific users. – E.g., IAM users and federated users. • We’ll examine how to: – Create a managed policy that uses IAM/STS ARNs. – Enable specific users to switch between AWS accounts. – Deny switching between accounts to other users. How to Grant Conditional Cross-Account Access Demo
  • 25. Grant cross-account conditional IAM user access { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": ["arn:aws:iam::790891838339:root"] ] } }] } This is what is put in by default
  • 26. Grant cross-account conditional IAM user access { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": ["arn:aws:iam::111111111111:user/Bob"] ] } }] } Specify the exact IAM user you want to grant access.
  • 27. Grant cross-account conditional federated access { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": ["arn:aws:sts::111111111111:assumed-role/ROLENAME/ROLESESSIONNAME"] ] } }] } This will grant access to the specified federated user
  • 28. Grant cross-account conditional federated access { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": [ "arn:aws:iam::111111111111:user/Bob", "arn:aws:sts::111111111111:assumed-role/ROLENAME/ROLESESSIONNAME" ] } }] } You can even mix and match!
  • 29. • Previously, policies applied to all EC2 resources • Permissions can be set per resource • Ex: assign which users can stop, start, or terminate a particular instance EC2 resource-level permissions
  • 30. { "Statement": [{ "Effect": "Allow", "Action": ["ec2:TerminateInstances"], "Resource":"*" } ] } That’s not very Ninja-like! EC2 policies before resource-level permissions
  • 31. { "Statement": [{ "Effect": "Allow", "Action": ["ec2:TerminateInstances"], "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-abc12345" } ] } EC2 policies after resource-level permissions
  • 32. EC2 policies after resource-level permissions { "Statement": [{ "Effect": "Allow", "Action": ["ec2:TerminateInstances"], "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*" } ] }
  • 33. EC2 policies after resource-level permissions { "Statement": [{ "Effect": "Allow", "Action": ["ec2:TerminateInstances"], "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*", "Condition": { "StringEquals": {"ec2:ResourceTag/department": "dev"} } } ] }
  • 34. Supported EC2 resource types • Customer gateway • DHCP options set • Image • Instance • Instance profile • Internet gateway • Key pair • Network ACL • Network interface • Placement group • Route table • Security group • Snapshot • Subnet • Volume • VPC • VPC peering connection Supports many different resource types, including:
  • 35. Supported EC2 actions Note: This is only a subset of all possible EC2 actions. Type of resource Actions EC2 instances RebootInstances, RunInstance, StartInstances, StopInstances, TerminateInstances, AttachClassicLinkVpc, AttachVolume, DetachClassicLinkVpc, DetachVolume, GetConsoleScreenshot Customer gateway DeleteCustomerGateway DHCP options sets DeleteDhcpOptions Internet gateways DeleteInternetGateway Network ACLs DeleteNetworkAcl, DeleteNetworkAclEntry Route tables DeleteRoute, DeleteRouteTable Security groups AuthorizeSecurityGroupEgress, AuthorizeSecurityGroupIngress, DeleteSecurityGroup, RevokeSecurityGroupEgress, RevokeSecurityGroupIngress, AttachClassicLinkVpc, RunInstances Volumes AttachVolume, DeleteVolume, DetachVolume, RunInstances VPC peering connections AcceptVpcPeeringConnection, CreateVpcPeeringConnection, DeleteVpcPeeringConnection, RejectVpcPeeringConnection, DisableVpcClassicLink, EnableVpcClassicLink Accurate as of 11/16/2016
  • 36. Categorize your EC2 resources Use tags as a resource attribute • Allows user-defined models • “Prod”/”Dev” • “Cost Center X” • “Department Y” • “Project reInvent”
  • 37. EC2 resource-level permissions Demo • Goal: Limit a user from starting, stopping, or terminating an instance unless the instance is owned by the user. • We’ll examine: – Adding an owner tag to an EC2 instance. – A policy that grants a user access to the EC2 console. – A policy that uses variables to limit access based on an owner tag.
  • 38. Locking down access to EC2 instances { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": "elasticloadbalancing:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:ListMetrics","cloudwatch:GetMetricStatistics","cloudwatch:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "autoscaling:Describe*", "Resource": "*" }] } Allows seeing everything from the EC2 console This is the AWS managed policy named AmazonEC2ReadOnlyAccess
  • 39. Locking down access to EC2 instances { "Version": "2012-10-17", "Statement": [{ "Sid": "THISLIMITSACCESSTOOWNINSTANCES", "Effect": "Allow", "Action": ["ec2:RebootInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "arn:aws:ec2:*:123456789012:instance/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Owner": "${aws:username}" } } } ] } Version is required here because we’re using variables Only allowed if this tag condition is true Specify the tag key and value here
  • 40. Limit EC2 instance types Demo • Goal: Limit a user from starting an instance unless the instance is t1.*, t2.*, m3.* • We’ll do the following: – Create a new IAM group. – Create a managed policy that limits starting EC2 instances to specific instance types. – Attach that managed policy to the IAM group.
  • 41. Locking down access to instance types { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "NotAction": ["iam:*","ec2:RunInstances"], "Resource": "*"}, { "Effect": "Allow", "Action": "ec2:RunInstances", "NotResource": [ "arn:aws:ec2:us-east-2:012345678912:instance/*", "arn:aws:ec2:eu-west-1:012345678912:instance/*"]}, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:us-east-2:012345678912:instance/*", "arn:aws:ec2:eu-west-1:012345678912:instance/*"], "Condition": { "StringLike": {"ec2:InstanceType": ["t1.*","t2.*","m3.*"]} } } ] } Include all services/actions you want to exclude! Grants access to everything you need to launch an instance, except the actual instance Lock down types here
  • 42. Take advantage of IfExists conditional operator • Many condition keys only exist for certain resource types. • If you test for a nonexistent key, your policy will fail to evaluate (in other words, access denied). • You can add IfExists at the end of any condition operator except the Null condition (for example, StringLikeIfExists). • Allows you to create policies that “don’t care” if the key is not present.
  • 43. StringNotLikeIfExists example { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:012345678901:instance/*", "Condition": { "StringNotLikeIfExists": { "ec2:InstanceType": [ "t1.*", "t2.*", "m3.*" ] } } } ] } Only apply this condition if this InstanceType key exists Explicitly deny access to RunInstances, for all regions and resources if condition is met Granting access to all EC2 actions on all resources in all regions
  • 44. That sounds great. What if I get stuck? Can I call you?
  • 45. Magic: Testing and debugging • Authoring – Policy editor • Testing – Policy simulator • Debugging – Encoded authorization message (EC2)
  • 46. Policy editor Policy validation checks: • JSON errors • Policy grammar errors Policy formatting: • On-demand • Autoformatting
  • 48. Decoding the EC2 authorization message • The decoded message includes: – Whether the request was denied due to an explicit deny or absence of an explicit allow. – The principal who made the request. – The requested action. – The requested resource. – The values of condition keys in the context of the user's request. • Requires permissions to call sts:DecodeAuthorizationMessage The message is encoded because the details of the authorization status can constitute privileged information! • Additional information about the authorization status of a request Output
  • 49. Decoding the EC2 authorization message Demo • Goal: Determine what caused an EC2 authorization failure • We’ll do the following: – Try to call an EC2 action – Capture the EC2 Authorization Failure in JSON format – Remove the DecodeMessage “wrapper” – Format the message to identify the missing permission
  • 50. Summary • IAM provides access control for your AWS account. • The policy language authorizes that access. • All applicable policies are evaluated. • Users are denied access by default. • A deny always trumps an allow. • Use policy variables and remember the version! • Use managed policies: they make life easier. • Keep in mind which EC2 actions or resources are currently supported.
  • 51. AWS IAM Policy Ninja Disclaimer: Not really. This is not a real certification, but thank you for sticking around until the end. 
  • 53. Additional resources • AWS IAM home page: http://aws.amazon.com/iam • Documentation • http://aws.amazon.com/documentation/iam/ • http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api- permissions.html • AWS Security Blog • https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/ • https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the- amazon-ec2-console/ • https://aws.amazon.com/blogs/security/how-to-create-a-limited-iam-administrator-by- using-managed-policies/ • IAM forum: https://forums.aws.amazon.com/forum.jspa?forumID=76 • Twitter: @AWSIdentity