本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
使用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角色:如果你需要在阿里云的云服務器ECS中訪問您的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");