日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用實例動態數據實現鑒權、授權或者判斷運行環境

實例標識,包括實例標識文檔和實例標識簽名,可用于快速辨識并區分ECS實例,為應用程序權限控制和軟件激活等提供重要的信任基礎。本文主要介紹實例標識的定義、應用場景、獲取方式以及使用示例。

什么是實例標識

實例標識由動態生成的實例標識文檔document)和實例標識簽名signature)組成。

  • 實例標識文檔

    用于提供實例的身份信息,包括實例ID、IP地址等,包含的屬性如下表所示。

    屬性

    描述

    account-id

    實例所屬用戶賬號ID

    instance-id

    實例ID

    mac

    實例主網卡MAC地址

    region-id

    實例所屬的地域ID

    serial-number

    實例的序列號

    zone-id

    實例所屬可用區ID

    instance-type

    實例規格

    image-id

    實例使用的鏡像ID

    private-ip

    實例的私網IP地址

  • 實例標識簽名

    供第三方驗證實例標識文檔的真實性和內容。實例標識簽名采用PKCS#7格式加密,純數字化,安全可靠。

    實例標識簽名支持傳入自定義audience參數,用于防止簽名被非法冒用。audience參數可以是隨機字符串、時間戳、規律性變化的信息或者根據算法生成的數據。傳入audience參數后,即使他人獲取了標識文檔和標識簽名的部分信息,也很難猜測到audience參數的取值。通過audience參數實現鑒權。具體使用,請參見使用實例標識

應用場景

在以下場景中,您可以借助實例標識實現鑒權、授權或者判斷運行環境等:

  • 傳統的線下手動激活的軟件授權是一碼單用,但由于云上軟件的使用時間及場景多變,您可以在云市場上架應用軟件時使用實例標識靈活地完成用戶授權。

  • 當您在ECS實例中寫入敏感數據時,您可以使用實例標識來確保當前所寫入的位置是您的ECS實例而不是其他環境。

  • 其他需要確認目標服務器來源的場景。

獲取實例標識文檔/簽名

(推薦)加固模式下獲取

  • Linux實例

    # 獲取服務器訪問憑證,需設置有效期,不可包含標頭X-Forwarded-For
    TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:<服務器訪問憑證有效期>"`
    # 獲取實例標識
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/<dynamic data>
  • Windows實例

    # 獲取服務器訪問憑證,需設置有效期,不可包含標頭X-Forwarded-For
    $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "<服務器訪問憑證有效期>"} -Method PUT -Uri http://100.100.100.200/latest/api/token
    # 獲取實例標識
    Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/<dynamic data>
    • <服務器訪問憑證有效期>:訪問憑證用于鑒權以加強數據安全。有效期取值范圍為1~21600,單位為秒。

      • 在有效期內可重復使用實例標識獲取命令獲取數據;超過有效期后,憑證失效需重新獲取。

      • 訪問憑證僅適用于一臺實例,如果將憑證復制到其他實例使用,將會被拒絕訪問。

    • <dynamic data>:需替換為具體的實例標識文檔/簽名。

      • 實例標識文檔:dynamic/instance-identity/document

      • 實例標識簽名:dynamic/instance-identity/pkcs7?audience=XXXX

        重要

        ?audience=XXXX非必填,具體說明,請參見實例標識簽名

普通模式下獲取

  • Linux實例

    curl http://100.100.100.200/latest/<dynamic data>
  • Windows實例(PowerShell)

    Invoke-RestMethod http://100.100.100.200/latest/<dynamic data>

    <dynamic data>:需替換為具體的實例標識文檔或簽名。

    • 實例標識文檔:dynamic/instance-identity/document

    • 實例標識簽名:dynamic/instance-identity/pkcs7?audience=XXXX

      重要

      ?audience=XXXX非必填,具體說明,請參見實例標識簽名

使用實例標識

使用方式

以下操作以Alibaba Cloud Linux 3系統為例,介紹在加固模式下如何使用實例標識。

重要

認證和使用實例標識需要OpenSSL支持,從而確保實例標識的安全性。如果您沒有配置OpenSSL服務,請前往OpenSSL官網下載并安裝OpenSSL服務。

  1. 遠程連接Linux實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. (可選)執行以下命令,查看實例標識文檔和實例標識簽名。

    # 獲取服務器訪問憑證,設置有效期為3600秒
    TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:3600"`
    # 獲取實例標識文檔
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/document
    # 獲取實例標識簽名
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/pkcs7

    image

  3. 將實例標識文檔、實例標識簽名及阿里云公有證書內容保存至文件。

    1. 執行以下命令,將實例文檔信息保存至document文件。

      curl 100.100.100.200/latest/dynamic/instance-identity/document > document
    2. 執行以下命令,將實例簽名信息保存至signature文件。

      echo "-----BEGIN CERTIFICATE-----" > signature
      curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7 >> signature
      echo "" >> signature
      echo "-----END CERTIFICATE-----" >> signature
    3. 執行以下命令,將阿里云公有證書保存至cert.cer文件。

      cat <<EOF > cert.cer
      -----BEGIN CERTIFICATE-----
      MIIDdzCCAl+gAwIBAgIEZmbRhzANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdV
      bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD
      VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3du
      MB4XDTE4MDIyMzAxMjkzOFoXDTM4MDIxODAxMjkzOFowbDEQMA4GA1UEBhMHVW5r
      bm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UE
      ChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCC
      ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIJwy5sbZDiNyX4mvdP32pqM
      YMK4k7+5lRnVR2Fky/5uwyGSPbddNXaXzwEm+u4wIsJiaAN3OZgJpYIoCGik+9lG
      5gVAIr0+/3rZ61IbeVE+vDenDd8g/m/YIdYBfC2IbzgS9EVGAf/gJdtDODXrDfQj
      Fk2rQsvpftVOUs3Vpl9O+jeCQLoRbZYm0c5v7jP/L2lK0MjhiywPF2kpDeisMtnD
      /ArkSPIlg1qVYm3F19v3pa6ZioM2hnwXg5DibYlgVvsIBGhvYqdQ1KosNVcVGGQa
      HCUuVGdS7vHJYp3byH0vQYYygzxUJT2TqvK7pD57eYMN5drc7e19oyRQvbPQ3kkC
      AwEAAaMhMB8wHQYDVR0OBBYEFAwwrnHlRgFvPGo+UD5zS1xAkC91MA0GCSqGSIb3
      DQEBCwUAA4IBAQBBLhDRgezd/OOppuYEVNB9+XiJ9dNmcuHUhjNTnjiKQWVk/YDA
      v+T2V3t9yl8L8o61tRIVKQ++lDhjlVmur/mbBN25/UNRpJllfpUH6oOaqvQAze4a
      nRgyTnBwVBZkdJ0d1sivL9NZ4pKelJF3Ylw6rp0YMqV+cwkt/vRtzRJ31ZEeBhs7
      vKh7F6BiGCHL5ZAwEUYe8O3akQwjgrMUcfuiFs4/sAeDMnmgN6Uq8DFEBXDpAxVN
      sV/6Hockdfinx85RV2AUwJGfClcVcu4hMhOvKROpcH27xu9bBIeMuY0vvzP2VyOm
      DoJeqU7qZjyCaUBkPimsz/1eRod6d4P5qxTj
      -----END CERTIFICATE-----
      EOF
  4. 執行以下命令,使用OpenSSL服務驗證實例標識。

    openssl smime -verify -in signature -inform PEM -content document -certfile cert.cer -noverify > /dev/null

    若標識返回結果為Verification successful,表示實例身份驗證成功。

    上述命令中相關參數說明如下:

    • document:包含您獲取的標識文檔內容的文件。

    • signature:包含您獲取的標識簽名內容的文件。

      說明

      如果您在實例標識簽名時傳入了audience參數,則需要手動將該參數信息添加至實例標識文檔的末尾,格式為"audience":"audience參數取值",各參數之間使用半角逗號(,)進行連接。

    • cert.cer:包含阿里云公有證書的文件。

      點擊獲取阿里云公有證書

      -----BEGIN CERTIFICATE-----
      MIIDdzCCAl+gAwIBAgIEZmbRhzANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdV
      bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD
      VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3du
      MB4XDTE4MDIyMzAxMjkzOFoXDTM4MDIxODAxMjkzOFowbDEQMA4GA1UEBhMHVW5r
      bm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UE
      ChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCC
      ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIJwy5sbZDiNyX4mvdP32pqM
      YMK4k7+5lRnVR2Fky/5uwyGSPbddNXaXzwEm+u4wIsJiaAN3OZgJpYIoCGik+9lG
      5gVAIr0+/3rZ61IbeVE+vDenDd8g/m/YIdYBfC2IbzgS9EVGAf/gJdtDODXrDfQj
      Fk2rQsvpftVOUs3Vpl9O+jeCQLoRbZYm0c5v7jP/L2lK0MjhiywPF2kpDeisMtnD
      /ArkSPIlg1qVYm3F19v3pa6ZioM2hnwXg5DibYlgVvsIBGhvYqdQ1KosNVcVGGQa
      HCUuVGdS7vHJYp3byH0vQYYygzxUJT2TqvK7pD57eYMN5drc7e19oyRQvbPQ3kkC
      AwEAAaMhMB8wHQYDVR0OBBYEFAwwrnHlRgFvPGo+UD5zS1xAkC91MA0GCSqGSIb3
      DQEBCwUAA4IBAQBBLhDRgezd/OOppuYEVNB9+XiJ9dNmcuHUhjNTnjiKQWVk/YDA
      v+T2V3t9yl8L8o61tRIVKQ++lDhjlVmur/mbBN25/UNRpJllfpUH6oOaqvQAze4a
      nRgyTnBwVBZkdJ0d1sivL9NZ4pKelJF3Ylw6rp0YMqV+cwkt/vRtzRJ31ZEeBhs7
      vKh7F6BiGCHL5ZAwEUYe8O3akQwjgrMUcfuiFs4/sAeDMnmgN6Uq8DFEBXDpAxVN
      sV/6Hockdfinx85RV2AUwJGfClcVcu4hMhOvKROpcH27xu9bBIeMuY0vvzP2VyOm
      DoJeqU7qZjyCaUBkPimsz/1eRod6d4P5qxTj
      -----END CERTIFICATE-----

示例一:不傳入audience參數

以在云市場上架一份鏡像為例,示范如何從應用軟件賣家角度使用實例標識。

  1. 遠程連接Linux實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 執行以下命令,通過元數據獲取云市場鏡像的商品碼(product-code)和云市場鏡像的計費方式(charge-type),確認當前ECS實例使用的鏡像是否來自于云市場鏡像

    更多元數據信息,請參見實例元數據

    curl http://100.100.100.200/latest/meta-data/image/market-place/product-code
    curl http://100.100.100.200/latest/meta-data/image/market-place/charge-type
  3. 在當前工作目錄下創建臨時文件cert.cer,并保存阿里云公有證書到該文件中。

  4. 辨別實例的身份。

    示例腳本如下:

    #!/usr/bin/bash
    function verify_signature_without_audience(){
    curl 100.100.100.200/latest/dynamic/instance-identity/document > document
    echo "-----BEGIN CERTIFICATE-----" > signature
    curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7 >> signature
    echo "" >> signature
    echo "-----END CERTIFICATE-----" >> signature
    openssl smime -verify -in signature -inform PEM -content document -certfile cert.cer -noverify > /dev/null
    }
    verify_signature_without_audience
  5. 若標識返回結果為Verification successful,表示實例身份驗證成功,則放開應用軟件的權限控制。

示例二:傳入audience參數

同樣以在云市場上架一份鏡像為例,示范如何從應用軟件賣家角度使用實例標識。結合您自定義的audience參數,并在放開權限控制之前,通過應用端Server實現策略控制,防止授權碼(License)被非法使用。

  1. 遠程連接Linux實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 執行以下命令,通過元數據獲取云市場鏡像的商品碼(product-code)和云市場鏡像的計費方式(charge-type),確認當前ECS實例使用的鏡像是否來自于云市場鏡像

    更多元數據信息,請參見實例元數據

    curl http://100.100.100.200/latest/meta-data/image/market-place/product-code
    curl http://100.100.100.200/latest/meta-data/image/market-place/charge-type
  3. 在當前工作目錄下創建臨時文件cert.cer,并保存阿里云公有證書到該文件中。

  4. 辨別實例的身份。

    示例腳本如下:

    #!/usr/bin/bash
    function verify_signature_with_specified_audience(){
    audience='your audience' #此處填入您的audience取值
    document=$(curl 100.100.100.200/latest/dynamic/instance-identity/document)
    audience_json=',"audience":''"'${audience}'"}'
    echo -n ${document%?}${audience_json} > document
    echo "-----BEGIN CERTIFICATE-----" > signature
    curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7?audience=${audience} >> signature
    echo "" >> signature
    echo "-----END CERTIFICATE-----" >> signature
    openssl smime -verify -in signature -inform PEM -content document -certfile cert.cer -noverify > /dev/null
    }
    verify_signature_with_specified_audience
  5. 若標識返回結果為Verification successful,表示實例身份驗證成功,則放開應用軟件的權限控制。

相關文檔

  • 如果您需要通過實例元數據,在實例內部獲取其他實例信息,請參見實例元數據

  • 如果您需要使用實例自定義數據在實例啟動時自動執行命令或腳本,請參見實例自定義數據