全部产品
Search
文档中心

Elastic Compute Service:Lindungi akun Alibaba Cloud dan cegah kebocoran kredensial

更新时间:Nov 18, 2025

Akun Alibaba Cloud merupakan kredensial identitas inti yang digunakan untuk masuk dan mengelola sumber daya cloud. Kebocoran kredensial menimbulkan risiko keamanan tinggi. Oleh karena itu, Anda harus melindungi kredensial akun Anda guna mencegah akses tidak sah dan penyalahgunaan.

Risiko keamanan

Ancaman keamanan utama terhadap akun Alibaba Cloud mencakup serangan brute-force terhadap kata sandi serta kebocoran kredensial jangka panjang, seperti AccessKey dan token Security Token Service (STS) untuk peran RAM. Jika penyerang memperoleh kredensial tersebut, mereka dapat menyamar sebagai pengguna sah untuk masuk, mengelola sumber daya, atau mengakses data sensitif. Hal ini dapat menyebabkan konsekuensi serius:

  • Penggunaan sumber daya tanpa izin, yang dapat mengakibatkan kerugian finansial langsung.

  • Kerusakan infrastruktur atau gangguan layanan yang memengaruhi ketersediaan bisnis.

  • Kebocoran data sensitif atau enkripsi data, yang dapat menyebabkan pengungkapan informasi dan risiko ransomware.

  • Pemasangan program berbahaya atau pintu belakang, yang menimbulkan ancaman jangka panjang terhadap keamanan sistem dan integritas data.

Praktik terbaik

Lindungi kata sandi akun dan aktifkan Autentikasi Multi-Faktor (MFA)

  • Tetapkan kata sandi yang kompleks: Kata sandi lemah merupakan penyebab utama peretasan akun. Untuk mencegah kata sandi ditebak atau dipecahkan melalui serangan brute-force, hindari penggunaan kata sandi lemah.

  • Ubah kata sandi secara berkala: Ubah kata sandi Anda setiap 90 hari untuk mengurangi risiko kebocoran akibat penggunaan jangka panjang.

  • Aktifkan MFA: Sambungkan atau lepas perangkat MFA virtual untuk akun Alibaba Cloud Anda. MFA menambahkan kode verifikasi dinamis, seperti token seluler atau kunci yang dilindungi perangkat keras, sebagai lapisan keamanan tambahan di atas autentikasi kata sandi. Hal ini membantu mencegah akses tidak sah jika kata sandi Anda bocor.

Gunakan peran RAM ECS alih-alih AccessKey

Jika aplikasi yang diterapkan pada instance ECS perlu memanggil API Layanan Alibaba Cloud—misalnya untuk penskalaan ECS—gunakan peran RAM alih-alih AccessKey.

Buat pengguna RAM dan sambungkan peran

Akun saat ini harus memiliki izin sts:AssumeRole untuk menyambungkan peran ke instance. Persyaratan ini membantu mencegah penyalahgunaan izin.

Konsol

  1. Buat dan otorisasi Pengguna Resource Access Management (RAM).

  2. Sambungkan peran RAM ke instance ECS.

    Sambungkan peran saat pembuatan instance

    Saat membuat instance di halaman pembelian instance, pilih Instance RAM Role di bagian Advanced Options.

    Kami menyarankan Anda memilih Enforced Mode untuk Metadata Access Mode guna mencegah kebocoran token Security Token Service yang dapat disebabkan oleh kerentanan instance atau kesalahan konfigurasi. Untuk informasi selengkapnya, lihat Akses metadata instance menggunakan mode enforced.

    Sambungkan peran ke instance yang sudah ada

    1. Buka halaman Konsol ECS - Instances dan alihkan ke wilayah tujuan yang diinginkan.

    2. Temukan instance ECS target dan klik ID instans untuk membuka halaman detail instance.

    3. Pada bagian Informasi Lainnya, klik Grant/Revoke RAM Role.

    4. Pada kotak dialog yang muncul, pilih peran RAM dan klik OK.

    Penting

    Instance ECS hanya dapat disambungkan ke satu peran RAM. Jika aplikasi Anda memerlukan beberapa izin, Anda harus memberikan semua izin tersebut ke peran tunggal tersebut.

    Sebagai contoh, jika instance sudah disambungkan ke peran AliyunECSDiskEncryptDefaultRole dan juga memerlukan izin manajemen antarmuka jaringan, Anda dapat menambahkan kebijakan AliyunECSNetworkInterfaceManagementAccess ke peran tersebut di konsol RAM.

API

Anda dapat menggunakan operasi API untuk menyambungkan dan melepas peran:

  • Sambungkan peran saat pembuatan instance: Saat memanggil RunInstances atau CreateInstance untuk membuat instance, tentukan parameter RamRoleName.

  • Sambungkan peran ke instance yang sudah ada: Panggil AttachInstanceRamRole untuk memberikan peran RAM ke instance.

  • Lepaskan peran: Panggil DetachInstanceRamRole untuk mencabut peran RAM yang diberikan ke instance.

Gunakan peran RAM untuk mengakses layanan Alibaba Cloud dari aplikasi

Aplikasi yang berjalan pada instance ECS dapat secara otomatis memperoleh token STS sementara dari layanan metadata instance. Aplikasi tersebut kemudian dapat menggunakan token ini untuk memanggil API layanan Alibaba Cloud.

Kode contoh

from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as EcsClient
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_util.models import RuntimeOptions

# Langkah 1: Peroleh token STS
def get_sts_token():
    config = CredConfig(
        type="ecs_ram_role",
        enable_imds_v1=False
    )
    cred_client = CredClient(config)
    credential = cred_client.get_credential()
    return {
        "AccessKeyId": credential.get_access_key_id(),
        "AccessKeySecret": credential.get_access_key_secret(),
        "SecurityToken": credential.get_security_token()
    }

# Langkah 2: Inisialisasi klien ECS
def create_ecs_client(sts_token):
    config = Config(
        access_key_id=sts_token["AccessKeyId"],
        access_key_secret=sts_token["AccessKeySecret"],
        security_token=sts_token["SecurityToken"],
        endpoint="ecs.cn-hangzhou.aliyuncs.com"
    )
    return EcsClient(config)

# Langkah 3: Buat permintaan untuk membuat instance
def build_create_instance_request():
    return ecs_models.RunInstancesRequest(
        region_id="cn-hangzhou",
        image_id="aliyun_3_x64_20G_scc_alibase_20220225.vhd",
        instance_type="ecs.e-c1m2.xlarge",
        security_group_id="sg-bp1esyhwfbqeyudt****",
        v_switch_id="vsw-bp1nzprm8h7mmnl8t****",
        instance_name="sdk-test",
        instance_charge_type="PostPaid",
        key_pair_name="sdk-key-pair",
        system_disk_category="cloud_essd"
    )

# Langkah 4: Panggil API untuk membuat instance
def create_instance(client, request):
    runtime = RuntimeOptions()
    try:
        response = client.run_instances_with_options(request, runtime)
        print("Instance berhasil dibuat. ID Instance:", response.body.instance_id_sets.instance_id_set[0])
    except Exception as e:
        print("Gagal membuat instance. Pesan kesalahan:", e)

# Fungsi utama
if __name__ == "__main__":
    sts_token = get_sts_token()  # Peroleh token STS
    ecs_client = create_ecs_client(sts_token)  # Inisialisasi klien ECS
    request = build_create_instance_request()  # Buat permintaan untuk membuat instance
    create_instance(ecs_client, request)  # Panggil API untuk membuat instance

Lindungi AccessKey dan kurangi risiko kebocoran

Jika Anda harus menggunakan AccessKey, perkuat manajemen keamanannya sepanjang siklus hidupnya—mulai dari pembuatan, penyimpanan, distribusi, hingga penggunaan.

  • Pembuatan: Ikuti prinsip "satu AccessKey per orang, satu AccessKey per aplikasi." Jangan berbagi AccessKey di antara beberapa pengguna atau program. Jika AccessKey bocor, praktik ini memungkinkan Anda dengan cepat mengidentifikasi pihak yang bertanggung jawab, membatasi dampak, dan segera melakukan rotasi kunci.

  • Manajemen izin: Terapkan prinsip hak istimewa minimal dan berikan hanya izin yang diperlukan. Gunakan pengguna RAM dan tetapkan izin berdasarkan tanggung jawab mereka. Hindari penggunaan AccessKey akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat Hindari penggunaan akun Alibaba Cloud Anda dan berikan izin berbeda kepada pengguna RAM dengan tanggung jawab berbeda.

  • Penyimpanan aman: Simpan AccessKey pada perangkat tepercaya, seperti:

    • Berkas yang hanya dapat dibaca oleh pengguna root atau pengguna tertentu.

    • Database atau Key Management Service (KMS) dengan kontrol akses.

    • Jangan menyimpan AccessKey di catatan lokal, catatan cloud, repositori kode, riwayat obrolan, atau tanda tangan atau status pribadi.

  • Distribusi aman: Distribusikan AccessKey dalam berkas terenkripsi. Kirim berkas AccessKey terenkripsi melalui satu saluran, seperti email, dan kirim kata sandi dekripsi melalui saluran terpisah, seperti pesan teks.

  • Penggunaan aman: Jangan hard-code AccessKey dalam kode Anda. Sebagai gantinya, simpan AccessKey dalam berkas konfigurasi terpisah, enkripsi berkas tersebut, dan simpan di server tepercaya. Dekripsi berkas hanya setelah didistribusikan ke server, lalu atur izin berkas sehingga hanya pemilik yang dapat membacanya.

  • Kontrol akses jaringan: Konfigurasikan kebijakan kontrol akses jaringan untuk AccessKey di konsol RAM. Untuk informasi selengkapnya, lihat Kebijakan kontrol akses jaringan untuk AccessKey.

  • Rotasi dan pembersihan berkala

    • Rotasi berkala: Lakukan rotasi AccessKey Anda setiap 90 hari. Hasilkan AccessKey baru dan beri tahu pengguna untuk memperbarui ke kunci baru tersebut. Untuk informasi selengkapnya, lihat Rotasi AccessKey pengguna RAM.

    • Pembersihan berkala: Periksa catatan operasi AccessKey Anda di konsol RAM dan segera cabut kunci apa pun yang telah lama tidak digunakan. Untuk informasi selengkapnya, lihat Hapus AccessKey pengguna RAM.

  • Pantau risiko kebocoran AccessKey: Gunakan fitur deteksi kebocoran AccessKey di Security Center untuk mengidentifikasi apakah AccessKey telah bocor. Fitur ini mendukung pemberitahuan peringatan untuk AccessKey yang bocor. Selain itu, jika AccessKey bocor, Alibaba Cloud menyediakan perlindungan restriktif untuk AccessKey guna mencegah eskalasi risiko.

Kemampuan kepatuhan

Periksa: Tentukan apakah instance ECS menggunakan AccessKey untuk mengakses layanan Alibaba Cloud

Anda dapat menanyakan log AccessKey untuk menemukan informasi dasar tentang AccessKey, layanan Alibaba Cloud yang diaksesnya, serta alamat IP dan sumber daya terkait.

Prasyarat: Anda telah membuat jejak ActionTrail dan mengirimkan log ke penyimpanan log Simple Log Service (SLS).

  • Menanyakan panggilan AccessKey yang dimulai dari Titik Akhir VPC:

    * | SELECT "event.eventid","event.sourceipaddress", "event.userIdentity.accessKeyId",  "event.vpcId" WHERE "event.userIdentity.accessKeyId" LIKE 'LTA%' and "event.vpcId" LIKE 'vpc%'

    Hasilnya mirip dengan contoh berikut:

    image.png

    Gunakan vpcId dan sourceipaddress untuk mengidentifikasi instance ECS yang memulai panggilan tersebut. Kemudian, selidiki program mana yang menggunakan accessKeyId untuk memanggil OpenAPI.

  • Menanyakan panggilan AccessKey yang dimulai dari Titik Akhir Internet:

    * | SELECT "event.eventid","event.sourceipaddress", "event.userIdentity.accessKeyId" WHERE "event.userIdentity.accessKeyId" LIKE 'LTA%' and "event.vpcId" IS NULL

    Hasilnya mirip dengan contoh berikut:

    image.png

    Tentukan apakah sourceipaddress merupakan alamat IP publik instance ECS. Pertama, ambil elastic IP addresses (EIPs) dan alamat IP publik di bawah akun Anda. Kemudian, periksa apakah sourceipaddress dalam hasil tersebut milik Anda. Jika EIP atau alamat IP publik langsung disambungkan ke instance ECS, Anda dapat menemukan instance spesifik tersebut dan memodifikasi konfigurasinya.

Perbaikan: Ganti AccessKey dengan peran RAM instance

Untuk memperbaiki masalah ini, lihat Gunakan peran RAM ECS alih-alih AccessKey. Untuk informasi selengkapnya, lihat Solusi untuk kebocoran AccessKey.