æè¿ããã£ããå¯ããªãã¾ãããããå¯ããªã£ã¦éªãéãã¨éè·¯ãåã£ãããè»ãèµ°ãã®ãå°é£ã ã£ãããã¦ãèµ°è¡ã«å¯¾ãã¦ã®å¶éããããã¾ãããã
ã¨ãããã¨ã§ãManagement Consoleã¸ã®ã¢ã¯ã»ã¹ãå¶éãã¦ã¿ãã®ã§ããã®ãã¨ãæ¸ãã¦ããã¾ãã
ã¯ããã«
å¶éãããã®ãå®ç¾©ãã¦ããã¾ããä»åã¯ä»¥ä¸ã®ï¼ã¤ã§ãã
- 使ãã®ã¯ç§ã®ã¿
- MFAã使ã
- IPã¢ãã¬ã¹ã§ãã°ã¤ã³ã®å¶éããã
ãã®ï¼ã¤ãå¶éãã対象ã¨ãã¦ä½ã£ã¦ããã¾ãã
ä½ã£ã¦ãã
ã¾ãã¯åç´ã«ä½ã£ã¦ããã¾ãã
IAMã¦ã¼ã¶ã®ä½æ
ã¾ãã¯ä¸ã¤ç®ã®å¶éã§ããIAMã¦ã¼ã¶ã®ä½æãããã³ã³ããè¡ããMFAãå©ç¨ã§ããç¶æ
ã«ãã¦ãã ããã
ä»åã¯ãtestuserãã¨ããååã®ã¦ã¼ã¶ã§ä½æãé²ãã¾ãã
IAMã°ã«ã¼ãã®ä½æ
次ã¯ãäºã¤ç®ï¼ä¸ã¤ç®ã®å¶éãIAMã°ã«ã¼ãã®ä½æã§è¡ãã¾ããããã§ã¯ï¼ã¤ã®ããªã·ã¼ãå²ãå½ã¦ã¾ãã
IPã¢ãã¬ã¹ã®å¶é
äºã¤ç®ã®å¶éãIPã¢ãã¬ã¹ã§ããèªåãå©ç¨ããåç·ã®IPã¢ãã¬ã¹ã調ã¹ã¦ãä¿®æ£ãã¦ä¸ããã
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIP", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "xxx.xxx.xxx.xxx", "yyy.yyy.yyy.yyy", "zzz.zzz.zzz.zzz" ] } } } ] }
MFAã®å¶é
ä¸ã¤ç®ã®å¶éã§ããMFAã®è¨å®ãè¡ãã¾ããã¦ã¼ã¶ç¸ãã®MFAç¸ãã«ãã¾ãã
{ "Version": "2012-10-17", "Statement": [ { "Sid": "MFASettings01", "Effect": "Allow", "Action": "iam:DeactivateMFADevice", "Resource": [ "arn:aws:iam::000000000000:mfa/testuser", "arn:aws:iam::000000000000:user/testuser" ], "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } }, { "Sid": "MFASettings02", "Effect": "Allow", "Action": [ "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ResyncMFADevice", "iam:CreateVirtualMFADevice" ], "Resource": [ "arn:aws:iam::000000000000:mfa/$testuser", "arn:aws:iam::000000000000:user/$testuser" ] }, { "Sid": "MFASettings03", "Effect": "Allow", "Action": [ "iam:ListUsers", "iam:ListMFADevices", "iam:ListVirtualMFADevices" ], "Resource": "*" } ] }
å®è¡
ããã§ããã³ã³ãããã°ã¤ã³ããã¨ä¸é¨ä½¿ããªãæ©è½ãåºã¦ãã¾ãã
- CloudFormation
- AWS Certificate Manager
çç±ã¯ãéä¿¡å IPã«åºãã¦AWSã¸ã®ã¢ã¯ã»ã¹ãæå¦ããããã§ãã 詳細ã«ã¤ãã¦ã¯ããã¡ããåç §ä¸ããã
解決æ³
AssumeRoleã§ãã¼ã«ãå²ãå½ã¦ã
IAMãã¼ã«ãå²ãå½ã¦ããã¨ã«ãããæ¨©éãç§»è²ãã¾ãã
IAMãã¼ã«ã®ä½æ
ã¾ãã¯IAMãã¼ã«ã使ãã¾ããä»åã¯ãAdministratorAccessãããªã·ã¼ãå©ç¨ãããã¼ã«ã使ãã¾ãã
ä»åã¯ãTESTROLEãã¨ããååã§ä½æãã¾ãã
使ã¯ãã¯ãã¹ã¢ã«ã¦ã³ãã¢ã¯ã»ã¹ã®ãã¼ã«ãã®ãææãã¦ããAWSã¢ã«ã¦ã³ãéã®ã¢ã¯ã»ã¹ãæä¾ãã¾ãããã使ãã¦ããã¾ãã
ç¾å¨å©ç¨ä¸ã®ã¢ã«ã¦ã³ãIDãå
¥åãããMFAãå¿
è¦ãã«ãã§ãã¯ãå
¥ãã¾ãã
ããªã·ã¼ã®ã¢ã¿ããã¯ãAdministratorAccessãã«è¨å®ããæå¾ã«ä¿¡é ¼é¢ä¿ã®ç·¨éãè¡ãã¾ãã以ä¸ã®å
容ãå
¥åãã¦ä¸ãã
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:user/testuser" ] }, "Action": "sts:AssumeRole", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } } ] }
IAMã°ã«ã¼ãã®ä¿®æ£
IAMã°ã«ã¼ãã«é©ç¨ããããªã·ã¼ã®è¿½å ï¼ä¿®æ£ãè¡ãã¾ãã
AssumeRoleããéã®ãã¼ã«ã®æå®
å ã»ã©ä½æãããã¼ã«ãåãæ¿ãããã¿ã¤ãã³ã°ã§å©ç¨ã§ããããã«ãã¾ãã
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::000000000000:role/TESTROLE" } }
ACMã®CreateKeyãã§ããããã«ãã
ãã®ã¾ã¾ã ã¨ACMãå©ç¨ãã¦ãè¨¼ææ¸ã®ä½æãã§ããªãç¶æ
ã«ãªãã¾ãã
IPã¢ãã¬ã¹ã«ããå¶éããã¦ããããªã·ã¼ã夿´ãã¦ããããã¨ã§ACMã§è¨¼ææ¸ã®ä½æãè¡ããã¨ãã§ããããã«ãªãã¾ãã
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIP", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "XXX.XXX.XXX.XXX", "YYY.YYY.YYY.YYY", "ZZZ.ZZZ.ZZZ.ZZZ" ] }, "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } } ] }
ãããã«
ããã§ãIPã¢ãã¬ã¹ã§ããã³ã³ãå¶éã§ãã¾ããã ãã ãã以ä¸ã®Blackbeltã®è³æã«ãæ¸ããã¦ããéããaws:SourceIpæ¡ä»¶ã®å©ç¨ã¯ãªã¹ã¹ã¡ãã¾ããããå¶éã¯å¯è½ã§ãã®ã§ãä½ãã®è¶³ãã«ãªãã¨å¹¸ãã§ãã