View
185
Download
0
Category
Preview:
Citation preview
Amazon Web Services v praxi
Jiří Pihík
Bezpečnost v cloudu
● plán pro migraci 9000 aplikací do AWS během 3 let● redukce datacenter: z 34 zbydou 4● 2 000 nových pozic v Center of Software Excellence
AWS ReInvent 2015: https://youtu.be/D5-ifl7KJ00
"When the data center comes up for lease, what people are doing is looking at, 'I could spend a big pile of money to refit it, or I could replace it with an AWS account'."
Adrian Cockcroft, former Cloud Architect
Cloud je bezpečný.
https://aws.amazon.com/compliance/
AWS IAM
● Identity and Access Management = Správa přístupu a účtů● Authentication = Kdo jsem? Ověření● Authorization = Co mohu dělat? Povolení
Vymezení pojmů
Hierarchie v AWS cloudu
Root
Superadmin
Power user
IAM user Federated user Instance role
Role
IAM CloudTrail
Služby AWSLogovací nástroje
Záznamy o aktivitě
Autorizace servisních rolí
Autorizace uživatelů
Životní cyklus
Notifikace
Akce
● Least privilege● Deny by default● Deny vs Deny vs Allow = ?● MFA● Servisní účty● Role● Všechno je API● Big Brother = CloudTrail
Koncepty
(Vše)mocný jazyk zabezpečení
NotPrincipalPrincipal
Resource NotResource
Allow Deny
StringNotLike StringLike
Action NotAction
Policy
Policy
Policy
Results
Ukázky řešení
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "rds:*", ], "Effect": "Allow", "Resource": "*" }, { "Action": "rds:Create*", "Effect": "Deny", "NotResource": [ "arn:aws:rds:eu-west-1:012345678910:db:*", "arn:aws:rds:eu-west-1:012345678910:snapshot:*" ] } ]}
Omezení vytvářet nové RDS instance mimo Evropu
{ "Sid": "RDSomezenyPristup", "Action": [ "rds:ModifyDBInstance", "rds:CreateDBSnapshot", "rds:DeleteDBInstance" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "rds:db-tag/Stav": "Archiv" } }},{ "Sid": "RDSplnyPristup", "Action": [ "rds:*" ], "Effect": "Allow", "Resource": "*"},{ "Sid": "NoveDatabazePouzeEU", "Action": "rds:Create*", "Effect": "Deny", "NotResource": [ "arn:aws:rds:eu-west-1:012345678910:db:*", "arn:aws:rds:eu-west-1:012345678910:snapshot:*" ]}
Vyhodnocení pravidel:
1 .Všechny aktivity nutné ke správě RDS jsou povolené pro všechny instance.
2. Mazat nebo měnit RDS instance je možné pouze s tagem Stav: Archiv.
3. Vytvářet nové RDS instance je možné pouze v Evropě
"Condition" : { "DateGreaterThan" : { "aws:CurrentTime" : "2016-02-09T12:00:00Z" }, "DateLessThan": { "aws:CurrentTime" : "2016-02-09T15:00:00Z" }, "IpAddress" : { "aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"] }}
Podmínka - omezení přístupu pouze na daný časový termín a IP adresní rozsah
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::datascript-morning-talks/finance/*", "Condition": { "Null": { "aws:MultiFactorAuthAge": true } } }, { "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::datascript-morning-talks/verejne/*" } ]}
Jakákoli aktivita ve složce /finance v bucketu datascript-morning-talks je podmíněna použitím 2-fázového ověření.Složka /verejne je věřejně dostupná z internetu.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::datascript-morning-talks/reporty/*.pdf", "Condition": { "IpAddress": { "aws:SourceIp": "109.81.209.115" } } } ]}
S3 zápis souborů PDF do složky /reporty v bucketu datascript-morning-talksZápis musí být uskutečněn z IP 109.81.209.115
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/s3access" }]}
Práva použít servisní roli pro přístup na s3.
Správa aplikačních strojů pro partnery.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances" ], "Effect": "Allow", "Resource": "arn:aws:ec2:eu-west-1:1111122222:instance/i-64bf84e9", "Condition": { "IpAddress": { "aws:SourceIp": "109.81.209.115" } } } ]}
Trust Policy - Přístup z jiného AWS cloudu
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111111222222:root", "333333444444" ] }, "Action": "sts:AssumeRole" } ]}
{ "Sid": "BucketSecurity", "Principal": { "AWS": [ "333333444444", "111111222222" ] }, "Action": [ "s3:GetBucketPolicy", "s3:DeleteBucketPolicy", "s3:PutBucketPolicy", "s3:GetBucketAcl", "s3:PutBucketAcl", "s3:GetBucketLogging", "s3:PutBucketLogging" ], "Effect": "Deny", "Resource": "arn:aws:s3:::datascript-morning-talks", "Condition": { "StringNotLike": { "aws:username": [ "jiri" ] } } },
S3 bucket policy - umožní přístup z jiných AWS účtů pouze do nastavení přístupu a logování za předpokladu že je příhlášený IAM uživatel jiri.
Nástroje● IAM Policy generator● IAM Policy simulator● AWS Managed policies
http://awspolicygen.s3.amazonaws.com/policygen.htmlhttps://blogs.aws.amazon.com/security/post/Tx1OEZGD3E2FC4H/An-In-Depth-Look-at-the-IAM-Policy-Simulator
Federace● firemní Active Directory● Google● Facebook● SAML 2
Scenáře použití● vývojáři● administrátoři● partneři● dodavatelé● InfoSec● audit● automatizace infrastruktury● cloud brokering
CloudTrail
S3 access logging
0b0fbd7ab5d1058f35535fec64595ed51f7fa26ef77ac8e5d88230898be92e2f stepan-bucket [28/Jan/2016:12:47:32 +0000] 160.218.161.54 arn:aws:sts::012345678910:assumed-role/myrole/pihik 9E15D396E0071675 REST.PUT.OBJECT report.html "PUT /report.html HTTP/1.1" 200 - - 5134 457 6 "-" "aws-cli/1.9.21 Python/2.7.11 Windows/7 botocore/1.3.21" -
aws-cli s3 upload object
Integrace s CloudFormation● plná kontrola nad firemním AWS pomocí skriptovatelných šablon
Děkuji za pozornost
@pihikj
https://cz.linkedin.com/in/jiripihik
jiri.pihik[at]gmail.com
https://github.com/aws-scripting-guy
Recommended