AgentCore Identity
1. Overview
AgentCore Identityλ AI μμ΄μ νΈκ° μ¬λ¬ μλΉμ€μμ μ¬μ©μλ³ λ°μ΄ν°μ μμ νκ² μ κ·Όν μ μλλ‘ νλ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. κΈ°μ‘΄ λ°©μμ λ¨μ λ€(κ΄λ²μν μ κ·Ό κΆν λλ μλΉμ€λ§λ€ λ°λ³΅μ μΈ μ¬μ©μ λμ)μ 극볡νκ³ , μμ κΈ°λ° μΈμ¦κ³Ό μ λ‘ νΈλ¬μ€νΈ 보μ μμΉμ ν΅ν΄ μ΄λ₯Ό ν΄κ²°ν©λλ€.

μ 체 μν¬νλ‘
Step 1. μ¬μ©μ μΈμ¦ λ° μμ²
μ¬μ©μ OAuth/OIDC λ‘κ·ΈμΈ β κΈ°μ‘΄ ID μ 곡μ 체(Auth0, Cognito λ±)μμ ν ν° λ°κΈ
μ ν리μΌμ΄μ μ²λ¦¬ β μ¬μ©μ ν ν° κ²μ¦ λ° μΈμ μ€μ
AI μμ΄μ νΈ μμ² β μ¬μ©μκ° μμ΄μ νΈμκ² λ¦¬μμ€ μ κ·Ό μμ²
Step 2. ν ν° κ΅ν
μ ν리μΌμ΄μ β μμ΄μ νΈ β μ¬μ©μ ν ν°κ³Ό ν¨κ» μμ΄μ νΈ μλΉμ€ νΈμΆ
μν¬λ‘λ μ‘μΈμ€ ν ν° μμ² β AgentCore Identityμ ν ν° κ΅ν μμ²
μν¬λ‘λ μ‘μΈμ€ ν ν° λ°κΈ β μ¬μ©μ ν ν° κ²μ¦ ν μμ΄μ νΈμ© ν ν° μμ±
Step 3. μμ΄μ νΈ μ€ν μμ
AI μμ΄μ νΈ νΈμΆ β μν¬λ‘λ μ‘μΈμ€ ν ν°μΌλ‘ μμ΄μ νΈ μ€ν
리μμ€ μ‘μΈμ€ ν ν° μμ² β μΈλΆ μλΉμ€(Google, Slack λ±) μ κ·Όμ© ν ν° μμ²
Step 4. μ¬μ©μ λμ νλ‘μΈμ€ (ν ν°μ΄ μλ κ²½μ°)
μ¬μ©μ μΈμ¦ μꡬ β ν ν° μ μ₯μμ μμΌλ©΄ μ¬μ©μ λμ URL λ°ν
μΈμ¦ μμ² β μ ν리μΌμ΄μ μ μΈμ¦ URL μ λ¬
λμ νλ©΄ νμ β μ¬μ©μμκ² μ 3μ μλΉμ€ μ κ·Ό λμ μμ²
μ¬μ©μ λμ β μ¬μ©μκ° λ°μ΄ν° 곡μ μΉμΈ
리μμ€ μ‘μΈμ€ ν ν° λ°κΈ β μ 3μ μλΉμ€κ° ν ν° λ°κΈ
Step 5. λ°μ΄ν° μ κ·Ό λ° μλ΅
ν ν° μ μ₯ λ° λ°ν β AgentCore Identityκ° ν ν°μ μμ νκ² μ μ₯νκ³ μμ΄μ νΈμ λ°ν
리μμ€ λ°μ΄ν° μμ² β μμ΄μ νΈκ° ν ν°μΌλ‘ μ€μ λ°μ΄ν° μ κ·Ό
λ°μ΄ν° κ²μ¦ λ° λ°ν β μ 3μ μλΉμ€κ° ν ν° κ²μ¦ ν λ°μ΄ν° μ 곡
μλ΅ μ‘°ν© β μμ΄μ νΈκ° λ°μ λ°μ΄ν°λ‘ μ΅μ’ μλ΅ μμ±
μ¬μ©μμκ² κ²°κ³Ό νμ β μ ν리μΌμ΄μ μ΄ μ¬μ©μμκ² μ΅μ’ κ²°κ³Ό μ 곡
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?