使用Java SDK發起SMQ請求,您需要配置存取點及訪問憑證。阿里雲服務會通過訪問憑證驗證您的身份資訊和存取權限。您可以根據使用情境對認證和授權的要求,選擇不同類型的訪問憑證。本文介紹如何配置存取點、臨時訪問憑證、長期訪問憑證。
配置訪問網域名稱
將SMQ公網或內網存取點資訊配置在aliyun-mns.properties檔案中,該檔案一般位於${user.home}/.aliyun-mns.properties
。
在Linux和macOS作業系統中,aliyun-mns.properties檔案位於~/.aliyun-mns.properties
。
在Windows作業系統中,aliyun-mns.properties檔案位於%USERPROFILE%\.aliyun-mns.properties
。
aliyun-mns.properties檔案配置如下:
mns.accountendpoint=http://120228xxxxxxx.mns.cn-xxxxxx.aliyuncs.com
關於SMQ的存取點資訊,您可以在控制台的隊列詳情/主題詳情頁面的存取點地區查看。
配置訪問憑證
您可以選擇以下類型的訪問憑證。
長期訪問憑證:出於安全性考慮,不建議您使用長期訪問憑證,建議您使用臨時訪問憑證。對於需要便利性的情境,長期訪問憑證可以在較長時間內免除多次重新整理的麻煩。建議每三個月更換一次長期訪問憑證,以提高帳號的安全性。當長期訪問憑證泄露或者不再使用時,應該及時刪除或者禁用相關的訪問憑證,以免造成安全風險。
臨時訪問憑證:對於需要高安全性的情境,例如臨時授權應用訪問SMQ,建議使用臨時訪問憑證。臨時訪問憑證可以限制訪問的有效期間,從而減少訪問憑證泄露的風險。此外,臨時訪問憑證支援許可權控制,可以有效地避免許可權過大的問題。
使用長期訪問憑證
當您準備在應用或服務中長期使用Java SDK訪問SMQ服務時,您可以通過以下方式配置長期訪問憑證。
配置RAM使用者的存取金鑰:如果您需要長期訪問您的SMQ,您可以通過RAM使用者的存取金鑰的方式訪問您的SMQ。
擷取RAM使用者的存取金鑰。
如何擷取RAM使用者的存取金鑰,請參見建立RAM使用者的AccessKey。
重要對於超過3個月的RAM使用者的存取金鑰,建議及時輪換。對於長期不用的RAM使用者的存取金鑰,建議及時禁用並刪除。以降低RAM使用者的存取金鑰被泄露的風險。
配置RAM使用者的存取金鑰。
環境變數
配置環境變數。
macOS
開啟終端。
執行以下命令。
nano ~/.bash_profile
在檔案末尾添加RAM使用者的存取金鑰。
export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
按
Ctrl
+X
,按Y
鍵確認儲存,然後按Enter
鍵退出檔案。輸入以下命令以使更改生效。
source ~/.bash_profile
執行以下命令驗證環境變數配置。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
成功返回樣本如下:
LTA**** moiEs****
Linux
開啟終端。
執行以下命令。
sudo vim /etc/profile
在檔案末尾添加RAM使用者的存取金鑰。
export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
按
ESC
鍵退出編輯模式,輸入:wq
,然後按Enter
鍵儲存並退出檔案。輸入以下命令以使更改生效。
source /etc/profile
執行以下命令驗證環境變數配置。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
成功返回樣本如下:
LTA**** moiEs****
Windows
通過圖形化使用者介面GUI
以Windows 10為例,通過圖形化使用者介面以環境變數的方式設定RAM使用者存取金鑰的步驟如下:
在案頭按右鍵此電腦,選擇
。添加以下環境變數。
變數名
樣本值
ALIBABA_CLOUD_ACCESS_KEY_ID
LTA****
ALIBABA_CLOUD_ACCESS_KEY_SECRET
moiEs****
執行以下命令驗證環境變數配置。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
成功返回樣本如下:
LTA**** moiEs****
通過命令列提示符CMD
開啟命令列。
執行以下命令配置RAM使用者的存取金鑰。
set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
執行以下命令以使更改生效。
setx ALIBABA_CLOUD_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%" setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%"
執行以下命令驗證環境變數配置。
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
成功返回樣本如下:
LTA**** moiEs****
通過Windows PowerShell
按下鍵盤上的
Win + X
按鍵組合。設定RAM使用者的存取金鑰。
僅當前會話有效
在彈出的菜單中,選擇Windows PowerShell。
為當前會話添加以下環境變數。
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTA****" $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "moiEs****"
對所有新會話有效
在彈出的菜單中,選擇Windows PowerShell。
為所有新會話添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::User)
對所有使用者有效
在彈出的菜單中,選擇Windows PowerShell(管理員)。
為所有使用者添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)
執行以下命令驗證環境變數配置。
Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
成功返回樣本如下:
LTA**** moiEs****
從環境變數中擷取RAM使用者的存取金鑰。
// 使用環境變數中擷取的RAM使用者的存取金鑰配置訪問憑證。 CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());
代碼嵌入
警告在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源SMQ,造成損失。因此,建議您使用更安全的方式,例如從環境變數中擷取訪問憑證,來提高安全性。
CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());
使用臨時訪問憑證
當您準備臨時使用Java SDK訪問SMQ服務時,您可以選擇以下方式配置臨時訪問憑證。
配置STS臨時訪問憑證:如果您需要在規定時間內訪問您的SMQ,您可以通過STS服務頒發一個STS臨時訪問憑證。臨時訪問憑證無需透露您的RAM使用者存取金鑰,使您的SMQ訪問更加安全。
配置RAM角色:如果您需要授權訪問或跨帳號訪問SMQ,您可以通過RAM使用者扮演對應的RAM角色的方式授權訪問或跨帳號訪問SMQ。
配置ECS的RAM角色:如果你需要在阿里雲的Elastic Compute Service中訪問您的SMQ,您可以通過ECS執行個體RAM角色的方式訪問SMQ。執行個體RAM角色允許您將一個角色關聯到雲端服務器執行個體,在執行個體內部基於STS臨時憑證通過指定方法訪問SMQ。STS臨時憑證由系統自動產生和更新,應用程式可以使用指定的執行個體中繼資料URL擷取臨時憑證,無需特別管理。
配置STS臨時訪問憑證
建立RAM使用者。
具體操作,請參見建立RAM使用者。
為RAM使用者授予
AliyunSTSAssumeRoleAccess
許可權。具體操作,請參見為RAM使用者授權。
使用RAM使用者調用STS服務的AssumeRole介面擷取STS臨時訪問憑證。
具體操作,請參見AssumeRole。
配置STS臨時訪問憑證。
環境變數
使用擷取的STS臨時訪問憑證配置環境變數。
macOS
開啟終端。
執行以下命令。
nano ~/.bash_profile
在檔案末尾添加從STS服務擷取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export MNS_ACCESS_KEY_ID=LTA**** export MNS_ACCESS_KEY_SECRET=moiEs**** export MNS_SESSION_TOKEN=CAES****
按
Ctrl
+X
,按Y
鍵確認儲存,然後按Enter
鍵退出檔案。執行以下命令以使更改生效。
source ~/.bash_profile
執行以下命令驗證環境變數配置。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_SESSION_TOKEN
成功返回樣本如下:
LTA**** moiEs**** CAES****
Linux
開啟終端。
執行以下命令。
sudo vim /etc/profile
在檔案末尾添加從STS服務擷取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export MNS_ACCESS_KEY_ID=LTA**** export MNS_ACCESS_KEY_SECRET=moiEs**** export MNS_SESSION_TOKEN=CAES****
按
ESC
鍵退出編輯模式,輸入:wq
,然後按Enter
鍵儲存並退出檔案。執行以下命令以使更改生效。
source /etc/profile
執行以下命令驗證環境變數配置。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_SESSION_TOKEN
成功返回樣本如下:
LTA**** moiEs**** CAES****
Windows
通過圖形化使用者介面GUI
以Windows 10為例,通過圖形化使用者介面以環境變數的方式設定STS臨時訪問憑證的步驟如下:
在案頭按右鍵此電腦,選擇
。添加以下環境變數。
變數名
樣本值
MNS_ACCESS_KEY_ID
LTA****
MNS_ACCESS_KEY_SECRET
moiEs****
MNS_SESSION_TOKEN
CAES****
執行以下命令驗證環境變數配置。
echo %MNS_ACCESS_KEY_ID% echo %MNS_ACCESS_KEY_SECRET% echo %MNS_SESSION_TOKEN%
成功返回樣本如下:
LTA**** moiEs**** CAES****
通過命令列提示符CMD
開啟命令列。
執行以下命令配置從STS服務擷取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。
set MNS_ACCESS_KEY_ID=LTA**** set MNS_ACCESS_KEY_SECRET=moiEs**** set MNS_SESSION_TOKEN=CAES****
執行以下命令以使更改生效。
setx MNS_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%" setx MNS_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%" setx MNS_SESSION_TOKEN "%MNS_SESSION_TOKEN%"
執行以下命令驗證環境變數配置。
echo %MNS_ACCESS_KEY_ID% echo %MNS_ACCESS_KEY_SECRET% echo %MNS_SESSION_TOKEN%
成功返回樣本如下:
LTA**** moiEs**** CAES****
通過Windows PowerShell
按下鍵盤上的
Win + X
按鍵組合。設定STS臨時訪問憑證。
僅當前會話有效
在彈出的菜單中,選擇Windows PowerShell。
為當前會話添加以下環境變數。
$env:MNS_ACCESS_KEY_ID = "LTA****" $env:MNS_ACCESS_KEY_SECRET = "moiEs****" $env:MNS_SESSION_TOKEN = "CAE****"
對所有新會話有效
在彈出的菜單中,選擇Windows PowerShell。
為所有新會話添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::User)
對所有使用者有效
在彈出的菜單中,選擇Windows PowerShell(管理員)。
為所有使用者添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::Machine)
執行以下命令驗證環境變數配置。
Get-ChildItem env:MNS_ACCESS_KEY_ID Get-ChildItem env:MNS_ACCESS_KEY_SECRET Get-ChildItem env:MNS_SESSION_TOKEN
成功返回樣本如下:
LTA**** moiEs**** CAES****
從環境變數中擷取STS臨時訪問憑證。
// 從環境變數中擷取RAM使用者的臨時存取金鑰(AccessKey ID、AccessKey Secret和SecurityToken)。 String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET"); String sessionToken = System.getenv("MNS_SESSION_TOKEN"); AlibabaCloudCredentials credentials = new BasicSessionCredentials(accessKeyId,accessKeySecret,sessionToken); AlibabaCloudCredentialsProvider provider = new StaticCredentialsProvider(credentials);
代碼嵌入
警告在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源MNS,造成損失。因此,建議您使用更安全的方式,例如從環境變數中擷取訪問憑證,來提高安全性。
// 從環境變數中擷取RAM使用者的臨時存取金鑰(AccessKey ID、AccessKey Secret和SecurityToken)。 String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET"); String sessionToken = System.getenv("MNS_SESSION_TOKEN"); AlibabaCloudCredentials credentials = new BasicSessionCredentials(accessKeyId,accessKeySecret,sessionToken); AlibabaCloudCredentialsProvider provider = new StaticCredentialsProvider(credentials); String endpoint = ServiceSettings.getMNSAccountEndpoint(); CloudAccount account = new CloudAccount(endpoint, provider);
配置RAM角色
擷取RAM使用者的存取金鑰。
具體操作,請參見建立RAM使用者的AccessKey。
重要為降低RAM使用者的存取金鑰被泄露的風險,對於超過3個月的RAM使用者的存取金鑰,建議及時輪換。對於長期不用的RAM使用者的存取金鑰,建議及時禁用並刪除。
擷取目標RAM角色的RamRoleArn。
說明RamRoleArn是RAM角色的ARN資訊,即需要扮演的角色ID。格式為acs:ram::$accountID:role/$roleName。$accountID為阿里雲帳號ID。$roleName為RAM角色名稱。
具體操作,請參見查看RAM角色。
配置RAM使用者的存取金鑰和目標RAM角色的RAMRoleArn作為訪問憑證。
環境變數
使用擷取的RAM使用者的存取金鑰和目標RAM角色的RamRoleArn配置環境變數。
macOS
開啟終端。
執行以下命令。
nano ~/.bash_profile
在檔案末尾添加擷取的RAM使用者的存取金鑰和RAM角色的RamRoleArn。
export MNS_ACCESS_KEY_ID=LTAI**** export MNS_ACCESS_KEY_SECRET=IrVTNZNy**** export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
按
Ctrl
+X
,按Y
鍵確認儲存,然後按Enter
鍵退出檔案。執行以下命令以使更改生效。
source /etc/profile
執行以下命令驗證環境變數配置。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_STS_ROLE_ARN
成功返回樣本如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/mnsststest
Linux
開啟終端。
執行以下命令。
sudo vim /etc/profile
在檔案末尾添加擷取的RAM使用者的存取金鑰和RAM角色的RamRoleArn。
export MNS_ACCESS_KEY_ID=LTAI**** export MNS_ACCESS_KEY_SECRET=IrVTNZNy**** export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
按
ESC
鍵退出編輯模式,輸入:wq
,然後按Enter
鍵儲存並退出檔案。執行以下命令以使更改生效。
source /etc/profile
執行以下命令驗證環境變數配置。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_STS_ROLE_ARN
成功返回樣本如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/mnsststest
Windows
通過圖形化使用者介面GUI
以Windows 10為例,通過圖形化使用者介面以環境變數的方式設定RAM使用者的存取金鑰和目標RAM角色的RAMRoleArn步驟如下:
在案頭按右鍵此電腦,選擇
。添加以下環境變數。
變數名
樣本值
MNS_ACCESS_KEY_ID
LTAI****
MNS_ACCESS_KEY_SECRET
IrVTNZNy****
MNS_STS_ROLE_ARN
acs:ram::17464958********:role/mnsststest
執行以下命令驗證環境變數配置。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_STS_ROLE_ARN
成功返回樣本如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/mnsststest
通過命令列提示符CMD
開啟命令列。
執行以下命令配置RAM使用者的存取金鑰和RAM角色的RamRoleArn。
set MNS_ACCESS_KEY_ID=LTAI**** set MNS_ACCESS_KEY_SECRET=IrVTNZNy**** set MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
執行以下命令以使更改生效。
setx MNS_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%" setx MNS_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%" setx MNS_STS_ROLE_ARN "%MNS_STS_ROLE_ARN%"
執行以下命令驗證環境變數配置。
echo %MNS_ACCESS_KEY_ID% echo %MNS_ACCESS_KEY_SECRET% echo %MNS_STS_ROLE_ARN%
成功返回樣本如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/mnsststest
通過Windows PowerShell
按下鍵盤上的
Win + X
按鍵組合。設定RAM使用者的存取金鑰和目標RAM角色的RAMRoleArn。
僅當前會話有效
在彈出的菜單中,選擇Windows PowerShell。
為當前會話添加以下環境變數。
$env:MNS_ACCESS_KEY_ID = "LTAI****" $env:MNS_ACCESS_KEY_SECRET = "IrVTNZNy****" $env:MNS_STS_ROLE_ARN = "acs:ram::17464958********:role/ossststest"
對所有新會話有效
在彈出的菜單中,選擇Windows PowerShell。
為所有新會話添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_STS_ROLE_ARN', 'acs:ram::17464958********:role/mnsststest', [System.EnvironmentVariableTarget]::User)
對所有使用者有效
在彈出的菜單中,選擇Windows PowerShell(管理員)。
為所有使用者添加以下環境變數。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_STS_ROLE_ARN', 'acs:ram::17464958********:role/mnsststest', [System.EnvironmentVariableTarget]::Machine)
執行以下命令驗證環境變數配置。
Get-ChildItem env:MNS_ACCESS_KEY_ID Get-ChildItem env:MNS_ACCESS_KEY_SECRET Get-ChildItem env:MNS_STS_ROLE_ARN
成功返回樣本如下:
LTAI**** IrVTNZNy**** acs:ram::17464958********:role/mnsststest
從環境變數中擷取RAM使用者的存取金鑰RAM角色的RamRoleArn。
// 授權STSAssumeRole訪問的Region。以華東1(杭州)為例,其它Region請根據實際情況填寫。 String region = "cn-hangzhou"; // 從環境變數中擷取RAM使用者的存取金鑰(AccessKey ID和AccessKey Secret)。 String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET"); // 從環境變數中擷取RAM角色的RamRoleArn。 String roleArn = System.getenv("MNS_STS_ROLE_ARN"); // 使用環境變數中擷取的RAM使用者的存取金鑰和RAM角色的RamRoleArn配置訪問憑證。 STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory .newSTSAssumeRoleSessionCredentialsProvider( region, accessKeyId, accessKeySecret, roleArn );
代碼嵌入
警告在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源OSS,造成損失。因此,建議您使用更安全的方式,例如從環境變數中擷取訪問憑證,來提高安全性。
// 這個region Id和mns endpoint為一個region。 String regionId = "cn-hangzhou"; // 從環境變數中擷取RAM使用者的存取金鑰(AccessKey ID和AccessKey Secret)。 String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET"); // 從環境變數中擷取RAM角色的RamRoleArn。 String roleArn = System.getenv("MNS_STS_ROLE_ARN"); DefaultProfile profile = DefaultProfile.getProfile(regionId); AlibabaCloudCredentialsProvider provider = new STSAssumeRoleSessionCredentialsProvider( new BasicCredentials(accessKeyId, accessKeySecret), roleArn, profile ); String endpoint = ServiceSettings.getMNSAccountEndpoint(); CloudAccount account = new CloudAccount(endpoint, provider);
配置ECS的RAM角色
為ECS執行個體授予RAM角色。
具體操作,請參見授予執行個體RAM角色。
配置ECS的RAM角色作為訪問憑證。
// 通過ECS RAM角色擷取訪問憑證,例如以角色名稱(ecs-ram-role)訪問為例。 CredentialsProvider provider = new InstanceProfileCredentialsProvider("ecs-ram-role");