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

管理訪問憑據(jù)

更新時間:

在使用阿里云SDK調(diào)用OpenAPI操作資源時,必須正確配置憑證信息。Java V1.0 SDK支持多種憑據(jù)配置方式,本文詳細闡述了如何配置訪問憑據(jù),以確保安全有效地使用SDK進行開發(fā)。

使用AccessKey

重要
  • 通過DefaultProfile配置AccessKey初始化客戶端。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.profile.DefaultProfile;
    
    public class Sample {
        public static void main(String[] args) {
            DefaultProfile profile = DefaultProfile.getProfile(
                    "<REGION_ID>",
                    // 從環(huán)境變量獲取RAM用戶的AccessKey ID
                    System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                    // 從環(huán)境變量獲取RAM用戶的AccessKey Secret
                    System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
            // 省略調(diào)用API步驟...
        }
    }
  • 通過BasicCredentials配置AccessKey初始化客戶端。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.auth.BasicCredentials;
    import com.aliyuncs.profile.DefaultProfile;
    
    public class Sample {
        public static void main(String[] args) {
            BasicCredentials basicCredentials = new BasicCredentials(
                    // 從環(huán)境變量獲取RAM用戶的AccessKey ID
                    System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                    // 從環(huán)境變量獲取RAM用戶的AccessKey Secret
                    System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
            );
            DefaultProfile profile = DefaultProfile.getProfile("<REGION_ID>");
            IAcsClient client = new DefaultAcsClient(profile, basicCredentials);
            // 省略調(diào)用API步驟...
        }
    }

使用STS Token

使用臨時訪問憑據(jù)(STS Token)初始化憑據(jù)客戶端。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.profile.DefaultProfile;

public class Test {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
                "<REGION_ID>",
                // 從環(huán)境變量獲取RAM用戶的AccessKey ID
                System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // 從環(huán)境變量獲取RAM用戶的AccessKey Secret
                System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                // STS Token
                System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN"));
        IAcsClient client = new DefaultAcsClient(profile);
        // 省略調(diào)用API步驟...
    }
}

使用RamRoleArn

以一個RAM用戶的身份調(diào)用STS服務(wù)的AssumeRole接口獲取STS Token。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.STSAssumeRoleSessionCredentialsProvider;
import com.aliyuncs.profile.DefaultProfile;

public class Sample {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile();
        // 使用STS Token方式
        STSAssumeRoleSessionCredentialsProvider stsProvider = new STSAssumeRoleSessionCredentialsProvider(
                // 從環(huán)境變量獲取RAM用戶的AccessKey ID
                System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // 從環(huán)境變量獲取RAM用戶的Access Key Secret
                System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                // 自定義會話名稱
                "<ROLE_SESSION_NAME>",
                // RAM角色ARN
                "<ROLE_ARN>",
                // region id
                "<REGION_ID>"
        );
        DefaultAcsClient client = new DefaultAcsClient(profile, stsProvider);
        // 省略調(diào)用API步驟...
    }
}

使用ECSRamRole

為了在提高應(yīng)用部署安全性的同時增強便利性,阿里云SDK支持通過ECS實例RAM角色Token服務(wù)來獲取ECS RAM角色的授權(quán)信息,以訪問阿里云資源和服務(wù)。使用這種方式,您在ECS上部署的應(yīng)用程序無需在SDK中配置授權(quán)信息即可訪問阿里云API(即無需配置AccessKey)。通過這種方式授權(quán)的SDK,將具備該ECS RAM角色的權(quán)限。

重要

確保ECS實例已經(jīng)配置了RAM角色。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.InstanceProfileCredentialsProvider;
import com.aliyuncs.profile.DefaultProfile;

public class Sample {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("<REGION_ID>");
        // 使用ECS RAM Role方式
        InstanceProfileCredentialsProvider provider = new InstanceProfileCredentialsProvider(
                "<ROLE_NAME>"
        );
        DefaultAcsClient client = new DefaultAcsClient(profile, provider);
        // 省略調(diào)用API步驟...
    }
}

使用OIDCRoleArn

在容器服務(wù)Kubernetes版中配置了Worker節(jié)點RAM角色后,您可以基于RRSA功能在集群內(nèi)實現(xiàn)Pod級別的應(yīng)用關(guān)聯(lián)RAM角色功能。各個應(yīng)用可以獨立扮演不同的RAM角色,并利用獲取的臨時憑證訪問云資源,從而實現(xiàn)應(yīng)用RAM權(quán)限的最小化,并滿足無AccessKey訪問阿里云OpenAPI的需求,以避免AccessKey泄露。

阿里云容器集群會為不同的應(yīng)用Pod創(chuàng)建和掛載相應(yīng)的服務(wù)賬戶OIDC Token文件,并將相關(guān)配置信息注入到環(huán)境變量中,SDK底層通過獲取環(huán)境變量的配置信息,調(diào)用STS服務(wù)的AssumeRoleWithOIDC - OIDC角色SSO時獲取扮演角色的臨時身份憑證接口換取綁定角色的STS Token。詳情請參見通過RRSA配置ServiceAccount的RAM權(quán)限實現(xiàn)Pod權(quán)限隔離

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.auth.OIDCCredentialsProvider;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;

public class OIDC {
    public static void main(String[] args) throws ClientException {
        // 使用OIDC方式
        OIDCCredentialsProvider provider = new OIDCCredentialsProvider(
                // RAM角色名稱ARN
                System.getenv("ALIBABA_CLOUD_ROLE_ARN"),
                // OIDC提供商ARN
                System.getenv("ALIBABA_CLOUD_OIDC_PROVIDER_ARN"),
                // OIDC Token文件路徑
                System.getenv("ALIBABA_CLOUD_OIDC_TOKEN_FILE"),
                // 自定義會話名稱
                "<ROLE_SESSION_NAME>",
                // 指定STS服務(wù)的region id
                "<REGION_ID>"
        );
        DefaultProfile profile = DefaultProfile.getProfile(
                // 指定client的region id
                "<REGION_ID>");
        IAcsClient client = new DefaultAcsClient(profile, provider);
        // 省略調(diào)用API步驟...
    }
}

使用Bearertoken

說明

只有CCC這個產(chǎn)品支持此方式。

import com.aliyuncs.auth.BearerTokenCredentials;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;

public class BearerToken {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("<REGION_ID>");
        // 使用BearerTokenCredentials設(shè)置訪問憑據(jù)
        BearerTokenCredentials bearerTokenCredential = new BearerTokenCredentials("<BEARER_TOKEN>");
        DefaultAcsClient client = new DefaultAcsClient(profile, bearerTokenCredential);
        // 省略調(diào)用API步驟...
    }
}

使用默認憑證提供鏈

當(dāng)您在初始化憑據(jù)客戶端不傳入任何參數(shù)時,SDK會使用默認憑據(jù)鏈方式初始化客戶端。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;

public class Test {
    public static void main(String[] args) throws ClientException {
        // 使用默認憑據(jù)鏈
        IAcsClient client = new DefaultAcsClient("<REGION_ID>");
        // 省略調(diào)用API步驟...
    }
}

默認憑證提供程序鏈將按照以下順序查找可用的憑證:

1. 系統(tǒng)屬性

在系統(tǒng)屬性里尋找環(huán)境憑證,如果定義了 alibabacloud.accessKeyIdalibabacloud.accessKeyIdSecret 系統(tǒng)屬性且不為空,程序?qū)⑹褂盟鼈儎?chuàng)建默認憑證。

2. 環(huán)境憑證

在環(huán)境變量里尋找環(huán)境憑證,如果定義了 ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET 環(huán)境變量且不為空,程序?qū)⑹褂盟鼈儎?chuàng)建默認憑證。

3. OIDC RAM角色

若不存在優(yōu)先級更高的憑據(jù)信息,Credentials工具會在環(huán)境變量中獲取如下內(nèi)容:

ALIBABA_CLOUD_ROLE_ARN:RAM角色名稱ARN;

ALIBABA_CLOUD_OIDC_PROVIDER_ARN:OIDC提供商ARN;

ALIBABA_CLOUD_OIDC_TOKEN_FILE:OIDC Token文件路徑;

若以上三個環(huán)境變量都已設(shè)置內(nèi)容,Credentials將會使用變量內(nèi)容調(diào)用STS服務(wù)的AssumeRoleWithOIDC接口換取STS Token作為默認憑據(jù)。

4. 配置文件

如果用戶主目錄存在默認文件 ~/.alibabacloud/credentials.ini (Windows 為 C:\Users\USER_NAME\.alibabacloud\credentials.ini),程序會自動創(chuàng)建指定類型和名稱的憑證。默認文件可以不存在,但解析錯誤會拋出異常。配置名小寫。不同的項目、工具之間可以共用這個配置文件,因為不在項目之內(nèi),也不會被意外提交到版本控制。 可以通過定義 ALIBABA_CLOUD_CREDENTIALS_FILE 環(huán)境變量修改默認文件的路徑。不配置則使用默認配置 default,也可以設(shè)置環(huán)境變量 ALIBABA_CLOUD_PROFILE 使用配置。

[default]                          # 默認配置
enable = true                      # 啟用,沒有該選項默認不啟用
type = access_key                  # 認證方式為 access_key
access_key_id = foo                # Key
access_key_secret = bar            # Secret

[client1]                          # 命名為 `client1` 的配置
enable = false                     # 不啟用
type = ecs_ram_role                # 認證方式為 ecs_ram_role
role_name = EcsRamRoleTest         # Role Name

[client2]                          # 命名為 `client2` 的配置
enable = false                     # 不啟用
type = ram_role_arn                # 認證方式為 ram_role_arn
region_id = cn-test                # 獲取session用的region
policy = test                      # 選填 指定權(quán)限
access_key_id = foo
access_key_secret = bar
role_arn = role_arn
role_session_name = session_name   # 選填

5. ECS實例RAM角色

若不存在優(yōu)先級更高的憑據(jù)信息,Credentials工具會在環(huán)境變量中獲取ALIBABA_CLOUD_ECS_METADATA(ECS實例RAM角色名稱),若存在,程序?qū)ㄟ^ECS的元數(shù)據(jù)服務(wù)(Meta Data Server)獲取ECS實例RAM角色的STS Token作為默認憑據(jù)信息。