æå°æš©éã®ååã«åŸãããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ããã«ãœããã°ã«ãŒããçµç¹åäœïŒOUïŒã«åºã¥ããŠã Amazon Simple Storage ServiceïŒAmazon S3ïŒ ã®ããŒã¿ãžã®ãã现ãããªã¢ã¯ã»ã¹ãå®çŸ©ããŸãããã®æ¹æ³ã¯ãäžæ£ã¢ã¯ã»ã¹ã®ãªã¹ã¯ã軜æžããã»ãã¥ãªãã£äŸµå®³ãçºçããå Žåã®æå®³ãæå¶ããã®ã«åœ¹ç«ã¡ãŸããåŸæ¥å¡ãèªåã®ã¿ã¹ã¯ã«äžå¯æ¬ ãªãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã®ã¿ãæã€ãããäžæ³šæã«ãã誀ã£ãããŒã¿ã®åãæ±ããã¹ãæå¶ããŸããããã«ãã客æ§ã¯ç²Ÿå¯ãªãŠãŒã¶ãŒã¢ã¯ãã£ããã£ã®è¿œè·¡ãšåæãå¯èœã«ããå
æ¬çãªç£æ»æ©èœãæãã§ããŸãããã®æ©èœã¯ãèŠå¶èŠä»¶ãšå
éšã¬ããã³ã¹åºæºãžã®éµå®ã«äžå¯æ¬ ã§ãããç°åžžãªæ¯ãèããã»ãã¥ãªãã£ã€ã³ã·ãã³ãã®è¿
éãªæ€åºãå¯èœã«ããŸãã å
æ¥ãAmazon Web ServicesïŒAWSïŒã¯ãæ°æ©èœãšã㊠Amazon S3 Access Grants ãçºè¡šããŸãããããã¯ã Microsoft Entra ïŒä»¥åã® Microsoft Azure ADïŒã Okta ãªã©ã®ãã£ã¬ã¯ããªå
ã®ã¢ã€ãã³ãã£ãã£ã Amazon S3 ã®ããŒã¿ã»ããã«ãããã³ã°ããããšããŠãŒã¶ãŒã«å¯èœã«ããŸããããã«ããããŠãŒã¶ãŒã¯äŒæ¥ã¢ã€ãã³ãã£ãã£ã«åºã¥ããŠãšã³ããŠãŒã¶ãŒã«é©å㪠Amazon S3 ã¢ã¯ã»ã¹ãèªåçã«ä»äžããããšã§ãå€§èŠæš¡ã«ããŒã¿æš©éã管çããããšãã§ããŸããS3 Access Grants ã¯ã AWS Identity and Access ManagementïŒIAMïŒ ãšå
±ã«äœ¿çšããããšãå¯èœã§ãããAmazon S3 å
ã®æ¢åã®ãªãœãŒã¹ã¬ãã«ã®ã³ã³ãããŒã«ïŒäŸãã° S3 ãã±ããããªã·ãŒïŒãè£å®ããç°¡åã§ã¹ã±ãŒã©ãã«ãªæ¹æ³ãšããŠå©çšã§ããŸããããã«ãS3 Access Grants ã¯ãAmazon S3 ããŒã¿ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšããããšã³ããŠãŒã¶ãŒã®ã¢ã€ãã³ãã£ãã£ãšã¢ããªã±ãŒã·ã§ã³ã AWS CloudTrail ã«èšé²ããŸããããã¯ãS3 ãã±ããå
ã®ãã¹ãŠã®ããŒã¿ã¢ã¯ã»ã¹ã®è©³çްãªç£æ»å±¥æŽãæäŸããã®ã«åœ¹ç«ã¡ãŸãã ãã®æçš¿ã§ã¯ãS3 Access Grants ãšãã®æ§æã«ã€ããŠã®æŠèŠãæäŸããç¹å®ã®ã¢ã¯ã»ã¹ãã¿ãŒã³ã«åºã¥ã㊠S3 Access Grants ã®äœ¿ç𿹿³ãäŸç€ºããŸããããã«ã¯ã IAM ããªã³ã·ãã«ãšã® S3 Access Grants ã®äœ¿ç𿹿³ãšãäŒæ¥ãã£ã¬ã¯ããªããã®ãŠãŒã¶ãŒãã°ã«ãŒããšã®äœ¿ç𿹿³ãå«ãŸããŸãã å€§èŠæš¡ãªè©³çްã¢ã¯ã»ã¹ãå®çŸ çŸåšããŠãŒã¶ãŒã¯ Amazon S3 ã®ããŒã¿ãžã®è©³çްãªã¢ã¯ã»ã¹ãéæããããã«ãã¢ã¯ã»ã¹ãã¿ãŒã³ã®èŠæš¡ãšè€éãã«å¿ããŠããŸããŸãªã¢ãããŒããæã£ãŠããŸãã Amazon S3 ã®ããŒã¿ãžã®è©³çްãªã¢ã¯ã»ã¹ãéæããæ¹æ³ã¯ãã¢ã¯ã»ã¹ãã¿ãŒã³ã®èŠæš¡ãšè€éãã«åºã¥ããŠå€ãããŸããå°èŠæš¡ãªããŒã¿ã»ããã®å ŽåããŠãŒã¶ãŒã¯éåžžãããªã·ãŒãµã€ãºã®å¶éå
ã«åãŸãéãã IAM ã¢ã¯ã»ã¹ããªã·ãŒ ãš ãã±ããããªã·ãŒ ã䜿çšããŸããããŒã¿ã»ãããšãŠãŒã¹ã±ãŒã¹ã®æ°ãå¢ããã«ã€ããŠãAWS ã¢ã«ãŠã³ãæ¯ã®ãªãŒãžã§ã³ãããæ°åã®ã¢ã¯ã»ã¹ãã€ã³ããèš±å¯ãã Amazon S3 ã¢ã¯ã»ã¹ãã€ã³ã ã䜿çšãããšãã代æ¿ãªãã·ã§ã³ããããŸãããã ãããã®ã¢ãããŒãã«ã¯ãããŒã¿ã»ããã«é©ããã¢ã¯ã»ã¹ãã€ã³ããèŠã€ããããã®è¿œå ããžãã¯ãå¿
èŠã§ãããéçãªã¢ã¯ã»ã¹ãã¿ãŒã³ã«é©ããŠããŸããããŒã¿æš©éã®è€éã§æŽç·Žãããè©äŸ¡ãå¿
èŠãªå Žåã第äžã®ã¢ãããŒããæ€èšãããããã§ã¯ã IAM ã»ãã·ã§ã³ãããŒã«ãŒ ããã¿ãŒã³ãæ¡çšãããŠãŒã¶ãŒã¯ã¢ã¯ã»ã¹æ±ºå®ã®ããžãã¯ãåŠçããåçã«çæã® IAM ã»ãã·ã§ã³è³æ Œæ
å ±ãçæããŸãããã®æ¹æ³ã¯ã¹ã±ãŒã©ããªãã£ããµããŒãããŠããŸããããŠãŒã¶ãŒèªèº«ã§ã¢ã¯ã»ã¹ãã¿ãŒã³ããžãã¯ãèšèšããã³å®è£
ããå¿
èŠããããŸãã ãããã®ã¢ãããŒãã§ã¯ãã¹ãŠãAmazon S3 ããŒã¿ã¢ã¯ã»ã¹ããŠãŒã¶ãŒãã°ã«ãŒãã«ãããã³ã°ããã¢ã¯ã»ã¹ãç£æ»ããããšã«ãããçšåºŠã®ãªãŒããŒãããããããŸããS3 Access Grants ãš IAM Identity Center ã®æ°ãã Trusted Identity Propagation ã¯ããŠãŒã¶ãŒãã°ã«ãŒããžã® Amazon S3 ã®è©³çްãªã¢ã¯ã»ã¹ã管çãããšãããã®è€éã§æéã®ãããäœæ¥ããŠãŒã¶ãŒããåãé€ããŸãã S3 Access Grants ã¯ããã±ããããã¬ãã£ãã¯ã¹ããŸãã¯ãªããžã§ã¯ãã¬ãã«ã§ã®èªã¿åãå°çšãæžã蟌ã¿å°çšããŸãã¯èªã¿æžãã¢ã¯ã»ã¹ãªã©ã®åçŽãªæš©éãå®çŸ©ããããšããŠãŒã¶ãŒã«å¯èœã«ããŸãããã®åŸããŠãŒã¶ãŒã¯ IAM ããªã³ã·ãã«ã S3 Access Grants ã«å²ãåœãŠãããšãã§ããŸãããŸãã¯ã AWS IAM Identity Center ãšã®çµ±åã䜿çšããŠãäŒæ¥ãã£ã¬ã¯ããªãããŠãŒã¶ãŒãã°ã«ãŒãã«ã¢ã¯ã»ã¹ãå²ãåœãŠãããšãã§ããŸããIAM Identity Center ãšã®çµ±åã䜿çšããå ŽåããŠãŒã¶ãŒã¯ãã£ã¬ã¯ããªã«ãŠãŒã¶ãŒãèªèšŒããäŒæ¥ã¢ããªã±ãŒã·ã§ã³ãæã¡èŸŒãããšãã§ããIAM Identity Center API ãšã®çµ±åã«æ°è¡ã®ã³ãŒãã远å ããããšã§ããããã®ã¢ããªã±ãŒã·ã§ã³ãèªèšŒãããåãŠãŒã¶ãŒã®ä»£çãšã㊠Amazon S3 äžã®ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããããã«ãIAM Identity Center çµ±åã䜿çšãããšããŠãŒã¶ãŒã®ã¢ã€ãã³ãã£ãã£ã Amazon S3 ããŒã¿ãžã®ãã¹ãŠã®ã¢ã¯ã»ã¹ãšãšãã«èšé²ãããããã誰ãäœã«ã¢ã¯ã»ã¹ãããã®ç£æ»ãå¯èœã«ãªããŸãã Amazon S3 Access Grants ã¯ãããªãã®ãŠãŒã¹ã±ãŒã¹ã«é©ããŠããŸããïŒ Amazon S3 ã§ã®å€ãã®æš©éãŠãŒã¹ã±ãŒã¹ã¯ãIAM ããªã³ã·ãã«ãš S3 ãã±ããã®äž¡æ¹ã«å¯Ÿã㊠IAM ããªã·ãŒã䜿çšããŠãç°¡åãã€å¹æçã«å®è£
ããããšãã§ããŸããå°èŠæš¡ãªãŠãŒã¹ã±ãŒã¹ã«ã¯ããã®ã¢ãããŒãããå§ãããŸããS3 Access Grants ã¯ã次ã®ãããªç¶æ³ã§ S3 ã§ã®ããŒã¿æš©éã®ç®¡çãç°¡çŽ åããŸãïŒ Amazon S3 ã«å€§éã®ããŒã¿ã»ããããããIAM ã S3 ãã±ããããªã·ãŒã®æåæ°å¶éãæžå¿µãããå Žåã æš©éã¹ããŒã ããŠãŒã¶ãŒ/ã°ã«ãŒãããããŒã¿ã»ãããžã®ãã¿ãŒã³ã«ããèªç¶ã«é©åããäžéã® IAM ããŒã«ã䜿çšããŠã¢ã¯ã»ã¹ãåŸããããããã£ã¬ã¯ããªã°ã«ãŒãã«çŽæ¥æš©éãå²ãåœãŠãæ¹ãç°¡åãªå Žåã ããè€éãªå€å¯Ÿå€ã®ãŠãŒã¶ãŒããããŒã¿ãžã®ãããã³ã°ãäŸãã°åã
ã®ãŠãŒã¶ãŒãè€æ°ã®ã°ã«ãŒãã®ã¡ã³ããŒã§ããããã®ããã® Amazon S3 å
ã®ããŒã¿ã»ããã®åéåãžã®ã¢ã¯ã»ã¹ãå¿
èŠãªã±ãŒã¹ã S3 Access Grants ã®ä»çµã¿ã詳ãã説æããåã«ãS3 Access Grants ã®ããŸããŸãªæ§æèŠçŽ ãçè§£ããŸãããã Amazon S3 Access Grants â ã³ã³ã»ãã S3 Access Grants ã¯ããã®ç°¡ç¥åãããã¢ã¯ã»ã¹ã¹ããŒã ã®ããã«ããã€ãã®ã³ã³ã»ãããå°å
¥ããŸãããŸããããããå®çŸ©ããŠãããŸãã S3 Access Grants ã€ã³ã¹ã¿ã³ã¹: S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã¯ãAmazon S3 ããŒã¿ãžã®ã¢ã¯ã»ã¹ã¬ãã«ã誰ã«ã©ã®ããã«ä»äžãããŠããããå®çŸ©ããåã
ã®æš©éã®è«ççãªã°ã«ãŒãã§ãã1 ã€ã® AWS ã¢ã«ãŠã³ãå
ã® 1 ã€ã® AWS ãªãŒãžã§ã³ããšã« 1 ã€ã®ã€ã³ã¹ã¿ã³ã¹ãèšå®ã§ããŸãããã®ã¢ã«ãŠã³ãããã³ãªãŒãžã§ã³ã¬ãã«ã® S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã¯ãåãã¢ã«ãŠã³ãããã³ AWS ãªãŒãžã§ã³ã®ãã¹ãŠã®ãã±ãããžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ã§ããŸããå€éšãã£ã¬ã¯ããªã®ãŠãŒã¶ãŒãã°ã«ãŒãã«ã¢ã¯ã»ã¹ãä»äžããããã« S3 Access Grants ã䜿çšããå Žåã¯ãS3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã IAM Identity Center ã€ã³ã¹ã¿ã³ã¹ã«é¢é£ä»ããå¿
èŠããããŸããä»ã® AWS ã¢ã«ãŠã³ãã® IAM ããªã³ã·ãã«ã«ã¢ã¯ã»ã¹ãä»äžããå Žåã¯ããããã®ã¯ãã¹ã¢ã«ãŠã³ã API åŒã³åºããèš±å¯ããããã«ãS3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã«ãªãœãŒã¹ããŒã¹ã®ããªã·ãŒã䜿çšããŸãã ãã±ãŒã·ã§ã³: S3 Access Grants ã¯ãç¹å®ã® Amazon S3 ãã¬ãã£ãã¯ã¹ãžã®ã¢ã¯ã»ã¹ãã¹ã³ãŒããšãã IAM è³æ Œæ
å ±ãçºè¡ããããšã§æ©èœããŸããS3 Access Grants ãã±ãŒã·ã§ã³ã¯ããããã®äžæã»ãã·ã§ã³ãäœæããã IAM ããŒã«ã«é¢é£ä»ããããŠããŸããæãäžè¬çãªèšå®ã¯ããã¹ãŠã® S3 Access Grants ã«å¯Ÿã㊠s3:// ã§åäžã®ãã±ãŒã·ã§ã³ã䜿çšããããšã§ãAWS ãªãŒãžã§ã³ããã³ã¢ã«ãŠã³ãå
ã®ãã¹ãŠã® S3 ãã±ãããžã®ã¢ã¯ã»ã¹ãã«ããŒã§ããŸããS3 Access Grants ã¯ããããããã©ã«ãããã±ãŒã·ã§ã³ãšåŒã³ãŸããããé«åºŠãªãŠãŒã¹ã±ãŒã¹ã§è€æ°ã®ç°ãªã IAM ããŒã«ã®äœ¿çšãå¿
èŠãªå Žåãã客æ§ã¯ãããè¡ãããã«è€æ°ã® S3 Access Grants ãã±ãŒã·ã§ã³ãäœæã§ããŸãã æš©é: S3 Access Grants ã®åã
ã®æš©éã¯ãç¹å®ã®ãšã³ãã£ãã£ïŒIAM ããªã³ã·ãã«ããã£ã¬ã¯ããªãŠãŒã¶ãŒããŸãã¯ãã£ã¬ã¯ããªã°ã«ãŒãïŒã«å¯ŸããŠãS3 ãã±ããããã¬ãã£ãã¯ã¹ããŸãã¯ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸããããšãã°ãç¹å®ã®ãã£ã¬ã¯ããªã°ã«ãŒã 01234567-89ab-cdef-0123-456789abcdef ã« s3://DOC-EXAMPLE-BUCKET/projects/foo/* ãžã® READ ã¢ã¯ã»ã¹ãèš±å¯ããæš©éãæã£ãŠããå Žåããã®ã°ã«ãŒãã®ãŠãŒã¶ãŒã¯ãã®ãã±ããå
ã® projects/foo/ ã®äžã®ãã¹ãŠã«èªã¿åãã¢ã¯ã»ã¹ãèš±å¯ãããŸãã S3 Access Grants ã®äžæçãªè³æ Œæ
å ±: ã¢ããªã±ãŒã·ã§ã³ã¯ãæ°ãã Amazon S3 APIã GetDataAccess ãåŒã³åºããŠãåäžã®ãªããžã§ã¯ãããã¬ãã£ãã¯ã¹ããŸãã¯ãã±ãããžã®ã¢ã¯ã»ã¹æš©éããªã¯ãšã¹ãããREADãWRITEããŸã㯠READWRITE ã®æš©éã¬ãã«ãèŠæ±ããŸããS3 Access Grants æ©èœã¯ãªã¯ãšã¹ããèšå®ãããæš©éã«å¯ŸããŠè©äŸ¡ããŸããäžèŽããæš©éãããã°ããã®æš©éã®ãã±ãŒã·ã§ã³ã«é¢é£ä»ãããã IAM ããŒã«ãåŒãç¶ããæš©éã IAM ã»ãã·ã§ã³ã®æš©éã«æ£ç¢ºã«ã¹ã³ãŒãããAmazon S3 ãã¬ãã£ãã¯ã¹ãŸã§ã®æš©éãäžããŸããã¢ã¯ã»ã¹è³æ Œæ
å ±ã®æå¹æéã¯ããã©ã«ãã§ 1 æéã§ããã15 åãã 36 æéãŸã§ä»»æã®å€ã«èšå®ããããšãã§ããŸãã ãããã®æ§æãäŸãæããŠçè§£ããŸããããæåã®ã»ã¯ã·ã§ã³ã§ã¯ã·ããªãªã説æããæ¬¡ã«ãã®ã·ããªãªã«å¯Ÿã㊠S3 Access Grants ãå®è£
ããŸãã Amazon S3 Access Grants â ã»ããã¢ãã ç§ãã¡ã説æããäŸã«ãããŠãS3 Access Grants ãã©ã®ããã«ããããããããçè§£ããããã«ã developerRole ããã³ analystRole ã2 ã€ã® IAM ããŒã«ãå®çŸ©ããŸããéèŠãªã®ã¯ãããŒã«ã¯å®éã®äººã
ã§ã¯ãªãã人ã
ããµãŒãã¹ãåŒãåãã圹å²ã§ãããšããããšã§ããåŸã»ã©ãIAM Identity Center ã䜿çšããŠãã¢ã¯ã»ã¹ãå®éã®ãŠãŒã¶ãŒãã°ã«ãŒãã«åºã¥ããŠããããšã瀺ããŸãã ã¢ã¯ã»ã¹ãã¿ãŒã³ã®ã·ããªãª 以äžã®å³ã§ã¯ã s3:// ã§ã¹ã³ãŒããå®çŸ©ãããããã©ã«ãã® Amazon S3 ã®ãã±ãŒã·ã§ã³ãšãã¢ã«ãŠã³ãå
ã§ Amazon S3 ã®ã¢ã¯ã·ã§ã³ãå®è¡ããæš©éãæã€ IAM ããŒã« s3ag-location-role ãå®çŸ©ãããŠããŸããS3 Access Grants ã¯ãã¢ã¯ã»ã¹ã®ãªã¯ãšã¹ãã«å¯ŸããŠãã® IAM ããŒã«ã䜿çšããŠäžæçãªè³æ Œæ
å ±ãäœæããŸãã æ¬¡ã«ã以äžã®ã¢ã¯ã»ã¹ãå®çŸ©ããŸããIAM ããŒã« developerRole ã¯ã developer/ ãã¬ãã£ãã¯ã¹ã«å¯Ÿã㊠READ ããã³ WRITE ã®ã¢ã¯ã»ã¹æš©ãæã¡ãŸããå¥ã® IAM ããŒã« analystRole ã¯ã analysis/ ãã¬ãã£ãã¯ã¹ã«å¯Ÿã㊠READ ã¢ã¯ã»ã¹ã®ã¿ãèš±å¯ãããŸããå·ŠåŽã® S3 Access GrantsïŒéè²ã§è¡šç€ºïŒã¯ã DOC-BUCKET-EXAMPLE ãã±ããå
ã®ãã¬ãã£ãã¯ã¹ developer/ ãžã®ã¢ã¯ã»ã¹ã developerRole ã«äžããããã«å®çŸ©ãããŠããŸããå³åŽã® S3 Access GrantsïŒç·è²ã§è¡šç€ºïŒã¯ã DOC-BUCKET-EXAMPLE ãã±ããå
ã®ãã¬ãã£ãã¯ã¹ analysis/ ãžã®ã¢ã¯ã»ã¹ã analystRole ã«äžããããã«å®çŸ©ãããŠããŸããããã¯ å³ 1 ã§ç€ºãããŠããŸãã å³ 1: S3 Access Grants ã®æŠèŠ å³ 1 ã«ç€ºãããŠããããã«ãBob ãããŒã¿ãèªãæã developerRole IAM ããŒã«ã䜿çšã㊠S3 Access Grants GetDataAccess API ãåŒã³åºããŸãã s3://DOC-BUCKET-EXAMPLE/developer/ ã§å§ãŸãä»»æã® Amazon S3 ãã¬ãã£ãã¯ã¹ãŸãã¯ãªããžã§ã¯ããžã® READ æš©éãèŠæ±ããå Žåã GetDataAccess 㯠s3://DOC-BUCKET-EXAMPLE/developer/* ãžã®æš©éãæã€ S3 Access Grants ã®äžæçãªè³æ Œæ
å ±ãè¿ããŸããåæ§ã«ãWRITE ã¢ã¯ã»ã¹ãèŠæ±ããããšãã§ããŸãããªããªããæš©éã¯ãããèš±å¯ããŠããããã§ãã åæ§ã«ãAlice 㯠analystRole IAM ããŒã«ã䜿çšã㊠GetDataAccess ãåŒã³åºããAmazon S3 ã® s3://DOC-BUCKET-EXAMPLE/analysis/ ã§å§ãŸããã®ãžã® READ ã¢ã¯ã»ã¹ãèŠæ±ã§ããŸãããããŠãS3 Access Grants ã¯é©åã«ã¹ã³ãŒãããã IAM ã»ãã·ã§ã³è³æ Œæ
å ±ãè¿ããŸããããããWRITE æš©éãèŠæ±ããå ŽåãããŒã¿ãžã®æžãèŸŒã¿æš©éãäžããæš©éããªããããã¢ã¯ã»ã¹æåŠãšã©ãŒãçºçããŸããããã«ãAlice ã s3://DOC-BUCKET-EXAMPLE/developer/ ã®äžã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ãä»»æã®ã¬ãã«ã§èŠæ±ããå ŽåããŸã㯠Bob ã s3://DOC-BUCKET-EXAMPLE/analysis/ ã®äžã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ãä»»æã®ã¬ãã«ã§èŠæ±ããå Žåããã¢ã¯ã»ã¹æåŠãšãªããŸãã S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ãããæå€§ 10 äžã®æš©éãš 1,000 ã®ãã±ãŒã·ã§ã³ãæã€ããšãã§ããŸããåã
ã®ãŠãŒã¶ãŒãšãã¬ãã£ãã¯ã¹ã®ã¢ã¯ã»ã¹èš±å¯ã®çµã¿åããã远å ãŸãã¯åé€ããããã³ã«ãé·ãè€é㪠S3 ãã±ããããªã·ãŒãç·šéãã代ããã«ãåé¢ä¿ã«å¯ŸããŠåå¥ã®æš©éã远å ããã³åé€ããããšãã§ããŸãã ã¢ã¯ã»ã¹ãã¿ãŒã³ã®ã·ããªãªã®ã»ããã¢ãã S3 Access Grants ã«ã€ããŠã®åºæ¬çãªæŠå¿µãçè§£ãããšããã§ãåã®ã»ã¯ã·ã§ã³ã§ç€ºããæš©éãäœæããæ¹æ³ãèŠãŠãããŸãããããã®äŸã§ã¯ãIAM ããŒã« developerRole ãš analystRole ãããã³ S3 ãã±ãã DOC-EXAMPLE-BUCKET ãæ¢ã«ååšããŠãããšããŸãã 1. S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã®äœæ: S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ãäœæããã«ã¯ã以äžã®ã³ãã³ããå®è¡ããŸãã aws s3control create-access-grants-instance --account-id 123456789012 2. S3 Access Grants ãã±ãŒã·ã§ã³ã®äœæ: 次ã®ã¹ãããã¯ãS3 Access Grants ãã±ãŒã·ã§ã³ãäœæããããšã§ãããããè¡ãã«ã¯ãS3 Access Grants ãµãŒãã¹ã«ä¿¡é Œãæã¡ãAmazon S3 ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãã IAM ããŒã«ãå¿
èŠã§ãããã® IAM ããŒã«ã s3ag-location-role ãšåŒã³ãŸãã i. S3 Access Grants IAM ããŒã« : S3 Access Grants ãè³æ Œæ
å ±ãçæã§ããããã«ããããã«ã¯ãIAM ããŒã«ãäœæããããããã±ãŒã·ã§ã³ã«é¢é£ä»ããå¿
èŠããããŸããIAM ããŒã«ä¿¡é Œããªã·ãŒã¯ããµãŒãã¹ããªã³ã·ãã« access-grants.s3.amazonaws.com ã以äžã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããããã«ããå¿
èŠããããŸãïŒ â sts:AssumeRole â èŠæ±è
ã®ã¢ã€ãã³ãã£ãã£ã§ IAM è³æ Œæ
å ±ãçæããããã«å¿
èŠ â sts:SetSourceIdentity â IAM ããŒã«ãåŒãåããæš©éã䜿çšããå Žåã«å¿
èŠ â sts:SetContext â DIRECTORY_USER/DIRECTORY_GROUP ã®æš©éã䜿çšããå Žåã«å¿
èŠ trust-policy.json ãšãããã¡ã€ã«ãäœæãã以äžã®å
容ããã¡ã€ã«ã«ã³ããŒïŒããŒã¹ãããŠãã ããïŒ //trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext" ] } ] } ãã®åŸã以äžã®ã³ãã³ããå®è¡ããŠãã ããïŒ aws iam create-role --role-name s3ag-location-role \ --assume-role-policy-document file://trust-policy.json ii. IAM ããŒã«ã« Amazon S3 ã®æš©éãä»äžãã IAM ããªã·ãŒãäœæãã iam-policy.json ãšãããã¡ã€ã«ãäœæããŠãã ãã //iam-policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:{{region}}:{{accountId}}:access-grants/{{instanceId}}" ] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:{{region}}:{{accountId}}:access-grants/{{instanceId}}" ] } } }, { "Sid": "BucketLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:{{region}}:{{accountId}}:access-grants/{{instanceId}}" ] } } }, { "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ] } ] } 泚èš: ãã® IAM ããªã·ãŒã§ã¯ããã¬ãŒã¹ãã«ã㌠{{ accountId }}, {{ region }}, ããã³ {{ instanceId }} ããããããããªãã®ã¢ã«ãŠã³ããAWS ãªãŒãžã§ã³ãAccess Grants ã€ã³ã¹ã¿ã³ã¹ ID ã®æ
å ±ã«çœ®ãæããå¿
èŠããããŸããäžèšã®ããªã·ãŒã¯ããã©ã«ããã±ãŒã·ã§ã³çšã§ããããã©ã«ã以å€ã®ãã±ãŒã·ã§ã³ãäœæããå Žåã¯ãããªã·ãŒã®ãªãœãŒã¹èŠçŽ å
ã®ãã±ãŒã·ã§ã³ãªã¹ããæŽæ°ããŠãã ããã ãã®åŸã以äžã®ã³ãã³ããå®è¡ããŠãã ããïŒ aws iam put-role-policy --role-name s3ag-location-role --policy-name s3ag-location-role --policy-document file://iam-policy.json iii. S3 Access Grants ãã±ãŒã·ã§ã³ã®äœæ IAM ããŒã«ãäœæããã®ã§ãã¢ã«ãŠã³ãçšã®ããã©ã«ã S3 Access Grants ãã±ãŒã·ã§ã³ãäœæãããã® IAM ããŒã«ãšé¢é£ä»ããããšãã§ããŸãã aws s3control create-access-grants-location \ --account-id 123456789012 \ --location-scope s3:// \ --iam-role-arn arn:aws:iam::123456789012:role/s3ag-location-role ãã±ãŒã·ã§ã³ã¹ã³ãŒãã s3:// ã«èšå®ããããšã¯ãS3 Access Grants ãã±ãŒã·ã§ã³ãäœæããéã«æšå¥šããããªãã·ã§ã³ã§ããããã«ããããã¹ãŠã® GetDataAccess ãªã¯ãšã¹ãã«å¯Ÿã㊠s3ag-location-role ã䜿çšããŠè³æ Œæ
å ±ãçºè¡ããããã« S3 Access Grants ã«æç€ºããŸãã S3 Access Grants ã䜿çšãã Amazon S3 ããŒã¿ãžã®ã¢ã¯ã»ã¹ïŒåäžã¢ã«ãŠã³ãã®ã·ããªãªïŒ 1. ã¢ã¯ã»ã¹æš©éã®äœæ: ããã§ãIAM ããŒã« developerRole ãš analystRole ã«ãããã developer/ ããã³ analysis/ ãã¬ãã£ãã¯ã¹ãžã®ã¢ã¯ã»ã¹èš±å¯ãä»äžããæš©éãäœæããããšãã§ããŸãããã®æç¹ã§ã developerRole ã« s3://DOC-EXAMPLE-BUCKET/developer/* ãžã®èªã¿æžãã¢ã¯ã»ã¹æš©éãäžããããã® 1 ã€ã®æš©éãšã analystRole ã« s3://DOC-EXAMPLE-BUCKET/analysis/* ãžã®èªã¿åãå°çšã¢ã¯ã»ã¹æš©éãäžããããã®å¥ã®æš©éãäœæã§ããŸãã developer/ ãã¬ãã£ãã¯ã¹ã« developerRole çšã® READWRITE S3 Access Grants ã®æš©éãäœæããŸãã aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix=âDOC-EXAMPLE-BUCKET/developer/*â \ --permission READWRITE \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::123456789012:role/developerRole analysis/ ãã¬ãã£ãã¯ã¹ã« analystRole çšã® READ S3 Access Grants ã®æš©éãäœæããŸãã aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix=âDOC-EXAMPLE-BUCKET/analysis/*â \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::123456789012:role/analystRole developerRole ãš analystRole ã® IAM ããŒã«ã« Amazon S3 ãã¬ãã£ãã¯ã¹ãžã®ã¢ã¯ã»ã¹ã S3 Access Grants ã®æš©éãéããŠäžãããããããŒã¿ãžã®çŽæ¥çãªã¢ã¯ã»ã¹æš©éïŒäŸïŒ s3:GetObject ã¢ã¯ã·ã§ã³ïŒãäžããå¿
èŠã¯ãããŸããã代ããã«ãåããŒã«ã«å¿
èŠãªã®ã¯ s3:GetDataAccess ãã€ãŸã S3 Access Grants ããããŒã¿ãžã®ã¢ã¯ã»ã¹ãèŠæ±ããèœåã§ããèšãæããã°ãS3 Access Grants ã¯ããããã® IAM ããŒã«ã®ã©ããã©ã®ããŒã¿ã»ãããžã®ã¢ã¯ã»ã¹æš©ãæã£ãŠããããè©äŸ¡ããŸãã ããã«ã¯ãIAM ããŒã« developerRole ãš analystRole ã«å¿
èŠãª IAM ããªã·ãŒã®äŸããããŸãïŒ { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetDataAccess" ], "Resource": [ "arn:aws:s3:us-east-2:123456789012:access-grants/default" ] } ] } developer ããã³ analyst ã® IAM ããŒã«ã®ããã®æš©éãçŸåšèšå®ãããŠããŸããæ¬¡ã«ã developerRole ã䜿çšã㊠Bob ããã®æš©éãå©çšã㊠Amazon S3 ã®ããŒã¿ãèªãæ¹æ³ã瀺ããŸãã 2. äžæçãªè³æ Œæ
å ±ã®ãªã¯ãšã¹ã: developerRole ã䜿çšããŠãBob 㯠S3 Access Grants ã® GetDataAccess API ãžã® API ãªã¯ãšã¹ããè¡ããŸãã aws s3control get-data-access \ --account-id 123456789012 \ --target s3://DOC-EXAMPLE-BUCKET/bob/developer/* \ --permission READ S3 Access Grants ã¯ãªã¯ãšã¹ããè¡ã£ãããªã³ã·ãã«ãã¿ãŒã²ãããããã³ãªã¯ãšã¹ããããæš©éã«åºã¥ããŠãªã¯ãšã¹ããè©äŸ¡ããŸããã¿ãŒã²ããããã®ãã±ãããšãã¬ãã£ãã¯ã¹ã§å§ãŸãä»»æã®æš©éãšäžèŽããéããS3 Access Grants ã¯æåã¬ã¹ãã³ã¹ãè¿ããŸãããã®æåã¬ã¹ãã³ã¹ã¯ S3 ããã®ããŒã¿ãè¿ãããã§ã¯ãªãããã®ããŒã¿ã«ã¢ã¯ã»ã¹ããããã® S3 Access Grants ã®äžæçãªè³æ Œæ
å ±ãè¿ããŸããåè¿°ã®ãªã¯ãšã¹ãã«å¯ŸããŠã GetDataAccess API ã¯æåããŸãããªããªãåŒã³åºãå
ã§ãã developerRole ã¯ããªã¯ãšã¹ã ( s3://DOC-EXAMPLE-BUCKET/developer/ ) ãšäžèŽããã¿ãŒã²ãã s3://DOC-EXAMPLE-BUCKET/developer/* ã«æš©éãæã£ãŠããããã§ãã ã¬ã¹ãã³ã¹ã¯ä»¥äžã®ããã«ãªããŸãïŒ { "Credentials": { "AccessKeyId": "ASIACKCEVSQ6C2EXAMPLE", "SecretAccessKey": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "SessionToken": "<SessionTokenString...>", "Expiration": "2023-11-07T17:34:37+00:00" }, "MatchedGrantTarget": "s3://DOC-EXAMPLE-BUCKET/developer/*" } åè¿°ã®æåã¬ã¹ãã³ã¹ã«ã¯äžæç㪠IAM ã»ãã·ã§ã³ã®èªèšŒæ
å ±ãå«ãŸããŠããŸãããããã®èªèšŒæ
å ±ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã¯äŸãã° Amazon S3 ã® GetObject API ãªã©ã® Amazon S3 ãªã¯ãšã¹ããè¡ãããããã®èªèšŒæ
å ±ãæå¹ãªæéå
ã« s3://DOC-EXAMPLE-BUCKET/developer/ äžã®ä»»æã®ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããããšãã§ããŸããèšãæããã°ãS3 Access Grants ã¢ããªã±ãŒã·ã§ã³ã¯éåžžãåã
ã®ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ããããããªã¯ãšã¹ãããã¹ãã§ã¯ãããŸããã代ããã«ãäžèŽããæš©éã®äžã§ã®å
šãŠã®ã¢ã¯ã»ã¹ã«å¯ŸããŠèªèšŒæ
å ±ãåå©çšãã¹ãã§ãã GetDataAccess ãžã®ä»»æã®ãªã¯ãšã¹ãããã®æš©éãšäžèŽããå Žåãæåã¬ã¹ãã³ã¹ã§åã MatchedGrantTarget ãçµæãšããŠè¿ãããŸããäŸãã°ããã Bob ã s3://DOC-EXAMPLE-BUCKET/developer/reports/file.txt ãžã® READ ã¢ã¯ã»ã¹ããªã¯ãšã¹ãããå Žåããããæš©éãšäžèŽãããããS3 Access Grants ã¯æåããŸããããã©ã«ãã§ã¯ããã®æåã¬ã¹ãã³ã¹ã«ã¯äžèŽããæš©éã®äžã§ãã¹ãŠã«ã¢ã¯ã»ã¹ããããã®äžæç㪠IAM ã»ãã·ã§ã³ã®èªèšŒæ
å ±ãå«ãŸããŠããŸãããã㯠s3://DOC-EXAMPLE-BUCKET/developer/ ã§ããã»ãšãã©ã® S3 Access Grants ã®äœ¿çšäŸã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãåããã¬ãã£ãã¯ã¹ã®äžã§å€ãã®åŸç¶ã®ãªã¯ãšã¹ããè¡ãå¯èœæ§ãé«ãããããããæãŸããæåã§ããããããã¢ããªã±ãŒã·ã§ã³ãããçãç¯å²ã®ã¢ã¯ã»ã¹ãæãå Žåãçšã«ãããŸãããã®å Žåããprivilegeããªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒããminimalãã®å€ã«èšå®ã§ããŸãããã®å ŽåãS3 Access Grants ã¯ç¹å®ã®ãªã¯ãšã¹ãããããªããžã§ã¯ãã«ã®ã¿ã¢ã¯ã»ã¹ããäžæç㪠IAM ã»ãã·ã§ã³ã®èªèšŒæ
å ±ãè¿ããŸãã GetDataAccess ãªã¯ãšã¹ããš developerRole ã®ã¬ã¹ãã³ã¹ã®äŸãããã€ã瀺ããŸãããã®äŸã§ã¯ã developerRole ã«å¯ŸããŠæ¬¡ã®äºã€ã®æš©éããããšä»®å®ããŸãïŒ s3://DOC-EXAMPLE-BUCKET/developer/* ãžã® READ æš©é s3://DOC-EXAMPLE-BUCKET/developer/reports/* ãžã® READ æš©é developerRole ãžã®æš©éã«å¯Ÿãã privilege ã®åäœãèŠãŠã¿ãŸãããã ãªã¯ãšã¹ããããç¯å² privilege èšå® è¿ãããç¯å² 广 DOC-EXAMPLE-BUCKET/developer/ default DOC-EXAMPLE-BUCKET/developer/* âdeveloper/âã§å§ãŸããã¹ãŠã®ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ DOC-EXAMPLE-BUCKET/developer/ minimal DOC-EXAMPLE-BUCKET/developer/ âdeveloper/âãšããååã® S3 ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ã®ã¿ïŒãã®ãããªãªããžã§ã¯ããããããšã¯äžè¬çã§ã¯ãªãïŒïŒâdeveloper/âãã¬ãã£ãã¯ã¹ã®äžã®ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹æš©ã¯ç¡ã DOC-EXAMPLE-BUCKET/developer/images/* minimal DOC-EXAMPLE-BUCKET/developer/images/* âdeveloper/images/âã§å§ãŸããã¹ãŠã®ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ DOC-EXAMPLE-BUCKET/developer/reports/file.txt default DOC-EXAMPLE-BUCKET/developer/reports/* âdeveloper/reports/âã§å§ãŸããã¹ãŠã®ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ïŒããå
·äœçãªäžèŽããæš©éããã£ãããïŒ DOC-EXAMPLE-BUCKET/developer/reports/file.txt minimal DOC-EXAMPLE-BUCKET/developer/reports/file.txt ã㌠developer/reports/file.txt ãæã€ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ãä»ã®ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹æš©ã¯ç¡ã åè¿°ã®äŸã§ã¯ãAmazon S3 å
ã® 2 ã€ã®ãã¬ãã£ãã¯ã¹ã«ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹ãæäŸããããšã«ãããS3 Access Grants ã®åäœã説æããŸãããS3 å
ã®ãã£ã 2 ã€ã® IAM ããŒã«ãš 2 ã€ã®ããŒã¿ã»ããã䜿çšãããã®ãã¿ãŒã³ã¯ãçŽæ¥ã® IAM èš±å¯æè¡ã䜿çšããŠååã«å®è£
ããããšãã§ãããã®ããã« S3 Acess Grants ã¯å¿
èŠãããŸãããããããIAM ããŒã«ãAmazon S3 å
ã®ãã¬ãã£ãã¯ã¹ãããã³ã¢ã¯ã»ã¹ãããã³ã°ã®æ°ãšè€éããå¢ãã«ã€ããŠãS3 Access Grants ã¯ç®¡çäžã®å©ç¹ãæã¡å§ããŸããããã«ãããåäžã®æš©éãäžã€ãã€ç®¡çã§ããããã«ãªããå€§èŠæš¡ã«ç·šéãããšè€éã«ãªãããšãããäžæå²©ã® IAM ããªã·ãŒããã¥ã¡ã³ãã®ç·šéããã广çã§ããç¹ã«ããããã® IAM ããŒã«ã®äžéšããã±ãããšã¯ç°ãªã AWS ã¢ã«ãŠã³ãå
ã«ããå ŽåãS3 ãã±ããããªã·ãŒã®ãµã€ãºå¶éãããµããŒãã§ããç°ãªãã¢ã¯ã»ã¹ãã¿ãŒã³ã®æ°ã«åœ±é¿ããŸãã æ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ãAWS ã¢ã«ãŠã³ãéã§ã®ã¢ã¯ã»ã¹ã®ããã® S3 Access Grants ã®èšå®æ¹æ³ã«ã€ããŠèª¬æããŸãã S3 Access Grants ã䜿çšãã Amazon S3 ããŒã¿ãžã®ã¢ã¯ã»ã¹ïŒã¯ãã¹ã¢ã«ãŠã³ãã®ã·ããªãªïŒ S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã¯ãªãœãŒã¹ããŒã¹ã®ããªã·ãŒããµããŒãããŠããŸãããã®ãããé©åãªãªãœãŒã¹ããŒã¹ã®ããªã·ãŒãããã°ãS3 Access Grants ã¯ä»ã® AWS ã¢ã«ãŠã³ãã® IAM ããªã³ã·ãã«ã«ã¢ã¯ã»ã¹ãèš±å¯ããããã«ã䜿çšããããšãã§ããŸãã ãã®äŸã§ã¯ãAWS ã¢ã«ãŠã³ã 111111111111 ãžã®æš©éã®ä»äžããµããŒãããããšãç®çãšããŠããŸããAWS ã¢ã«ãŠã³ã 111111111111 ã® IAM ããªã³ã·ãã«ã s3:GetDataAccess ã䜿çšã㊠S3 å
ã®ããŒã¿ã«ã¢ã¯ã»ã¹ããããšãæåŸ
ãããŠããããããã®ã¢ã¯ã·ã§ã³ãã¯ãã¹ã¢ã«ãŠã³ãã§å®è¡ããããšãèš±å¯ããŠããŸããããã«ç€ºãããŠãã s3:ListAccessGrants ãš s3:ListAccessGrantsLocations ã®æš©éã¯ããã®ã¢ã«ãŠã³ãã S3 Access Grants ããªã¹ããããããã䜿çšããŠããŒã¿ã«ã¢ã¯ã»ã¹ããããšãæåŸ
ããŠããå Žåã«å¿
èŠãšãªããŸãã //s3ag-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "111111111111" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess" ], "Resource": "arn:aws:s3:us-east-2:123456789012:access-grants/default" } ] } ãã®ããªã·ãŒããã¥ã¡ã³ãã S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã«å²ãåœãŠãã«ã¯ã次ã®ã³ãã³ããå®è¡ã§ããŸãïŒ aws s3control put-access-grants-instance-resource-policy \ --account-id 123456789012 \ --policy file://s3ag-policy.json \ --region us-east-2 ãã® S3 Access Grants ã€ã³ã¹ã¿ã³ã¹ã®ããªã·ãŒã¯éåžžã®ãªãœãŒã¹ããŒã¹ã®ããªã·ãŒã§ãããIAM ããªã·ãŒèšèªããµããŒããããã¹ãŠããµããŒãããŠããŸããããšãã° aws:PrincipalArn æ¡ä»¶ã䜿çšããŠã¢ã«ãŠã³ã 111111111111 ã®ç¹å®ã® IAM ããªã³ã·ãã«ã«ã¢ã¯ã»ã¹ãèš±å¯ããããšãã§ããŸããããéåžžã¯ããã§ãããè¡ãå¿
èŠã¯ãããŸããã代ããã«ãS3 Access Grantsã€ã³ã¹ã¿ã³ã¹å
ã§ããã®ã¢ã«ãŠã³ãã®åã
ã® IAM ããªã³ã·ãã«ã«å¯ŸããŠè©³çŽ°ãªæš©éãèšè¿°ããŸããããã㯠S3 Access Grants ã§åå¥ã«ç®¡çããæ¹ãããªãœãŒã¹ããŒã¹ã®ããªã·ãŒã§è¡ããããç°¡åã§ãã 以äžã¯ãã¢ã«ãŠã³ã 1111111111 ãã testingRole ãžã®ã¯ãã¹ã¢ã«ãŠã³ãæš©éä»äžã®å³ã§ãã å³ 2: ã¯ãã¹ã¢ã«ãŠã³ãã¢ã¯ã»ã¹ãæã€ Access Grants ãããŸã§ã«ãåã AWS ã¢ã«ãŠã³ãå
ããã³ç°ãªã AWS ã¢ã«ãŠã³ãã® IAM ããªã³ã·ãã«ã«ã¢ã¯ã»ã¹ãèš±å¯ããããã« S3 Access Grants ã䜿çšããããšã«ã€ããŠè©±ããŸãããç¹ã«åŒ·åãªæ©èœã¯ãIAM Identity Center ãšã® S3 Access Grants ã®çµ±åã«ãã£ãŠããããããããã£ã¬ã¯ããªãŠãŒã¶ãŒãšã°ã«ãŒãã«çŽæ¥æš©éãä»äžããèœåã§ããããšãã°ãçµç¹ã®ãŠãŒã¶ãŒãããŒã¿ã«ã¢ã¯ã»ã¹ããããã«äœ¿çšããäŒæ¥ã¢ããªã±ãŒã·ã§ã³ãããå Žåããããã®ãŠãŒã¶ãŒãšã°ã«ãŒãã«çŽæ¥ã¢ã¯ã»ã¹ãèš±å¯ããããšãã§ããŸããããã«ããããããã®ã¢ããªã±ãŒã·ã§ã³ã¯ä»¥åã®ããã«ãŠãŒã¶ãŒã IAM ããŒã«ã«ãããã³ã°ããå¿
èŠããªããªããŸããæ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ãS3 Access Grants ããã£ã¬ã¯ããªãŠãŒã¶ãŒãã°ã«ãŒããšäœ¿çšããæ¹æ³ã玹ä»ããŸãã ãã£ã¬ã¯ããªãŠãŒã¶ãŒã® S3 Access Grants ã䜿çšãã S3 ããŒã¿ãžã®ã¢ã¯ã»ã¹ S3 Access Grants ã AWS IAM Identity Center ãšäžç·ã«äœ¿çšããå ŽåãäŒæ¥ãã£ã¬ã¯ããªå
ã®ãŠãŒã¶ãŒãŸãã¯ãã®ã°ã«ãŒãã¡ã³ããŒã·ããã«åºã¥ããŠãã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ããŠãŒã¶ãŒã«æäŸããããšãã§ããŸããIAM Identity Center 㯠AWS ã¯ã©ãŠãå
ã§æã£ãŠãããŠãŒã¶ãŒãåã蟌ã¿ãAWS 管çã¢ããªã±ãŒã·ã§ã³ã AWS ã¢ã«ãŠã³ããžã®å²ãåœãŠã«å©çšã§ããããã«ããäžã€ã®å ŽæãæäŸããŸããS3 Access Grants ã IAM Identity Center ã«æ¥ç¶ãããšããŠãŒã¶ãŒã¯ S3 Access Grants ã䜿çšããŠã·ã³ã°ã«ãµã€ã³ãªã³äœéšãæäŸããã¢ããªã±ãŒã·ã§ã³ãéã㊠Amazon S3 ããŒã¿ã«ã¢ã¯ã»ã¹ããããšãã§ããŸãããããã®ãŠãŒã¶ãŒã¯ IAM ããŒã«ãçŽæ¥çè§£ããã䜿çšãããããå¿
èŠã¯ãããŸãããããã«ããããäžã€ã®å©ç¹ã¯ããŠãŒã¶ãŒã®ã¢ã€ãã³ãã£ãã£ã Amazon S3 ã® AWS CloudTrail ããŒã¿ã€ãã³ãã«èšé²ãããããšã§ã誰ãïŒã©ã®ãŠãŒã¶ãŒãïŒããŒã¿ã«ã¢ã¯ã»ã¹ãããã倿ããç£æ»äœæ¥ãç°¡çŽ åãããããšã§ãã S3 Access Grants ããã®æ¹æ³ã§äœ¿çšããåã«ããŸã AWS IAM Identity Center ãèšå®ããå¿
èŠããããŸãã詳现ã«ã€ããŠã¯ã ã¯ãŒã¯ãã©ãŒã¹ã¢ã€ãã³ãã£ãã£ã®ç®¡ç ãåç
§ããŠãã ãããç¥ã£ãŠããã¹ãäž»ãªããšã¯ã以äžã®éãã§ãïŒ IAM Identity Center ã«ãµããŒããããŠããã¢ã€ãã³ãã£ãã£ãããã€ããŒãæ¥ç¶ããæ¢åã®ãŠãŒã¶ãŒãšã°ã«ãŒãã䜿çšããããIAM Identity Center å
ã§ãŠãŒã¶ãŒãšã°ã«ãŒããäœæããããšãã§ããŸãã S3 Access Grants ã䜿çšãããŠãŒã¶ãŒãšã°ã«ãŒãã IAM Identity Center ã«ããããžã§ãã³ã°ããå¿
èŠããããŸããå€éšã¢ã€ãã³ãã£ãã£ãããã€ããŒã䜿çšããå Žåãããã¯ã¯ãã¹ãã¡ã€ã³ã¢ã€ãã³ãã£ãã£ç®¡çïŒSCIMïŒãããã³ã«ã䜿çšããŠè¡ãã®ãæé©ã§ãã ãŠãŒã¶ãŒã¯ãIAM Identity Center ãšçµ±åãããŠãã AWS ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ãéããŠããŒã¿ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸããã·ã³ã°ã«ãµã€ã³ãªã³äœéšãéããŠããŒã¿ã»ããã«ã¢ã¯ã»ã¹ããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããæ¹æ³ã«ã€ããŠã¯ã ãã®ããã°èšäº ãåç
§ããŠãã ããã IAM Identity Center ã®èšå®æ¹æ³ã«ã€ããŠã¯ã AWS IAM Identity Center ãæå¹ã«ãã ãã芧ãã ããã ããã§ã¯ãäŒæ¥ã®ãŠãŒã¶ãŒãã°ã«ãŒãåãã« S3 Access Grants ã§æš©éãäœæããæ¹æ³ãã玹ä»ããŸãã IAM Identity Center ãæå¹ã«ããID ãœãŒã¹ãèšå®ãããŠãŒã¶ãŒãããããžã§ãã³ã°ãããããŠãŒã¶ãŒãã°ã«ãŒãã«çŽæ¥ã¢ã¯ã»ã¹ãèš±å¯ããæºåãæŽããŸãããã®æé ã¯ä»¥äžã®éãã§ãïŒ 1. S3 Access Grants ã IAM Identity Center ã«é¢é£ä»ãã ãã®æé ã«ãããAccess Grants ã§ IAM Identity Center ã®ãŠãŒã¶ãŒãã°ã«ãŒããåç
§ã§ããããã«ãªããŸãããã㯠S3 Access Grants ã³ã³ãœãŒã«ã§ã¯ã³ã¯ãªãã¯ã§è¡ãããšãã§ããŸãã aws s3control associate-access-grants-identity-center \ --account-id 123456789012 \ --identity-center-arn arn:aws:sso:::instance/ssoins-1234567890abcdef 2. IAM Identity Center ãããŠãŒã¶ãŒãã°ã«ãŒãã«æš©éãäœæãã Identity Center ããç¹å®ã®ãŠãŒã¶ãŒãã°ã«ãŒãã« S3 Access Grant ãäœæããã«ã¯ãIAM Identity Center ã§ GUID ãèŠã€ããå¿
èŠããããŸãã以äžã§ã¯ãIAM Identity Center ã³ã³ãœãŒã«ã§ãã®å€ãèŠã€ããå Žæã瀺ããŠããŸããäŸãã°ããŠãŒã¶ãŒã Rafael ãã® IAM Identity Center ã§ã® GUID 㯠83d43802-00b1-7054-db02-f1d683aacba5 ã§ãã å³ 3: ãŠãŒã¶ãŒ ID ä»ã Identity Center ãŠãŒã¶ãŒæ
å ± IAM Identity Center ã®ãŠãŒã¶ãŒã® GUID ãèŠã€ããå¥ã®æ¹æ³ãšããŠã¯ãAWS CLI ãéããŠããŸã㯠AWS SDK ã䜿çšããŠããã°ã©ã çã« Identity Store API ãžã® API ãªã¯ãšã¹ããè¡ãæ¹æ³ããããŸãã ãã¡ãã Identity Store API ã®ããã¥ã¡ã³ã ã§ãã ããšãã°ããã®ã³ãã³ã㯠IAM Identity Center ã®ãŠãŒã¶ãŒãååãšèå¥åãšå
±ã«ãªã¹ãããŸãã aws identitystore list-users --identity-store-id d-1a2b3c4d1234 ãã®ã³ãã³ãã¯ãŠãŒã¶ãŒã® GUID ãè¿ããŸãã aws identitystore get-user-id --region us-east-21 --cli-input-json '{ "IdentityStoreId": "d-1a2b3c4d1234", "AlternateIdentifier": { "UniqueAttribute": { "AttributePath": "UserName", "AttributeValue": "rafael" } } }' ãã®ã³ãã³ã㯠IAM Identity Center ã®ã°ã«ãŒãããªã¹ãããŸãã aws identitystore list-groups --identity-store-id d-1a2b3c4d1234 ãããŠããã®ã³ãã³ã㯠â TeamA â ãšããååã®ã°ã«ãŒãã® GUID ãè¿ããŸãã aws identitystore get-group-id --region us-east-21 --cli-input-json '{ "IdentityStoreId": "d-1a2b3c4d1234", "AlternateIdentifier": { "UniqueAttribute": { "AttributePath": "DisplayName", "AttributeValue": "TeamA" } } }' IAM Identity Center ã®ãã£ã¬ã¯ããªãŠãŒã¶ãŒãšã°ã«ãŒãã« S3 Access Grants æš©éãä»äžããããšã¯ãIAM ããªã³ã·ãã«ãžã®ã¢ã¯ã»ã¹ãä»äžããããšã«äŒŒãŠããŸããä»äžããã察象ã®ã¿ã€ã㯠DIRECTORY_USER ãŸã㯠DIRECTORY_GROUP ã§ãä»äžãããèå¥å㯠IAM Identity Center ããŠãŒã¶ãŒãã°ã«ãŒããèå¥ããããã«äœ¿çšãã GUID ã«ãªããŸãã äŸãã°ã get-user-id ã䜿çšã㊠Rafael ã® GUID ãååŸãã以äžã®ã³ãã³ãã§ãã®ãŠãŒã¶ãŒ ID 83d43802-00b1-7054-db02-f1d683aacba5 ã« DOC-EXAMPLE-BUCKET/rafael/* ã®ç¯å²ã§ã¢ã¯ã»ã¹æš©ãä»äžããŸãã aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix="DOC-EXAMPLE-BUCKET/rafael/*" \ --permission READWRITE \ --grantee GranteeType=DIRECTORY_USER,GranteeIdentifier=83d43802-00b1-7054-db02-f1d683aacba5 \ çµè« ãã®æçš¿ã§ã¯ãS3 Access Grants ã Amazon S3 ãžã®ããŒã¿ã¢ã¯ã»ã¹ãæ¡åŒµããæ¹æ³ã«ã€ããŠåŠã³ãŸããããããã®æš©é㯠IAM ããªã³ã·ãã«ããµããŒãããã ãã§ãªããIAM Identity Center ãšåæãããäŒæ¥ãã£ã¬ã¯ããªã®ãŠãŒã¶ãŒãšã°ã«ãŒãã«çŽæ¥ã¢ã¯ã»ã¹æš©ãä»äžããããšãå¯èœã§ãã S3 Access Grants ã¯ãIAM ããŒã¹ã®æè¡ãããæè»ã§ã¹ã±ãŒã©ãã«ãªã¡ã«ããºã ãæäŸããå€§èŠæš¡ãªã¢ã¯ã»ã¹ãã¿ãŒã³ãå®çŸ©ã§ããŸããIAM Identity Center Trusted Identity Propagation ãšã®çµ±åã«ãããèªèšŒãããåãŠãŒã¶ãŒã®ä»£ããã« Amazon S3 ã®ããŒã¿ã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒãèªèšŒããããŒã¿ã¢ããªã±ãŒã·ã§ã³ãéçºããããšãã§ããŸãããŸããæçµçãªãŠãŒã¶ãŒã®ã¢ã€ãã³ãã£ãã£ã Amazon S3 ã® AWS CloudTrail ããŒã¿ã€ãã³ãã«è¡šç€ºããããããç£æ»ãç°¡çŽ åãããŸãã S3 Access Grants ã«ã€ããŠè©³ããç¥ãããå Žåã¯ã ããã¥ã¡ã³ã ãã芧ãã ããã Rafael Koike Rafael M. Koike ã¯ããµãŠã¹ã€ãŒã¹ãã®ãšã³ã¿ãŒãã©ã€ãºã«ã¹ã¿ããŒããµããŒãããããªã³ã·ãã«ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãããStorage TFC ã®äžå¡ã§ããã»ãã¥ãªãã£ãã¹ãã¬ãŒãžããããã¯ãŒãã³ã°ãã¢ããªã±ãŒã·ã§ã³éçºã«ããã圌ã®å°éç¥èã¯ãã客æ§ãå®å
šãã€è¿
éã«ã¯ã©ãŠããžç§»è¡ããéã«éèŠãªåœ¹å²ãæãããŠããŸãã Vaibhav Sabharwal Vaibhav Sabharwal ã¯ããã¥ãŒãšãŒã¯ãæ ç¹ãšãã Amazon Web Services ã®ã·ãã¢ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããæ°ããã¯ã©ãŠããã¯ãããžãŒã®åŠç¿ã«æ
ç±ãæã¡ãã¯ã©ãŠãæ¡çšæŠç¥ã®æ§ç¯ã驿°çãªãœãªã¥ãŒã·ã§ã³ã®èšèšããªãã¬ãŒã·ã§ãã«ã»ãšã¯ã»ã¬ã³ã¹ã®æšé²ãé¡§å®¢ã«æ¯æŽããŠããŸããAWS ã®éèãµãŒãã¹æè¡åéã³ãã¥ããã£ã®ã¡ã³ããŒãšããŠãæ¥çå
ã®ååçãªåãçµã¿ã«ç©æ¥µçã«è²¢ç®ããŠããŸãã ãã®èšäºã¯ Scaling data access with Amazon S3 Access Grants (èšäºå
¬éæ¥: 2023 幎 11 æ 26 æ¥) ã翻蚳ãããã®ã§ãã翻蚳ã¯äž²äžãæ
åœããŸããã <!-- '"` -->