使用OOS實(shí)現(xiàn)跨賬號跨地域執(zhí)行命令
更新時(shí)間:
實(shí)現(xiàn)原理:
在123456賬號下以RoleA身份扮演654321賬號下的RoleB跨賬號調(diào)用654321賬號下的資源
準(zhǔn)備工作
創(chuàng)建RAM角色:
在賬號123456和賬號654321下分別創(chuàng)建RAM角色:OOSServiceRole,具體操作參考為OOS服務(wù)設(shè)置RAM權(quán)限。
配置信任策略:
123456/OOSServiceRole:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"oos.aliyuncs.com"
]
}
}
],
"Version": "1"
}
654321/OOSServiceRole:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::123456:root"
]
}
}
],
"Version": "1"
}
權(quán)限配置:
1.授予123456/OOSServiceRole權(quán)限:AliyunSTSAssumeRoleAccess
2.授予654321/OOSServiceRole權(quán)限:執(zhí)行命令所用到資源的相關(guān)權(quán)限,本文演示授予AliyunECSFullAccess
操作步驟
1.通過123456賬號登錄系統(tǒng)運(yùn)維管理控制臺。
2.使用附錄中的模板創(chuàng)建跨賬號執(zhí)行模板來跨賬號跨地域執(zhí)行命令。
3.執(zhí)行跨賬號執(zhí)行模板。
參數(shù)說明:
accountRoleAndRegions:
分別在654321賬號下上海和北京地域運(yùn)行中ECS上執(zhí)行命令
[
{
"OOSAssumeRole": "OOSServiceRole|654321/OOSServiceRole",
"RegionId": "cn-shanghai"
},
{
"OOSAssumeRole": "OOSServiceRole|654321/OOSServiceRole",
"RegionId": "cn-beijing"
}
]
templateParameters:
targets說明:選擇目標(biāo)賬號下目標(biāo)地域運(yùn)行中狀態(tài)實(shí)例
{
"commandType": "RunShellScript",
"commandContent": "echo hello",
"workingDir": "",
"windowsPasswordName": "",
"rateControl": {
"MaxErrors": 0,
"Concurrency": 10,
"Mode": "Concurrency"
},
"enableParameter": false,
"targets": {
"Type": "All",
"Parameters": {
"Status": "Running",
"RegionId": "{{regionId}}"
},
"RegionId": "{{regionId}}"
},
"timeout": 600,
"username": ""
}
附錄
跨賬號跨地域執(zhí)行模板:
FormatVersion: OOS-2019-06-01
Description:
en: Multi account to execute specified template
zh-cn: 跨賬號執(zhí)行指定模板
name-en: MultiAccountToExecuteTemplate
name-zh-cn: 跨賬號執(zhí)行指定模板
Parameters:
accountRoleAndRegions:
Type: Json
templateName:
Type: String
AssociationProperty: TemplateName
templateParameters:
Description:
en: Template parameters to execute with.
zh-cn: 觸發(fā)執(zhí)行模板的參數(shù)。
Type: Json
rateControl:
Description:
en: Concurrency ratio of task execution.
zh-cn: 任務(wù)執(zhí)行的并發(fā)比率。
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: executeTemplate
Action: 'ACS::Template'
Description:
en: Execute template.
zh-cn: 執(zhí)行模板。
Properties:
TemplateName: '{{ templateName }}'
Parameters:
'Fn::MergeMap':
- '{{ templateParameters }}'
- regionId:
'Fn::Select':
- RegionId
- '{{ACS::TaskLoopItem}}'
- OOSAssumeRole:
'Fn::Select':
- OOSAssumeRole
- '{{ACS::TaskLoopItem}}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ accountRoleAndRegions }}'
文檔內(nèi)容是否對您有幫助?