AgentCore Identity

1. Overview


AgentCore IdentityλŠ” AI μ—μ΄μ „νŠΈκ°€ μ—¬λŸ¬ μ„œλΉ„μŠ€μ—μ„œ μ‚¬μš©μžλ³„ 데이터에 μ•ˆμ „ν•˜κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€. κΈ°μ‘΄ λ°©μ‹μ˜ 단점듀(κ΄‘λ²”μœ„ν•œ μ ‘κ·Ό κΆŒν•œ λ˜λŠ” μ„œλΉ„μŠ€λ§ˆλ‹€ 반볡적인 μ‚¬μš©μž λ™μ˜)을 κ·Ήλ³΅ν•˜κ³ , μœ„μž„ 기반 인증과 제둜 트러슀트 λ³΄μ•ˆ 원칙을 톡해 이λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€.

전체 μ›Œν¬ν”Œλ‘œ

Step 1. μ‚¬μš©μž 인증 및 μš”μ²­

  1. μ‚¬μš©μž OAuth/OIDC 둜그인 β†’ κΈ°μ‘΄ ID μ œκ³΅μ—…μ²΄(Auth0, Cognito λ“±)μ—μ„œ 토큰 λ°œκΈ‰

  2. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 처리 β†’ μ‚¬μš©μž 토큰 검증 및 μ„Έμ…˜ μ„€μ •

  3. AI μ—μ΄μ „νŠΈ μš”μ²­ β†’ μ‚¬μš©μžκ°€ μ—μ΄μ „νŠΈμ—κ²Œ λ¦¬μ†ŒμŠ€ μ ‘κ·Ό μš”μ²­

Step 2. 토큰 κ΅ν™˜

  1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ β†’ μ—μ΄μ „νŠΈ β†’ μ‚¬μš©μž 토큰과 ν•¨κ»˜ μ—μ΄μ „νŠΈ μ„œλΉ„μŠ€ 호좜

  2. μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰 μš”μ²­ β†’ AgentCore Identity에 토큰 κ΅ν™˜ μš”μ²­

  3. μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰 λ°œκΈ‰ β†’ μ‚¬μš©μž 토큰 검증 ν›„ μ—μ΄μ „νŠΈμš© 토큰 생성

Step 3. μ—μ΄μ „νŠΈ μ‹€ν–‰ μ‹œμž‘

  1. AI μ—μ΄μ „νŠΈ 호좜 β†’ μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ ν† ν°μœΌλ‘œ μ—μ΄μ „νŠΈ μ‹€ν–‰

  2. λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ 토큰 μš”μ²­ β†’ μ™ΈλΆ€ μ„œλΉ„μŠ€(Google, Slack λ“±) μ ‘κ·Όμš© 토큰 μš”μ²­

Step 4. μ‚¬μš©μž λ™μ˜ ν”„λ‘œμ„ΈμŠ€ (토큰이 μ—†λŠ” 경우)

  1. μ‚¬μš©μž 인증 μš”κ΅¬ β†’ 토큰 μ €μž₯μ†Œμ— μ—†μœΌλ©΄ μ‚¬μš©μž λ™μ˜ URL λ°˜ν™˜

  2. 인증 μš”μ²­ β†’ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 인증 URL 전달

  3. λ™μ˜ ν™”λ©΄ ν‘œμ‹œ β†’ μ‚¬μš©μžμ—κ²Œ 제3자 μ„œλΉ„μŠ€ μ ‘κ·Ό λ™μ˜ μš”μ²­

  4. μ‚¬μš©μž λ™μ˜ β†’ μ‚¬μš©μžκ°€ 데이터 곡유 승인

  5. λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ 토큰 λ°œκΈ‰ β†’ 제3자 μ„œλΉ„μŠ€κ°€ 토큰 λ°œκΈ‰

Step 5. 데이터 μ ‘κ·Ό 및 응닡

  1. 토큰 μ €μž₯ 및 λ°˜ν™˜ β†’ AgentCore Identityκ°€ 토큰을 μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³  μ—μ΄μ „νŠΈμ— λ°˜ν™˜

  2. λ¦¬μ†ŒμŠ€ 데이터 μš”μ²­ β†’ μ—μ΄μ „νŠΈκ°€ ν† ν°μœΌλ‘œ μ‹€μ œ 데이터 μ ‘κ·Ό

  3. 데이터 검증 및 λ°˜ν™˜ β†’ 제3자 μ„œλΉ„μŠ€κ°€ 토큰 검증 ν›„ 데이터 제곡

  4. 응닡 μ‘°ν•© β†’ μ—μ΄μ „νŠΈκ°€ 받은 λ°μ΄ν„°λ‘œ μ΅œμ’… 응닡 생성

  5. μ‚¬μš©μžμ—κ²Œ κ²°κ³Ό ν‘œμ‹œ β†’ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‚¬μš©μžμ—κ²Œ μ΅œμ’… κ²°κ³Ό 제곡

단계
λ‚΄μš© 및 μ„€λͺ…

1. μ‚¬μš©μž OAuth/OIDC 둜그인 및 토큰 전달

μ‚¬μš©μžλŠ” 쑰직의 κΈ°μ‘΄ ID κ³΅κΈ‰μž(예: Auth0, AWS Cognito, 기타 OIDC ν˜Έν™˜ μ‹œμŠ€ν…œ)λ₯Ό 톡해 인증을 λ°›κ³ , μ•‘μ„ΈμŠ€ 토큰 λ˜λŠ” ID 토큰을 νšλ“ν•©λ‹ˆλ‹€. 이 ν† ν°μ—λŠ” μ‚¬μš©μž ID와 κΆŒν•œ λ²”μœ„κ°€ ν¬ν•¨λ˜μ–΄, μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό AI μ—μ΄μ „νŠΈμ— μ „λ‹¬λ˜μ–΄ μ‚¬μš©μž 인증과 κΆŒν•œ 확인에 μ‚¬μš©λ©λ‹ˆλ‹€.

2. μ‚¬μš©μž 둜그인 처리 및 μ„Έμ…˜ μ„€μ •

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 받은 토큰을 κ²€μ¦ν•˜μ—¬ μ‚¬μš©μžκ°€ 적절히 μΈμ¦λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κ³ , λ³΄μ•ˆ μ„Έμ…˜μ„ μ„€μ •ν•©λ‹ˆλ‹€. λ˜ν•œ ν† ν°μ—μ„œ μ‚¬μš©μž 정보λ₯Ό μΆ”μΆœν•˜μ—¬ κ°œμΈν™” 및 μ•‘μ„ΈμŠ€ μ œμ–΄μ— ν™œμš©ν•©λ‹ˆλ‹€.

3. AI μ—μ΄μ „νŠΈ λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ μš”μ²­

μ‚¬μš©μžκ°€ AI μ—μ΄μ „νŠΈμ™€ μƒν˜Έμž‘μš©μ„ μ‹œμž‘ν•˜λ©΄, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ‚¬μš©μž 인증 토큰과 μš”μ²­ μ»¨ν…μŠ€νŠΈλ₯Ό ν¬ν•¨ν•˜μ—¬ AI μ—μ΄μ „νŠΈ ν˜ΈμΆœμ„ μš”μ²­ν•©λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν”„λ‘μ‹œ 역할을 ν•˜μ—¬ μ‚¬μš©μž 신원을 μœ μ§€ν•˜λ©° μš”μ²­μ„ μ „λ‹¬ν•©λ‹ˆλ‹€.

4. AgentCore μ„œλΉ„μŠ€μ˜ 토큰 μœ νš¨μ„± 검사

Bedrock AgentCoreλŠ” μ‚¬μš©μž ν† ν°μ˜ μ„œλͺ…, 만료, λ°œκΈ‰μž, λŒ€μƒ, κΆŒν•œ λ²”μœ„ 등을 μ—„κ²©νžˆ κ²€μ¦ν•˜κ³ , μš”μ²­μ΄ λ³΄μ•ˆ 정책에 λΆ€ν•©ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

5. μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰 μš”μ²­ (토큰 κ΅ν™˜)

AgentCoreλŠ” μ‚¬μš©μž 토큰을 기반으둜 μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰을 μ–»κΈ° μœ„ν•΄ 토큰 κ΅ν™˜ APIλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. 이 과정은 IAM 자격 증λͺ…을 톡해 인증되며, μ•ˆμ „ν•œ μ‹ λ’° 체인을 μœ μ§€ν•©λ‹ˆλ‹€.

6. AgentCore Identity의 토큰 검증 및 λ°œκΈ‰

AgentCore IdentityλŠ” μ‚¬μš©μž 토큰을 λ‹€μ‹œ ν•œλ²ˆ μ² μ €νžˆ κ²€μ¦ν•œ ν›„ μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰을 λ°œκΈ‰ν•©λ‹ˆλ‹€. 이 λ‹¨κ³„λŠ” 제둜 트러슀트 λ³΄μ•ˆ 원칙에 따라 λͺ¨λ“  μš”μ²­μ„ λ…λ¦½μ μœΌλ‘œ μΈμ¦ν•˜κ³  κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€.

7. AI μ—μ΄μ „νŠΈκ°€ μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ ν† ν°μœΌλ‘œ μž‘μ—… μˆ˜ν–‰

AI μ—μ΄μ „νŠΈλŠ” 받은 토큰을 μ‚¬μš©ν•΄ μžμ‹ κ³Ό μ‚¬μš©μžμ˜ 신원을 증λͺ…ν•˜λ©° μš”μ²­λœ μž‘μ—…μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 λ‹€μ–‘ν•œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 인증된 μš”μ²­μ΄ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

8. μ—μ΄μ „νŠΈκ°€ λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ 토큰 μš”μ²­

AI μ—μ΄μ „νŠΈκ°€ AWS λ¦¬μ†ŒμŠ€λ‚˜ Google μΊ˜λ¦°λ”, Slack λ“±μ˜ 타사 μ„œλΉ„μŠ€ μ ‘κ·Ό μ‹œ AgentCore 자격 증λͺ… κ³΅κΈ‰μžμ—κ²Œ μ μ ˆν•œ 자격 증λͺ…을 μš”μ²­ν•©λ‹ˆλ‹€. μ΄λ•Œ μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰이 신원 및 κΆŒν•œ 증거둜 ν™œμš©λ©λ‹ˆλ‹€.

9. μ‚¬μš©μž λ™μ˜ 및 인증 μš”μ²­

λ§Œμ•½ μš”μ²­λœ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ κΈ°μ‘΄ μ•‘μ„ΈμŠ€ 토큰이 μ—†κ±°λ‚˜ λͺ…μ‹œμ  μ‚¬μš©μž λ™μ˜κ°€ ν•„μš”ν•œ 경우, AgentCore IdentityλŠ” μ‚¬μš©μž 인증 및 λ™μ˜ 절차λ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€. μ΄λŠ” OAuth 2.0 κΆŒν•œ λΆ€μ—¬ μ½”λ“œ 흐름 등을 톡해 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

10. μ‚¬μš©μž 인증 및 λ™μ˜ ν”„λ‘¬ν”„νŠΈ

μ‚¬μš©μž μΈ‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ κΆŒν•œ λΆ€μ—¬ URL을 λ°›μ•„ μ‚¬μš©μžμ—κ²Œ 인증 및 데이터 곡유 λ™μ˜λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.

11. μ‚¬μš©μž λ™μ˜ 수락 및 λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ 토큰 λ°œκΈ‰

μ‚¬μš©μžκ°€ λ™μ˜ν•˜λ©΄, 타사 μ„œλΉ„μŠ€(예: Google, Microsoft)λŠ” μ‚¬μš©μžμ˜ 자격 증λͺ…κ³Ό λ™μ˜λ₯Ό κ²€μ¦ν•˜κ³  μ œν•œλœ λ²”μœ„μ˜ μ•‘μ„ΈμŠ€ 토큰을 λ°œκΈ‰ν•©λ‹ˆλ‹€.

12. AgentCore Identity의 토큰 μ €μž₯ 및 λ°˜ν™˜

λ°œκΈ‰λœ λ¦¬μ†ŒμŠ€ μ•‘μ„ΈμŠ€ 토큰은 μ•ˆμ „ν•˜κ²Œ μ €μž₯λ˜μ–΄ λ‚˜μ€‘μ— μž¬μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€. 이 μ €μž₯μ†ŒλŠ” 제둜 트러슀트 원칙에 따라 μ—„κ²©νžˆ κ΄€λ¦¬λ˜μ–΄, 무단 접근을 λ°©μ§€ν•©λ‹ˆλ‹€.

13. μ—μ΄μ „νŠΈκ°€ λ¦¬μ†ŒμŠ€ API 호좜

μ—μ΄μ „νŠΈλŠ” μ €μž₯된 μ•‘μ„ΈμŠ€ 토큰을 μ‚¬μš©ν•΄ 타사 APIλ₯Ό ν˜ΈμΆœν•˜μ—¬ 데이터 읽기/μ“°κΈ° μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

14. 타사 λ¦¬μ†ŒμŠ€μ˜ 토큰 검증 및 데이터 λ°˜ν™˜

타사 μ„œλΉ„μŠ€λŠ” ν† ν°μ˜ μœ νš¨μ„±, 만료 μ—¬λΆ€, κΆŒν•œ λ²”μœ„λ₯Ό ν™•μΈν•œ ν›„ μš”μ²­λœ 데이터λ₯Ό λ°˜ν™˜ν•˜κ±°λ‚˜ μž‘μ—… μ™„λ£Œλ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

15. AI μ—μ΄μ „νŠΈ 응닡 μ‘°ν•©

μ—μ΄μ „νŠΈλŠ” AWS 및 타사 μ„œλΉ„μŠ€μ—μ„œ 받은 데이터λ₯Ό μ²˜λ¦¬ν•˜κ³ , μΆ”κ°€ 둜직과 κ²°ν•©ν•˜μ—¬ μ‚¬μš©μž μš”μ²­μ— λ§žλŠ” μ΅œμ’… 응닡을 μƒμ„±ν•©λ‹ˆλ‹€.

16. AgentCoreκ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 응닡 λ°˜ν™˜

μ™„μ„±λœ 응닡은 μ‚¬μš©μž λŒ€λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ μ „λ‹¬λ˜λ©°, μž‘μ—… 결과와 κ΄€λ ¨ 데이터, 감사 정보가 ν¬ν•¨λ©λ‹ˆλ‹€.

17. μ‚¬μš©μž μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 응닡 ν‘œμ‹œ

μ‚¬μš©μžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κ²°κ³Όλ₯Ό ν™•μΈν•˜κ³ , AI μ—μ΄μ „νŠΈκ°€ μˆ˜ν–‰ν•œ μž‘μ—…κ³Ό μ ‘κ·Ό κΆŒν•œμ„ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.

18. μ›Œν¬ν”Œλ‘œ μ’…λ£Œ 및 λ³΄μ•ˆ μœ μ§€

λͺ¨λ“  토큰 관리, 감사 둜그 기둝, μš”μ²­ 처리 과정이 μ™„λ£Œλ˜λ©΄μ„œ μ•ˆμ „ν•œ ν™˜κ²½μ—μ„œ μ›Œν¬ν”Œλ‘œκ°€ μ’…λ£Œλ©λ‹ˆλ‹€.

μ£Όμš” κ°œλ… 및 νŠΉμ§•

핡심 κΈ°λŠ₯

Identity Management

  • κΈ°μ‘΄ ID μ œκ³΅μ—…μ²΄μ™€ ν˜Έν™˜λ˜λŠ” μ•ˆμ „ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•œ μ—μ΄μ „νŠΈ ID 및 μ•‘μ„ΈμŠ€ 관리 κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ μ‚¬μš©μž λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄λ‚˜ 인증 ν”Œλ‘œμš° μž¬κ΅¬μΆ•μ΄ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Token Vault

  • λ™μ˜ ν”Όλ‘œλ₯Ό μ΅œμ†Œν™”ν•˜λŠ” μ•ˆμ „ν•œ 토큰 μ €μž₯μ†Œλ₯Ό 톡해 κ°„μ†Œν™”λœ AI μ—μ΄μ „νŠΈ κ²½ν—˜μ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • OAuth 2.0 ν˜Έν™˜ 도ꡬ 및 μ„œλΉ„μŠ€μ˜ 경우, μ‚¬μš©μžκ°€ 처음 μ—μ΄μ „νŠΈκ°€ μžμ‹ μ„ λŒ€μ‹ ν•˜μ—¬ μž‘μ—…ν•  수 μžˆλ„λ‘ λ™μ˜ν•  λ•Œ, AgentCore IdentityλŠ” λ„κ΅¬μ—μ„œ λ°œκΈ‰λœ μ‚¬μš©μž 토큰을 μ €μž₯μ†Œμ— μˆ˜μ§‘ν•˜κ³  μ €μž₯ν•˜λ©°, μ—μ΄μ „νŠΈμ˜ OAuth ν΄λΌμ΄μ–ΈνŠΈ 자격 증λͺ…을 μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•©λ‹ˆλ‹€.

Permission Delegation

  • μ μ ˆν•œ μ•‘μ„ΈμŠ€ 및 μ•ˆμ „ν•œ κΆŒν•œ μœ„μž„μ„ 톡해 μ—μ΄μ „νŠΈκ°€ AWS λ¦¬μ†ŒμŠ€μ™€ 제3자 도ꡬ 및 μ„œλΉ„μŠ€μ— μ•ˆμ „ν•˜κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€μ›λ˜λŠ” 인증 방식

Inbound Authentication (λ“€μ–΄μ˜€λŠ” 인증)

  • IAM SigV4 인증: μΆ”κ°€ ꡬ성 없이 μžλ™μœΌλ‘œ μž‘λ™ν•˜λŠ” κΈ°λ³Έ 인증 및 κΆŒν•œ λΆ€μ—¬ λ©”μ»€λ‹ˆμ¦˜

  • JWT Bearer Token 인증: μ—μ΄μ „νŠΈ 생성 μ‹œ κΆŒν•œ λΆ€μ—¬μž ꡬ성을 μ œκ³΅ν•˜μ—¬ JWT bearer 토큰을 μˆ˜λ½ν•˜λ„λ‘ μ—μ΄μ „νŠΈ λŸ°νƒ€μž„μ„ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

Outbound Authentication (λ‚˜κ°€λŠ” 인증)

  • OAuth2 인증을 μ‚¬μš©ν•˜μ—¬ μ™ΈλΆ€ λ¦¬μ†ŒμŠ€μ— μ•ˆμ „ν•˜κ²Œ μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄ AgentCore Credential Providers와 μ—μ΄μ „νŠΈ μ½”λ“œλ₯Ό μ—°κ²°

  • API ν‚€ 기반 인증

  • IAM μ—­ν•  기반 인증

μ§€μ›λ˜λŠ” ID μ œκ³΅μ—…μ²΄

Amazon Cognito, Microsoft Entra ID, Okta λ“± κΈ°μ‘΄ ID μ œκ³΅μ—…μ²΄μ™€ ν†΅ν•©ν•˜μ—¬ μ‚¬μš©μžκ°€ μ—μ΄μ „νŠΈλ₯Ό ν˜ΈμΆœν•  수 μžˆλ„λ‘ μ§€μ›ν•˜λ©°, Google, GitHub λ“± 인기 μžˆλŠ” OAuth μ œκ³΅μ—…μ²΄λ„ μ§€μ›ν•©λ‹ˆλ‹€.

2. 개발 단계


기술적 κ΅¬ν˜„

1. μ›Œν¬λ‘œλ“œ 아이덴티티 (Workload Identity)

AgentCore IdentityλŠ” μ›Œν¬λ‘œλ“œ μ•‘μ„ΈμŠ€ 토큰을 μ‚¬μš©ν•˜μ—¬ μ €μž₯μ†Œμ— μ €μž₯된 자격 증λͺ…에 λŒ€ν•œ μ—μ΄μ „νŠΈ μ•‘μ„ΈμŠ€λ₯Ό μŠΉμΈν•˜λ©°, 이 ν† ν°μ—λŠ” μ—μ΄μ „νŠΈμ˜ ID와 μ—μ΄μ „νŠΈκ°€ λŒ€μ‹  μž‘μ—…ν•˜λŠ” μ΅œμ’… μ‚¬μš©μžμ˜ IDκ°€ λͺ¨λ‘ ν¬ν•¨λ©λ‹ˆλ‹€.

Amazon Bedrock AgentCore둜 λŸ°νƒ€μž„μ„ μƒμ„±ν•˜λ©΄ AgentCore Identity μ„œλΉ„μŠ€μ™€ ν•¨κ»˜ λŸ°νƒ€μž„μ— λŒ€ν•œ μ›Œν¬λ‘œλ“œ 아이덴티티가 μžλ™μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

2. 토큰 관리

토큰 μ €μž₯ 및 κ°±μ‹ 

  • AgentCore Identity μ„œλΉ„μŠ€λŠ” μ—μ΄μ „νŠΈ μ›Œν¬λ‘œλ“œ 아이덴티티와 μ‚¬μš©μž ID(AWS Cognito 토큰과 같은 μΈλ°”μš΄λ“œ JWT ν† ν°μ—μ„œ)λ₯Ό 바인딩 ν‚€λ‘œ μ‚¬μš©ν•˜μ—¬ Google μ•‘μ„ΈμŠ€ 토큰을 AgentCore Token Vault에 μ €μž₯ν•˜μ—¬ Google 토큰이 만료될 λ•ŒκΉŒμ§€ 반볡적인 λ™μ˜ μš”μ²­μ„ μ œκ±°ν•©λ‹ˆλ‹€.

  • μ‚¬μš©μž 토큰이 만료되면 AgentCore IdentityλŠ” μ—μ΄μ „νŠΈκ°€ μ—…λ°μ΄νŠΈλœ μ‚¬μš©μž 토큰을 얻을 수 μžˆλ„λ‘ μ‚¬μš©μžμ—κ²Œ μƒˆλ‘œμš΄ κΆŒν•œ λΆ€μ—¬ ν”„λ‘¬ν”„νŠΈλ₯Ό νŠΈλ¦¬κ±°ν•©λ‹ˆλ‹€.

API ν‚€ 관리

  • API ν‚€λ₯Ό μ‚¬μš©ν•˜λŠ” λ„κ΅¬μ˜ 경우, AgentCore Identity도 μ΄λŸ¬ν•œ ν‚€λ₯Ό μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³  ν•„μš”ν•  λ•Œ μ—μ΄μ „νŠΈκ°€ 이λ₯Ό 검색할 수 μžˆλ„λ‘ μ œμ–΄λœ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

μΈλ°”μš΄λ“œ

Provision a Cognito User Pool

Cognito User pool ν”„λ‘œλΉ„μ €λ‹

# Create User Pool
aws cognito-idp create-user-pool \\
  --pool-name "DemoUserPool" \\
  --policies '{"PasswordPolicy":{"MinimumLength":8}}' \\
  --region "$REGION" \\
  > pool.json

# Store Pool ID
export POOL_ID=$(jq -r '.UserPool.Id' pool.json)

# Create App Client
aws cognito-idp create-user-pool-client \\
  --user-pool-id $POOL_ID \\
  --client-name "DemoClient" \\
  --no-generate-secret \\
  --explicit-auth-flows "ALLOW_USER_PASSWORD_AUTH" "ALLOW_REFRESH_TOKEN_AUTH" \\
  --token-validity-units AccessToken=hours,IdToken=hours,RefreshToken=days \\
  --access-token-validity 2 \\
  --id-token-validity 2 \\
  --refresh-token-validity 1 \\
  --region "$REGION" \\
  > client.json

# Store Client ID
export CLIENT_ID=$(jq -r '.UserPoolClient.ClientId' client.json)

# Create User
aws cognito-idp admin-create-user \\
  --user-pool-id $POOL_ID \\
  --username "testuser" \\
  --temporary-password "Temp123!" \\
  --region "$REGION" \\
  --message-action SUPPRESS | jq

# Set Permanent Password
aws cognito-idp admin-set-user-password \\
  --user-pool-id $POOL_ID \\
  --username "testuser" \\
  --password "MyPassword123!" \\
  --region "$REGION" \\
  --permanent | jq

# Authenticate User
aws cognito-idp initiate-auth \\
  --client-id "$CLIENT_ID" \\
  --auth-flow USER_PASSWORD_AUTH \\
  --auth-parameters USERNAME='testuser',PASSWORD='MyPassword123!' \\
  --region "$REGION" \\
  > auth.json

# Display auth response
jq . auth.json

# Store Access Token
ACCESS_TOKEN=$(jq -r '.AuthenticationResult.AccessToken' auth.json)

# Export variables for use in Jupyter notebook
COGNITO_DISCOVERY_URL="<https://cognito-idp.$REGION.amazonaws.com/$POOL_ID/.well-known/openid-configuration>"
COGNITO_CLIENT_ID="$CLIENT_ID"
COGNITO_ACCESS_TOKEN="$ACCESS_TOKEN"

AgentCore Config μ„€μ • ν›„ 배포

  • μ’…λž˜ agentcore_runtime.configure의 μΈμžκ°’μ—μ„œ authorizer_configuration 만 μΆ”κ°€ν•©λ‹ˆλ‹€.

  • AgentCore Config둜 Runtime에 λ°°ν¬ν•˜κΈ° μœ„ν•œ μ„€μ • 파일 (Dockerfile, .bedrock_agentcore.yml 생성). ECRκ³Ό IAM role을 λͺ…μ‹œν•˜κ±°λ‚˜ μžλ™μœΌλ‘œ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • For AgentCore Identity: κΈ°λ³Έμ μœΌλ‘œλŠ” 인증에 IAM을 μ‚¬μš©ν•˜λ‚˜, OAuthλ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. OAuthλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 AgentCore λŸ°νƒ€μž„ λ¦¬μ†ŒμŠ€ λ˜λŠ” AgentCore κ²Œμ΄νŠΈμ›¨μ΄ μ—”λ“œν¬μΈνŠΈλ₯Ό ꡬ성할 λ•Œ λ‹€μŒμ„ μ§€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

      • OAuth 검색 μ„œλ²„ URL β€” OpenID Connect 검색 URL의 ^.+/\.well-known/openid-configuration$ νŒ¨ν„΄κ³Ό μΌμΉ˜ν•΄μ•Ό ν•˜λŠ” λ¬Έμžμ—΄

      • ν—ˆμš©λœ λŒ€μƒ β€” JWT 토큰에 ν—ˆμš©λ˜λŠ” λŒ€μƒ λͺ©λ‘

      • ν—ˆμš©λœ ν΄λΌμ΄μ–ΈνŠΈ β€” ν—ˆμš©λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ μ‹λ³„μž λͺ©λ‘

from bedrock_agentcore_starter_toolkit import Runtime
from boto3.session import Session
boto_session = Session()
region = boto_session.region_name

# discovery_url와 client_idsλŠ” μœ„ 슀크립트λ₯Ό μ‹€ν–‰ν•˜λ©΄ 얻을 수 있음.
discovery_url = ""
client_id = ""

agentcore_runtime = Runtime()

response = agentcore_runtime.configure(
    entrypoint="strands_claude.py",
    execution_role=agentcore_iam_role['Role']['Arn'],
    auto_create_ecr=True,
    requirements_file="requirements.txt",
    region=region,
    agent_name=agent_name,
    
    # For AgentCore Identity: μΆ”κ°€λœ λΆ€λΆ„
    authorizer_configuration={
        "customJWTAuthorizer": {
            "discoveryUrl": discovery_url,
            "allowedClients": [client_id]
        }
    }
)

Last updated

Was this helpful?