devsecops in multi account

22
DevSecOps in Multi-Account Tomoaki Sakatoku Solutions Architect Amazon Web Service Japan

Upload: tomoaki-sakatoku

Post on 21-Jan-2018

978 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: DevSecOps in Multi Account

DevSecOps inMulti-Account

Tomoaki SakatokuSolutionsArchitect

AmazonWebServiceJapan

Page 2: DevSecOps in Multi Account

WhoIam…

酒徳 知明 (Tomoaki Sakatoku)PartnerSolutionsArchitect

• Ecosystem• DevSecOps

Page 3: DevSecOps in Multi Account

Multi-AccountStrategy

Page 4: DevSecOps in Multi Account

運⽤

構成変更時の影響範囲を⼩さくし、他の組織を気にすることなく⾃⾝固有の環境を利⽤したい

マルチ アカウントを⽤いる主な理由AWSアカウントを分割して運⽤するようになる主な理由:

組織

リソースの操作権限を特定の業務ユニット(LOB)に委譲し、その中でより⾃由にAWSプラットフォームを活⽤したい

ガバナンス 課⾦

課⾦に関する可視性、責任、及びアカウントごとのコントロールを⾏いたい例)LOBごとに課⾦を明確に分けたいなど

セキュリティ及びガバナンス上の理由から開発環境、テスト環境、本番環境でアカウントを分割したい例)PCI準拠のワークロードなど

Page 5: DevSecOps in Multi Account

http://worldnewsdailyreport.com/usa-mother-gives-birth-to-17-babies-at-once/

Page 6: DevSecOps in Multi Account

MultiAccountの前に...

Page 7: DevSecOps in Multi Account

IdentityAccessManagement- IAM

• ユーザ/クレデンシャル管理• IAMユーザ / パスワード• MFA (多要素認証)• クレデンシャルのローテーション

• アクセス権限管理• IAMグループ• IAMポリシー

• 権限の委任と監査• IAMロール• Security Temporary Token

Page 8: DevSecOps in Multi Account

[email protected]:111122223333

ec2ロール

{ "Statement": [{"Effect": "Allow","Action": "ec2:RunInstances","Resource": [

"arn:aws:ec2:*::image/ami-*","arn:aws:ec2:*:*:network-interface"arn:aws:ec2:*:*:instance/*","arn:aws:ec2:*:*:subnet/*","arn:aws:ec2:*:*:key-pair/*","arn:aws:ec2:*:*:security-group/*”]

},}]}

[email protected]:123456789012

devday のAccess Keyによる認証

{ "Statement": [{"Effect": "Allow","Action": "sts:AssumeRole","Resource":

"arn:aws:iam::111122223333:role/ec2-role"}]}

{ "Statement": [{"Effect":"Allow","Principal":{"AWS":"123456789012"},"Action":"sts:AssumeRole"

}]}

IdentityAccessManagement- IAMRole&STS

ec2 ロールの信頼関係

devday にアサインされている IAM Role

IAMUser:devday

ec2 ロールの権限

STS

EC2

アカウント A アカウント B

ec2 ロール⽤に⼀時的に利⽤可能なクレデンシャルを発⾏

Page 9: DevSecOps in Multi Account

IAM- AssumeRoleによるクレデンシャルの⽣成

Page 10: DevSecOps in Multi Account

SecurityatScaleInfrastructureasacode

Page 11: DevSecOps in Multi Account

管理者アカウント

IAMUsers

UsersStack

ターゲットアカウント

adminrole

billingrole

readonlyrole

BaselineStack

OverviewofBaselineDesign

SecurityStack

AdminMasterStack

BaselineStack BaselineStack

adminrole

billingrole

readonlyrole

adminrole

billingrole

readonlyrole

ターゲットアカウント

ターゲットアカウント

Page 12: DevSecOps in Multi Account

TargetAccountBaselineTemplate

• IAMRoleの作成• AssumeRoleに利⽤

• 設定サービス• CloudTrail (globalandlocal)• Config• S3AccessLogging• CloudTrailtoCloudWatchLogs• SNSForSlackIntegration(APIGWEndpoint)

adminrole

billingrole

readonlyrole

baselinestack

ターゲットアカウント

Page 13: DevSecOps in Multi Account

CodeHighlights– LambdaFunctionのデプロイ

Page 14: DevSecOps in Multi Account

IAMUsers

AdminAccountBaselineDesign

AmazonCloudWatch

AWSConfig

ConfigRules

AWSCloudTrail

CloudWatchEvents

AWSIAM

ManagedPolicies

Roles

AWSlambda

AmazonAPIGW

AmazonDynamoDB

管理者アカウント

UsersStack

SecurityStack

AdminStack

AWSCloudFormation

StepFunction

Page 15: DevSecOps in Multi Account

Cross-accountCloudWatch Eventsoverview

Managed account Consolidated admin account

API call CloudWatch event

regional SNS topic

Publishes event

Lambda event handler

Subscribes to

Remediation workflow(Step Functions state machine)

Remediation tasksSupervisorAdminRole

Assumes

API Gateway

HTTPS

(x-region)

Page 16: DevSecOps in Multi Account

管理者アカウント

IAMUsersAdmin

CrossAccountDeployment

Cloudformation Template Lambdazip

StepFunctionStateMachine

BaselineStack

AdminRole

ターゲットアカウント

1.AssumeRole

2.Create/UpdateStack

3.Waitsforstack

Page 17: DevSecOps in Multi Account

AmazonStepFunctionCrossRegion

Page 18: DevSecOps in Multi Account

AmazonStepFunction- StateMachine-

Page 19: DevSecOps in Multi Account

SimpleisthebestJ

Page 20: DevSecOps in Multi Account

AmazonCloudFormation

• Infrastructureasacode• ChangeSet Support• StackSet Support

• Admin:AWSCloudFormationStackSetAdministrationRole

• Target:AWSCloudFormationStackSetExecutionRole

Page 21: DevSecOps in Multi Account

DemoJ

Page 22: DevSecOps in Multi Account