Cloud & IT Cert Prep · Pelajaran

Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito

Lindungi titik akhir API dengan tandatangan IAM SigV4, pemberi kuasa Lambda tersuai atau pemberi kuasa Kumpulan Pengguna Amazon Cognito.

Pelajaran 3 daripada 413 langkah

Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Mengapa Kebenaran API Penting

Tanpa kawalan kebenaran, mana-mana klien internet boleh memanggil titik akhir API Gateway anda serta mengakses atau mengubah data. API Gateway menyediakan tiga mekanisme kebenaran asli: IAM (SigV4), pemberi kebenaran Lambda dan pemberi kebenaran Kumpulan Pengguna Amazon Cognito. Setiap mekanisme sesuai untuk kes penggunaan yang berbeza: IAM untuk panggilan perkhidmatan-ke-perkhidmatan AWS, pemberi kebenaran Lambda untuk pengesahan berasaskan token atau permintaan tersuai, dan Cognito untuk pengesahan pengguna web atau mudah alih.

Kebenaran IAM dengan SigV4

Kebenaran IAM memerlukan pemanggil menandatangani permintaan menggunakan AWS Signature Version 4 (SigV4). Pemanggil mesti mempunyai bukti kelayakan AWS (kunci akses + kunci rahsia atau bukti kelayakan sementara daripada STS) dan dasar IAM mesti membenarkan execute-api:Invoke pada ARN API. Ini sesuai untuk panggilan mesin-ke-mesin (pelayan-ke-pelayan) dalam AWS: Lambda memanggil API lain, EC2 memanggil API dalaman, atau akses perkhidmatan merentas akaun. Klien pelayar tidak dapat menggunakan SigV4 dengan mudah.

# IAM policy to allow invoking a specific API endpoint
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': 'execute-api:Invoke',
    'Resource': 'arn:aws:execute-api:us-east-1:123456789012:abc123/prod/GET/orders'
  }]
}

Pemberi Kebenaran Lambda: Berasaskan Token

Pemberi kebenaran Lambda (dahulunya Pemberi Kebenaran Tersuai) ialah fungsi Lambda yang anda tulis dan dipanggil oleh API Gateway sebelum integrasi bahagian belakang dipanggil. Bagi pemberi kebenaran berasaskan token, API Gateway mengekstrak token (JWT, OAuth, kunci API) daripada pengepala Authorization dan menghantarnya kepada Lambda anda. Lambda anda mengesahkan token tersebut (contohnya, mengesahkan tandatangan JWT berdasarkan kunci awam atau memanggil pembekal identiti pihak ketiga) lalu mengembalikan dokumen dasar IAM yang membenarkan atau menolak permintaan.

def lambda_handler(event, context):
    token = event['authorizationToken']
    # Validate token (JWT verification, introspect OAuth, etc.)
    if is_valid_token(token):
        return {
            'principalId': 'user123',
            'policyDocument': {
                'Version': '2012-10-17',
                'Statement': [{'Effect': 'Allow', 'Action': 'execute-api:Invoke',
                                'Resource': event['methodArn']}]
            },
            'context': {'userId': 'user123', 'role': 'admin'}
        }
    raise Exception('Unauthorized')

Pemberi Kebenaran Lambda: Berasaskan Permintaan

Bagi pemberi kebenaran Lambda berasaskan permintaan, API Gateway menghantar keseluruhan konteks permintaan (pengepala, rentetan pertanyaan, pemboleh ubah peringkat dan parameter laluan) kepada Lambda anda—bukan sekadar token. Ini berguna untuk kebenaran yang bergantung pada beberapa atribut permintaan: senarai IP yang dibenarkan, gabungan pengepala atau pemeriksaan pengesahan berbilang faktor. Pemberi kebenaran berasaskan permintaan disokong oleh REST API dan HTTP API.

Penyimpanan Cache Pemberi Kebenaran Lambda

Memanggil pemberi kebenaran Lambda pada setiap permintaan API menambah kependaman dan kos. Dayakan penyimpanan cache hasil pemberi kebenaran: cache dasar IAM yang dikembalikan oleh pemberi kebenaran untuk tempoh TTL yang boleh dikonfigurasikan (0–3600 saat), berdasarkan nilai token. Permintaan seterusnya dengan token yang sama melangkau pemanggilan Lambda dan menggunakan dasar yang dicache. Tetapkan TTL supaya sepadan dengan masa luput token—jika token sah selama 1 jam, cache hasil pemberi kebenaran untuk tempoh yang sama. Penyimpanan cache tersedia dalam REST API; pemberi kebenaran JWT HTTP API mempunyai penyimpanan cache terbina dalam.

Pemberi Kebenaran Kumpulan Pengguna Amazon Cognito

Pemberi kebenaran Kumpulan Pengguna Cognito mengesahkan JWT yang dikeluarkan oleh Cognito secara langsung dalam API Gateway tanpa fungsi Lambda. Apabila pengguna mengesahkan diri melalui Cognito (melalui UI Dihoskan, SDK atau pembekal identiti bersekutu), Cognito mengeluarkan token ID atau token akses. Klien memasukkan token ini dalam pengepala Authorization. API Gateway mengesahkan tandatangan dan masa luput token berdasarkan Kumpulan Pengguna Cognito. Jika sah, permintaan diteruskan; jika tidak, API Gateway mengembalikan 401.

aws apigateway create-authorizer \
  --rest-api-id 'abc123' \
  --name 'CognitoAuthorizer' \
  --type COGNITO_USER_POOLS \
  --provider-arns 'arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_XXXXXXX' \
  --identity-source 'method.request.header.Authorization'

Pemberi Kebenaran JWT dalam HTTP API

HTTP API mempunyai sokongan pemberi kebenaran JWT asli tanpa Lambda. Anda menentukan URL penerbit JWT (Cognito, Auth0, Okta) dan khalayak, lalu API Gateway mengesahkan JWT secara automatik. Ini pada asasnya ialah pemberi kebenaran Kumpulan Pengguna Cognito, tetapi turut berfungsi dengan mana-mana pembekal OIDC yang mematuhi piawaian. Pengesahan token (tandatangan, masa luput dan khalayak) dilakukan secara dalaman oleh API Gateway—kependaman lebih rendah berbanding pemberi kebenaran Lambda dan tiada kos Lambda.

aws apigatewayv2 create-authorizer \
  --api-id 'abc123' \
  --authorizer-type JWT \
  --name 'JWTAuthorizer' \
  --identity-source '$request.header.Authorization' \
  --jwt-configuration '{
    "Issuer": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXX",
    "Audience": ["your-client-id"]
  }'

Kumpulan Identiti Cognito berbanding Kumpulan Pengguna

Untuk kebenaran API, gunakan Kumpulan Pengguna Cognito: kumpulan ini mengurus pengesahan pengguna dan mengeluarkan JWT. Kumpulan Identiti Cognito (Identiti Bersekutu) adalah berbeza—kumpulan ini menukar token pihak ketiga (daripada Kumpulan Pengguna, log masuk sosial dan SAML) kepada bukti kelayakan AWS sementara (melalui STS AssumeRoleWithWebIdentity). Kumpulan Identiti digunakan apabila aplikasi anda perlu mengakses perkhidmatan AWS secara langsung (S3, DynamoDB) daripada klien. Untuk pengesahan API Gateway, JWT Kumpulan Pengguna ialah pilihan yang tepat; bukti kelayakan Kumpulan Identiti adalah untuk panggilan SDK AWS secara langsung daripada pelayar atau peranti mudah alih.

Dasar Sumber pada API Gateway

REST API menyokong dasar sumber—dasar JSON yang dilampirkan pada API untuk mengawal akses berdasarkan alamat IP, titik akhir VPC, akaun sumber atau ARN. Gunakan dasar sumber untuk: membenarkan hanya julat IP tertentu memanggil API anda, mengehadkan akses kepada permintaan yang datang melalui titik akhir VPC tertentu (API persendirian), atau membenarkan pemanggilan merentas akaun. Dasar sumber berfungsi sebagai tambahan kepada pemberi kebenaran peringkat kaedah—kedua-duanya mesti membenarkan permintaan supaya permintaan itu berjaya.

# Allow only specific IP range to call the API
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': '*',
    'Action': 'execute-api:Invoke',
    'Resource': 'arn:aws:execute-api:us-east-1:123456789012:abc123/*',
    'Condition': {'IpAddress': {'aws:SourceIp': '203.0.113.0/24'}}
  }]
}

Pengesahan TLS Bersama

TLS bersama (mTLS) memerlukan klien dan pelayan mengemukakan sijil semasa jabat tangan TLS. API Gateway menyokong mTLS untuk REST API dan HTTP API apabila nama domain tersuai dikonfigurasikan. Klien mesti mengemukakan sijil sah yang ditandatangani oleh Pihak Berkuasa Sijil (CA) yang anda muat naik ke stor amanah dalam S3. mTLS digunakan dalam perkhidmatan kewangan, pengesahan peranti IoT dan integrasi B2B apabila pengesahan identiti klien yang kukuh diperlukan melebihi pengesahan berasaskan token.

Memilih Jenis Pemberi Kebenaran yang Tepat

Pemilihan pemberi kebenaran untuk peperiksaan SAA-C03: IAM (SigV4) → panggilan perkhidmatan-ke-perkhidmatan AWS dalam akaun yang sama atau merentas akaun; Kumpulan Pengguna Cognito → pengguna aplikasi web atau mudah alih yang disahkan melalui Cognito; pemberi kebenaran Lambda → logik pengesahan tersuai (pembekal identiti pihak ketiga, format token legasi, introspeksi OAuth, gabungan IP + token); pemberi kebenaran JWT (HTTP API) → token OIDC/OAuth2 dengan mana-mana pembekal yang mematuhi piawaian, pada kos yang lebih rendah berbanding pemberi kebenaran Lambda. Tiada pemberi kebenaran → API awam.

Semakan Pantas

Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, anda mempelajari bahawa kebenaran IAM (SigV4) adalah untuk panggilan perkhidmatan-ke-perkhidmatan menggunakan bukti kelayakan AWS; pemberi kebenaran Kumpulan Pengguna Cognito mengesahkan JWT yang dikeluarkan oleh Cognito secara asli untuk aplikasi web dan mudah alih; dan pemberi kebenaran Lambda melaksanakan pengesahan token tersuai untuk pembekal identiti pihak ketiga atau logik kebenaran kompleks dengan penyimpanan cache hasil secara pilihan. Seterusnya, kita akan meneroka pengehad kadar, penyimpanan cache dan pelan penggunaan dalam API Gateway.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito” percuma?

Ya — teks penuh “Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito”?

Lindungi titik akhir API dengan tandatangan IAM SigV4, pemberi kuasa Lambda tersuai atau pemberi kuasa Kumpulan Pengguna Amazon Cognito. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. API REST berbanding API HTTP berbanding API WebSocket
  2. Penyepaduan: Lambda, HTTP dan Olok-olok
  3. Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito
  4. Pendikitan, Cache dan Pelan Penggunaan
← Kembali ke Cloud & IT Cert Prep