Tüm Ürünler
Search
Belge Merkezi

Elastic Compute Service:Protect Alibaba Cloud accounts and prevent credential leakage

Son Güncelleme:Sep 30, 2026

Yetkisiz erişimi önlemek için MFA'yı etkinleştirin, AccessKey yerine RAM rollerini kullanın ve kimlik bilgilerini düzenli olarak döndürün.

Güvenlik riskleri

Bir Alibaba Cloud hesabına yönelik temel güvenlik tehditleri arasında şifrelere karşı yapılan kaba kuvvet saldırıları ve AccessKey ile STS belirteçleri gibi uzun ömürlü kimlik bilgilerinin sızması yer alır. Bir saldırgan bu kimlik bilgilerini ele geçirirse, meşru bir kullanıcıyı taklit ederek sisteme giriş yapabilir, kaynakları yönetebilir veya hassas verilere erişebilir. Bu durum şunlara yol açabilir:

  • Kaynakların yetkisiz kullanımı ve bunun sonucunda doğrudan finansal kayıplar yaşanması.

  • Altyapıda hasar oluşması veya hizmet kesintileri nedeniyle iş sürekliliğinin etkilenmesi.

  • Hassas verilerin ifşa olması veya şifrelenerek fidye yazılımı risklerinin ortaya çıkması.

  • Kötü amaçlı programların veya arka kapıların yüklenmesi ve sistem güvenliği ile veri bütünlüğü üzerinde uzun vadeli tehditler oluşturması.

En iyi uygulamalar

Hesap parolalarını koruyun ve MFA'yı etkinleştirin

  • Karmaşık parolalar belirleyin: Zayıf parolalar, hesap ele geçirmelerinin başlıca nedenidir. Kaba kuvvet saldırılarını önlemek için zayıf parolalardan kaçının.

  • Parolaları düzenli olarak değiştirin: Uzun süreli kullanım kaynaklı sızıntı riskini azaltmak için parolanızı her 90 günde bir değiştirin.

  • MFA'yı etkinleştirin: Alibaba Cloud hesabınız ve RAM kullanıcılarınız için Sanal MFA cihazı ekleme veya kaldırma işlemini tamamlayın. MFA, parola doğrulamasının ötesinde mobil belirteç veya donanım korumalı anahtar gibi dinamik bir doğrulama kodu ekleyerek yetkisiz erişimi engeller.

AccessKey yerine ECS RAM rollerini kullanın

Bir ECS örneği üzerindeki bir uygulamanın ECS ölçeklendirme gibi amaçlarla Alibaba Cloud API'lerini çağırması gerekiyorsa, AccessKey yerine bir RAM rolü kullanın.

RAM kullanıcısı oluşturun ve rol atayın

Hesabın bir örneğe rol atayabilmesi için sts:AssumeRole iznine sahip olması gerekir.

Konsol

  1. Resource Access Management (RAM) kullanıcısı oluşturma ve yetkilendirme.

  2. ECS örneğine bir RAM rolü atayın.

    Örnek oluşturma sırasında rol atama

    örnek satın alma sayfasında bir örnek oluştururken, Advanced Options bölümünde Instance RAM Role seçeneğini belirleyin.

    Metadata Access Mode için Security Hardening Mode seçeneğini belirleyerek örnek açıklıkları veya yapılandırma hataları kaynaklı STS belirteci sızıntılarını önleyin. Ayrıntılı bilgi için bkz. Zorunlu modu kullanarak örnek meta verilerine erişme.

    Mevcut bir örneğe rol atama

    1. ECS konsolu - Örnekler sayfasına gidin ve hedef bölgeyi seçin.

    2. Örnek ayrıntıları sayfasına gitmek için örnek kimliğine tıklayın.

    3. Diğer Bilgiler bölümünde, Attach/Detach RAM Role seçeneğine tıklayın.

    4. RAM rolünü seçin ve OK seçeneğine tıklayın.

    Önemli

    Bir ECS örneği yalnızca tek bir RAM rolüne sahip olabilir. Uygulamanız birden fazla izin gerektiriyorsa, tüm izinleri bu tek role verin.

    Örneğin, bir örnekte zaten AliyunECSDiskEncryptDefaultRole rolü varsa ve ayrıca ağ arabirimi yönetimi izinlerine ihtiyaç duyuyorsa, RAM konsolunda bu role AliyunECSNetworkInterfaceManagementAccess ilkesini ekleyin.

API

Rolleri atamak ve ayırmak için API işlemlerini kullanın:

Uygulamadan Alibaba Cloud hizmetlerine erişmek için RAM rolü kullanma

Bir ECS örneği üzerindeki uygulama, örnek meta veri hizmetinden geçici bir STS belirteci alabilir ve bunu Alibaba Cloud API'lerini çağırmak için kullanabilir.

Örnek kod

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

# Step 1: Obtain an STS token
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()
    }

# Step 2: Initialize the ECS client
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)

# Step 3: Build the request to create an 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"
    )

# Step 4: Call the API to create the instance
def create_instance(client, request):
    runtime = RuntimeOptions()
    try:
        response = client.run_instances_with_options(request, runtime)
        print("Instance created successfully. Instance ID:", response.body.instance_id_sets.instance_id_set[0])
    except Exception as e:
        print("Failed to create instance. Error message:", e)

# Main function
if __name__ == "__main__":
    sts_token = get_sts_token()  # Obtain an STS token
    ecs_client = create_ecs_client(sts_token)  # Initialize the ECS client
    request = build_create_instance_request()  # Build the request to create an instance
    create_instance(ecs_client, request)  # Call the API to create the instance

AccessKey'leri koruyun ve sızıntı riskini azaltın

AccessKey kullanmanız gerekiyorsa, oluşturma, depolama, dağıtım ve kullanım aşamalarında güvenlik yönetimini güçlendirin.

  • Oluşturma: "Kişi başına bir AccessKey, uygulama başına bir AccessKey" ilkesini uygulayın. Birden fazla kullanıcı veya program arasında AccessKey paylaşmayın. Bu sayede, sızıntı durumunda sorumluyu hızla tespit edebilir, etkiyi sınırlandırabilir ve anahtarı döndürebilirsiniz.

  • İzin yönetimi: En az ayrıcalık ilkesini takip edin ve yalnızca gerekli izinleri verin. RAM kullanıcılarını kullanın ve izinleri sorumluluklara göre atayın. Alibaba Cloud hesabı AccessKey'ini kullanmaktan kaçının. Ayrıntılı bilgi için bkz. Alibaba Cloud hesabınızı kullanmaktan kaçının ve farklı sorumluluklara sahip RAM kullanıcılarına farklı izinler verin.

  • Güvenli depolama: AccessKey'leri aşağıdaki gibi güvenilir ortamlarda saklayın:

    • Yalnızca root veya belirli bir kullanıcı tarafından okunabilen bir dosya.

    • Erişim denetimli bir veritabanı veya Key Management Service (KMS).

    • AccessKey'leri notlarda, kod depolarında, sohbet kayıtlarında veya kişisel imzalarda saklamayın.

  • Güvenli dağıtım: Şifrelenmiş AccessKey dosyasını bir kanal üzerinden (örneğin e-posta), şifre çözme parolasını ise ayrı bir kanal üzerinden (örneğin SMS) gönderin.

  • Güvenli kullanım: AccessKey'leri kodunuzda sabit olarak tanımlamayın. AccessKey'i ayrı bir yapılandırma dosyasında saklayın, şifreleyin ve güvenilir bir sunucuya kaydedin. Dağıtımdan sonra dosyanın şifresini çözün ve yalnızca sahibinin okuyabileceği şekilde izinleri ayarlayın.

  • Ağ erişim kontrolü: RAM konsolunda AccessKey için bir ağ erişim kontrol ilkesi yapılandırın.

  • Düzenli döngü ve temizleme

    • Düzenli döngü: Her 90 günde bir AccessKey'inizi döndürün. Yeni bir AccessKey oluşturun ve kullanıcıları güncelleme konusunda bilgilendirin.

    • Düzenli temizleme: RAM konsolundaki AccessKey işlem kayıtlarını kontrol edin ve kullanılmayan anahtarları iptal edin. Ayrıntılı bilgi için bkz. RAM kullanıcısının AccessKey'ini silme.

  • AccessKey sızıntısını izleme: Security Center'daki AccessKey sızıntı algılama özelliğini kullanarak bir AccessKey'in sızıp sızmadığını kontrol edin. Bu özellik uyarı bildirimlerini destekler. Sızıntı meydana gelirse, Alibaba Cloud yetki yükseltmeyi önlemek için AccessKey için kısıtlayıcı koruma sağlar.

Uyumluluk

Bir ECS örneğinin AccessKey kullanıp kullanmadığını kontrol etme

AccessKey günlüklerini sorgulama işlemiyle bir AccessKey ile ilişkili hizmetleri, IP adreslerini ve kaynakları bulun.

Önkoşul: Bir ActionTrail izlemesi oluşturdunuz ve günlükleri bir SLS Logstore'a aktardınız.

  • VPC Uç Noktasından başlatılan AccessKey çağrılarını sorgulama:

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

    Örnek sonuç:

    image.png

    Çağrıyı başlatan ECS örneğini belirlemek için vpcId ve sourceipaddress değerlerini kullanın. Ardından, OpenAPI'yi çağırmak için hangi programların accessKeyId değerini kullandığını araştırın.

  • İnternet Uç Noktasından başlatılan AccessKey çağrılarını sorgulama:

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

    Örnek sonuç:

    image.png

    sourceipaddress değerinin bir ECS örneğinin genel IP adresi olup olmadığını belirleyin. Hesabınızdaki EIP'leri ve genel IP adreslerini alın, ardından sourceipaddress değerinin size ait olup olmadığını kontrol edin. Bir EIP veya genel IP adresi doğrudan bir ECS örneğine bağlıysa, örneği bulabilir ve yapılandırmasını değiştirebilirsiniz.

AccessKey'i örnek RAM rolü ile değiştirme

Bkz. AccessKey yerine ECS RAM rollerini kullanma ve AccessKey sızıntısı için çözümler.