inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

ๅฎŸๅ‹™ใงไฝฟ็”จใ•ใ‚Œใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ

AWSใ‚ผใƒญใƒˆใƒฉใ‚นใƒˆใฎๆ นๅนนใ‚’ๆˆใ™IAMใซใคใ„ใฆใ€ๆœ€ใ‚‚ๅŸบ็คŽ็š„ใช้ƒจๅˆ†ใ‹ใ‚‰่ฉณ็ดฐใชๅ†…ๅฎนใพใงๅญฆใถใ“ใจใŒใงใใพใ™ใ€‚ใ“ใ‚Œใ‚’้€šใ˜ใฆใ€ๅฎŸ้š›ใซใฉใฎใ‚ˆใ†ใช้ƒจๅˆ†ใŒ่„†ๅผฑใซใชใ‚Šๅพ—ใ‚‹ใฎใ‹ใ€ใฉใ“ใ‚’ใ‚ˆใ‚Šๆณจๆ„ใ™ในใใ‹ใ‚’ๅญฆใถใ“ใจใŒใงใใพใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

AWS
AWS
iam
iam
devsecops
devsecops
Terraform
Terraform
devops
devops
AWS
AWS
iam
iam
devsecops
devsecops
Terraform
Terraform
devops
devops

ใŠ็Ÿฅใ‚‰ใ›

5 ไปถ

  • rex๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€‚็Ÿฅ่ญ˜ๅ…ฑๆœ‰่€…ใƒใƒงใƒณใ‚ฌใƒณใƒŸใƒณใงใ™ใ€‚

    ไปŠๅ›žใ€Œๅˆใ‚ใฆใ‚นใ‚ฟใƒผใƒˆใ™ใ‚‹ใƒ‰ใƒƒใ‚ซใƒผใจใ‚ณใƒณใƒ†ใƒŠใ€ใจใ„ใ†่ฌ›็พฉใ‚’ใƒชใƒชใƒผใ‚นใ—ใ‚ˆใ†ใจๆ€ใ„ใพใ™ใ€‚ ๏ผˆใ‚ชใƒผใƒ—ใƒณๆ—ฅใฏใพใ ๆœชๅฎš๏ผ‰

    ใ“ใ‚Œใซไผดใ„ใ€ไปฅไธ‹ใฎใƒชใ‚นใƒˆใฎ่ฌ›็พฉใ‚’ๅ—่ฌ›ไธญใฎๆ–นใซๆ„Ÿ่ฌใฎๆฐ—ๆŒใกใ‚’่พผใ‚ใฆๅ—่ฌ›็”Ÿ็™ป้Œฒใ‚คใƒ™ใƒณใƒˆใ‚’้€ฒ่กŒใ—ใ‚ˆใ†ใจใ—ใพใ™ใ€‚

    1. ๅฎŸๅ‹™ใงไฝฟ็”จใ™ใ‚‹ใ‚ฏใƒฉใ‚ฆใƒ‰ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ

    2. ๅฎŸๅ‹™ใงไฝฟ็”จใ—ใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ

    3. [DevOps]้ซ˜้€Ÿใงๅฎ‰ๅ…จใชใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้…ๅธƒใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณ๏ผˆCI / CD๏ผ‰ใฎไฝœๆˆ


    Googleใƒ•ใ‚ฉใƒผใƒ ใ‚’้€šใ˜ใฆใƒชใƒชใƒผใ‚นใ•ใ‚Œใ‚‹่ฌ›็พฉใฎๅ†…ๅฎนใ‚’ใ”็ขบ่ชใ„ใŸใ ใใ€ใƒ•ใ‚ฉใƒผใƒ ใซ่จ˜ๅ…ฅใ—ใฆใŠ็”ณใ—่พผใฟใ„ใŸใ ใ‘ใ‚Œใฐใ€ๆ™‚้–“้€šใ‚Šใซ่ฟฝๅŠ ้€ฒ่กŒไบˆๅฎšใงใ™ใ€‚
    ใŸใ ใ—ใ€ๅฎŸ้š›ใฎ่ฌ›็พฉใŒใƒชใƒชใƒผใ‚นใ•ใ‚Œใ‚‹ใพใงใฏๅ—่ฌ›ใƒชใ‚นใƒˆใซใฏๅ‡บใพใ›ใ‚“ใฎใงใ€ใ“ใฎ็‚นใฏๅ‚่€ƒใซใŠ้ก˜ใ„ใ—ใพใ™ใ€‚

    ใ„ใคใ‚‚่ณชใฎ้ซ˜ใ„่ฌ›็พฉใ‚’ๆไพ›ใ™ใ‚‹ใ‚ˆใ†ๅŠชใ‚ใฆใพใ„ใ‚Šใพใ™ใ€‚

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • rex๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ๏ฝฅ

    ไฟฎๆญฃๆธˆใฟ

    ใ“ใ‚“ใซใกใฏใ€‚

    ๅฎŸๅ‹™ใงไฝฟ็”จใ—ใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚คใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎใƒใƒงใƒณใƒปใ‚ฌใƒณใƒŸใƒณใ€‚

    ไปŠๅ›žใ€ๆ–ฐใƒชใƒชใƒผใ‚นใฎAWS EKS Pod IdentityๆฉŸ่ƒฝใฎ่ชฌๆ˜ŽใจๅฎŸ่ทตๆ˜ ๅƒใ‚’่ฟฝๅŠ ใ—ใพใ—ใŸใ€‚

    1. ็™บๅฃฒ็†็”ฑใจ่‰ฏใใชใฃใŸ็‚น

    2. ๅ†…้ƒจๅ‹•ไฝœๆ–นๅผ

    3. ็งป่กŒๆ™‚ใฎๆณจๆ„็‚น

    ๅคงใใ่ฆ‹ใ‚‹ใจไธŠ่จ˜ใฎๅ†…ๅฎนใงใ™ใ€‚

    ็งใŒ้‡่ฆใซๆ€ใ†่ทๅ‹™้–“ใฎ็†่งฃใ‚’้ซ˜ใ‚ใ‚‹ใŸใ‚ใซ้ ญใ‚’็ตžใฃใฆๆง˜ใ€…ใชไบ‹ไพ‹ใ‚‚็”จๆ„ใ—ใพใ—ใŸใ€‚

    ไธไพฟใ ใฃใŸIRSAใ‚’ๅพŒใ‚ใซ้€ใ‚Šใ€AWS EKS Pod Identityใฎๆ™‚ไปฃใŒๆฅใฆใปใ—ใ„ใจๆฅฝใ—ใๆฅฝใ—ใ‚“ใงใ„ใŸใ ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™ใ€‚

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • rex๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€‚

    ๅฎŸๅ‹™ใงไฝฟ็”จใ—ใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚คใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎใƒใƒงใƒณใƒปใ‚ฌใƒณใƒŸใƒณใ€‚

    ไปŠๆ—ฅใ€่ฌ›็พฉๅใ‹ใ‚‰ใ€Œใƒ‘ใƒผใƒˆ1ใ€ใ‚’้™คใใ€ RolesAnywhere่ฌ›็พฉใ‚’ใƒชใƒชใƒผใ‚นใ™ใ‚‹ใ“ใจใซใชใ‚Šใ€ใƒ‹ใƒฅใƒผใ‚นใ‚’็™บ่กŒใ™ใ‚‹ใ“ใจใซใชใ‚Šใพใ—ใŸใ€‚

    ๅฎŸใฏ็พๅœจ่ฌ›็พฉใ‚’3้ƒจใง่€ƒใˆใฆใ„ใพใ—ใŸใ€‚

    ใ€Œ1้ƒจๅŸบ็คŽใ€2้ƒจๅฟœ็”จใ€3้ƒจๆ”ปๆ’ƒใ€็จ‹ๅบฆใงใ—ใŸใ€‚

    ใ€Œๆ‚ฉใ‚“ใงใ„ใพใ™ใ€ใซๆฎ‹ใ—ใฆใใ‚ŒใŸใ‚ˆใ†ใซใ€ๅฎŸ้š›ใฎไฝฟ็”จไบ‹ไพ‹ใซๅฏพใ™ใ‚‹้ƒจๅˆ†ใŒไธ่ถณใ—ใฆใ„ใŸใ‚Šโ€‹โ€‹๏ผˆใ‚‚ใกใ‚ใ‚“gitopsใ‚’่ฟฝๅŠ ใ—ใŸใฎใงใ™ใŒ๏ผ‰ใ€2/3้ƒจใŒใ„ใคๅ‡บใ‚‹ใฎใ‹ใ€็ด„ๆŸใ‚‚ใชใ„็Šถๆณใงใ‚ใพใ‚Šใซใ‚‚็„ก่ฒฌไปปใ ใจๆ€ใ„ใพใ—ใŸใ€‚

    ใใ—ใฆใ€่ฌ›็พฉๅใ‹ใ‚‰ใ€Œใƒ‘ใƒผใƒˆ1ใ€ใจใ„ใ†่จ€่‘‰ใ‚’้™คใ„ใฆใ€RolesAnywhereใฎๅ†…ๅฎนใ‚’่ฟฝๅŠ ใ™ใ‚‹ใ“ใจใซใชใ‚Šใพใ—ใŸใ€‚

    [RolesAnywhere]

    image
    ไธŠ่จ˜ใจๅŒใ˜ๅ†…ๅฎนใงใชใ•ใ‚ŒใฆใŠใ‚Šใ€RolesAnywhere็™บๅฃฒไปฅๆฅใ“ใ‚Œใพใงไฝฟ็”จใ—ใŸ็ตŒ้จ“ใ‚’ใ‚‚ใจใซๅฎŸๅ‹™ใซใ™ใใซ้ฉ็”จใงใใ‚‹ใปใฉ๏ผˆใจๆ€ใ†ใ‚ฏใ‚ชใƒชใƒ†ใ‚ฃใง๏ผ‰ใซใ—ใพใ—ใŸใ€‚

    ๅ‚่€ƒใŠ้ก˜ใ„่‡ดใ—ใพใ™ใ€‚ใ•ใ‚‰ใซใ€็ต‚ใˆใฆ้ƒจๅˆ†ใฏไธ€ๅบฆๆ˜ ๅƒใ‚’ๆถˆใ—ใฆใŠใ„ใŸ็Šถๆ…‹ใงใ™ใŒใ€็งใŒไปปๆ„ใซใ‚ปใ‚ฏใ‚ทใƒงใƒณใ‚’ๆถˆใ™ใ“ใจใŒใงใใšใ€ใŠๅ•ใ„ๅˆใ‚ใ›ๅพŒใซใใ‚Œใ„ใซ่ฆ‹ใˆใ‚‹ใ‚ˆใ†ใซๆŽช็ฝฎใ„ใŸใ—ใพใ™ใ€‚

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • rex๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€‚

    ๅฎŸๅ‹™ใงไฝฟ็”จใ—ใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ - ใƒ‘ใƒผใƒˆ1ใ‚คใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎใƒใƒงใƒณใƒปใ‚ฌใƒณใƒŸใƒณใ€‚

    GitLab 16.4ใƒใƒผใ‚ธใƒงใƒณใ‹ใ‚‰id_tokensใ‚’ใ‚ฐใƒญใƒผใƒใƒซ๏ผˆglobal๏ผ‰ใงไฝฟ็”จใงใใ‚‹ใ‚ˆใ†ใซใชใ‚Šใ€ใƒ‹ใƒฅใƒผใ‚นใ‚’็™บ่กŒใ™ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ—ใŸใ€‚

    ๆ—ขๅญ˜ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’่ฃฝไฝœใ™ใ‚‹ๅฝ“ๆ™‚ๅ‡บใฆใใŸใ‚‰ใ‚ˆใ‹ใฃใŸใฎใงใ™ใŒใ€ไปŠใงใ‚‚ๅ‡บใฆใใŸใฎใงๅนธใ„ใ ใจๆ€ใ„ใพใ™ใ€‚ๅค‰ๆ›ดๅ‰/ๅพŒใฎๅ†…ๅฎนใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™ใ€‚

    ใ€ๅค‰ๆ›ดๅ‰ใ€‘
    jobใ”ใจใซid_tokensใ‚’่จญๅฎšใ—ใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“ใงใ—ใŸใ€‚ใ—ใŸใŒใฃใฆใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใฏAnchorๆฉŸ่ƒฝใ‚’ไฝฟ็”จใ—ใฆไปฅไธ‹ใฎใ‚ˆใ†ใซไฝฟ็”จใ—ใพใ—ใŸใ€‚

    .tf_base: &tf_base id_tokens: GITLAB_OIDC_TOKEN: aud: https://gitlab.com before_script: - source ./tf_base.sh # https://www.tutorialspoint.com/linux-source-command - cd ${TF_PATH} init: <<: *tf_base ...

    ใ€ๅค‰ๆ›ดๅพŒใ€‘
    ใ“ใ‚Œใงjobๅˆฅใซไป˜ไธŽใ™ใ‚‹ใฎใงใฏใชใใ€ defaultใ‚ญใƒผใƒฏใƒผใƒ‰ใ‚ตใƒ–ใงใ‚ฐใƒญใƒผใƒใƒซใซไฝฟ็”จใงใใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ—ใŸใ€‚

    default: ... id_tokens: GITLAB_OIDC_TOKEN: aud: https://gitlab.com .tf_base: &tf_base before_script: - source ./tf_base.sh # https://www.tutorialspoint.com/linux-source-command - cd ${TF_PATH} init: <<: *tf_base ...

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • rex๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ๏ฝฅ

    ไฟฎๆญฃๆธˆใฟ

    ใ“ใ‚“ใซใกใฏใ€‚

    ๅฎŸๅ‹™ใงไฝฟ็”จใ—ใฆใ„ใ‚‹AWSใ‚ฏใƒฉใ‚ฆใƒ‰IAMใฎ็†่งฃใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ - ใƒ‘ใƒผใƒˆ1ใ‚คใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใƒผใฎใƒใƒงใƒณใƒปใ‚ฌใƒณใƒŸใƒณใ€‚

    aws-iam-gitopsใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎ่ฌ›็พฉใŒๅฎŒไบ†ใ—ใ€ๆ–ฐใ—ใ„ใƒ‹ใƒฅใƒผใ‚นใ‚’็™บ่กŒใ™ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ—ใŸใ€‚

    ใพใšใ€็ฐกๅ˜ใซ่ชฌๆ˜Žใ™ใ‚‹ใจใ€ไปฅไธ‹ใฎๅ†…ๅฎนใ‚’ๅญฆใถใ“ใจใซใชใ‚Šใพใ™ใ€‚

    1. GitLab CI/CDใฎ็†่งฃ

    2. GitLab CI/CD <-> AWS keyless ใƒญใƒผใƒซใฎไฝฟ็”จ

    3. Terraform DevSecOps ใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใฎๆง‹ๆˆ

    ๆœ€ๅˆใฏGitLabใพใŸใฏGitHubใฎOIDCใƒˆใƒผใ‚ฏใƒณใ‚’ไป‹ใ—ใŸAWSใฎๅฝนๅ‰ฒใฎ้€ฃๆบใ ใ‘ใ‚’ๆ‰ฑใŠใ†ใจใ—ใพใ—ใŸใŒใ€ๆœ€ใ‚‚้‡่ฆใงใ™ใŒใ€ๆ‰‹ใ‚’ๅทฎใ—ไผธในใ‚‹ใ‚ˆใ†ใชใ€Œใ‚ตใƒ—ใƒฉใ‚คใƒใ‚งใƒผใƒณใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ€ใซใคใ„ใฆไธ€ๅบฆใซๅฏพๅ‡ฆใ—ใฆใปใ—ใ„ใจใ„ใ†่€ƒใˆใซใ€ใพใฃใŸใๅˆฅใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’็”จๆ„ใ—ใฆใฟใพใ—ใŸใ€‚

    ใ€Œใ‚ใ‚ใ€CI / CDใพใŸใฏgitopsใจใ„ใ†ใฎใฏใ“ใ‚“ใชใ“ใจใ ๏ผใ€ๅๅˆ†ใซ่ฟ‘ใฅใ„ใฆ็†่งฃใ—ใฆใ„ใ‚Œใฐใ€ๅฎŸๅ‹™ใงSASTใ€DASTใ‚’้ฉ็”จใ™ใ‚‹ใฎใซๅฝน็ซ‹ใคใจๆ€ใ„ใพใ™ใ€‚

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0

๏ฟฅ11,159