Resource Orchestration Service(ROS)でセルフマネージド権限を持つスタックグループを作成する前に、管理者アカウントと実行アカウント内に Resource Access Management(RAM)ロールを手動で作成し、アカウント間に信頼関係を確立する必要があります。その後、実行アカウント内でスタックをデプロイできます。
背景情報
セルフマネージド権限を付与する前に、次の表に示す Alibaba Cloud アカウントの RAM ロールを作成し、ロールに権限を付与する必要があります。
Alibaba Cloud アカウント | RAM ロール | ポリシー | ポリシーの説明 |
管理者アカウント | AliyunROSStackGroupAdministrationRole | カスタムポリシー:AssumeRole-AliyunROSStackGroupExecutionRole | AliyunROSStackGroupAdministrationRole RAM ロールが AliyunROSStackGroupExecutionRole RAM ロールをアシュームすることを許可します。 |
実行アカウント | AliyunROSStackGroupExecutionRole | システムポリシー:AdministratorAccess | AliyunROSStackGroupExecutionRole RAM ロールが、実行アカウントに属するすべての Alibaba Cloud リソースを管理することを許可します。 |
説明 管理者アカウントと実行アカウントは、同じ Alibaba Cloud アカウントにすることができます。管理者アカウントと実行アカウントの詳細については、「概要」をご参照ください。
ロールに権限を付与した後、管理者アカウントを使用して ROS コンソールでスタックグループを作成すると、スタックグループ内にスタックインスタンスを作成して、実行アカウント内にスタックをデプロイできます。
方法 1:RAM コンソールでセルフマネージド権限を付与する
目的の実行アカウントに権限を付与します。
実行アカウントを使用して RAM コンソール にログオンします。
実行アカウントの AliyunROSStackGroupExecutionRole RAM ロールを作成し、目的の管理者アカウントをロールの信頼できるエンティティとして指定します。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページで、[プリンシパルタイプ] パラメーターを [クラウドアカウント] に設定します。
[プリンシパル名] パラメーターを [その他のアカウント] に設定し、フィールドに管理者アカウントの ID を入力します。
[OK] をクリックします。表示されるダイアログボックスで、[ロール名] フィールドに AliyunROSStackGroupExecutionRole と入力します。
[OK] をクリックします。ロールが作成されるまで待ちます。
AdministratorAccess ポリシーを AliyunROSStackGroupExecutionRole RAM ロールにアタッチします。
[ロール] ページで、AliyunROSStackGroupExecutionRole RAM ロールを探し、[アクション] 列の [権限の付与] をクリックします。
[権限の付与] パネルで、リソーススコープ パラメーターを [アカウント] に設定します。選択済みプリンシパル パラメーターの値は自動的に入力されます。
[ポリシー] セクションで、ドロップダウンリストから [システムポリシー] を選択し、[AdministratorAccess] を選択します。
[権限の付与] をクリックします。
管理者アカウントに権限を付与します。
管理者アカウントを使用して RAM コンソール にログオンします。
管理者アカウントの AliyunROSStackGroupAdministrationRole RAM ロールを作成し、ROS をロールの信頼できるエンティティとして指定します。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページで、[プリンシパルタイプ] パラメーターを [クラウドサービス] に設定します。
[プリンシパル名] ドロップダウンリストから [Resource Orchestration Service] を選択し、[OK] をクリックします。
表示されるダイアログボックスで、[ロール名] フィールドに AliyunROSStackGroupAdministrationRole と入力します。
[OK] をクリックします。ロールが作成されるまで待ちます。
AssumeRole-AliyunROSStackGroupExecutionRole カスタムポリシーを作成します。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックし、エディターに次のポリシーコンテンツを入力して、[OK] をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名] フィールドに AssumeRole-AliyunROSStackGroupExecutionRole と入力します。
このポリシーにより、AliyunROSStackGroupAdministrationRole RAM ロールは AliyunROSStackGroupExecutionRole RAM ロールをアシュームできます。
{
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "acs:ram::*:role/AliyunROSStackGroupExecutionRole" // AliyunROSStackGroupExecutionRole ロールをアシュームすることを許可
}
],
"Version": "1"
}
[OK] をクリックします。ポリシーが作成されるまで待ちます。
AssumeRole-AliyunROSStackGroupExecutionRole ポリシーを AliyunROSStackGroupAdministrationRole RAM ロールにアタッチします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、AliyunROSStackGroupAdministrationRole RAM ロールを見つけ、[アクション] 列の [権限の付与] をクリックします。
[権限の付与] パネルで、[リソース範囲] パラメーターを [アカウント] に設定します。[選択済みプリンシパル] パラメーターの値は自動的に入力されます。
[ポリシー] セクションで、ドロップダウンリストから [カスタムポリシー] を選択し、[AssumeRole-AliyunROSStackGroupExecutionRole] を選択します。
[権限の付与] をクリックします。
方法 2:ROS コンソールでセルフマネージド権限を付与する
ROS テンプレートを使用して、管理者アカウントと実行アカウントの RAM ロールを作成し、スタックグループとスタックに対する権限をロールに付与できます。
管理者アカウントを使用して ROS コンソール にログオンします。次に、AliyunROSStackGroupAdministrationRole テンプレートを使用して RAM ロールを作成し、必要な権限をロールに付与します。
サンプルテンプレート
ROSTemplateFormatVersion: '2015-09-01'
Description: Configure the AliyunROSStackGroupAdministrationRole to enable use of Alibaba Cloud ROS StackGroup. // AliyunROSStackGroupAdministrationRole を設定して、Alibaba Cloud ROS スタックグループの使用を有効にします。
Parameters:
AdministrationRoleName:
Type: String
Default: AliyunROSStackGroupAdministrationRole
Description:
en: Role name of administration account // 管理アカウントのロール名
ExecutionRoleName:
Type: String
Default: AliyunROSStackGroupExecutionRole
Description:
en: Execution role name of target account // ターゲットアカウントの実行ロール名
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- AdministrationRoleName
- ExecutionRoleName
Label:
default:
en: RAM // RAM
TemplateTags:
- acs:example:Security:Grant permissions to the administrator account of a stack group // スタックグループの管理者アカウントに権限を付与する
Resources:
AliyunROSStackGroupAdministrationRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName:
Ref: AdministrationRoleName
AssumeRolePolicyDocument:
Version: 1
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service:
- ros.aliyuncs.com // ROS サービスを信頼できるエンティティとして設定
Policies:
- PolicyName:
Fn::Sub:
- AssumeRole-${ExecutionRoleName}
- ExecutionRoleName:
Ref: ExecutionRoleName
PolicyDocument:
Statement:
- Effect: Allow
Action:
- sts:AssumeRole // 実行ロールのアシュームを許可
Resource:
- Fn::Sub: acs:ram::*:role/${ExecutionRoleName} // 実行ロールをリソースとして指定
Version: '1'
Outputs:
AdministrationRoleName:
Value:
Fn::GetAtt:
- AliyunROSStackGroupAdministrationRole
- RoleName
実行アカウントを使用して ROS コンソール にログオンします。次に、AliyunROSStackGroupExecutionRole テンプレートを使用して RAM ロールを作成し、必要な権限をロールに付与します。
サンプルテンプレート
ROSTemplateFormatVersion: '2015-09-01'
Description: Configure the AliyunROSStackGroupExecutionRole to enable use of your account as a target account in Alibaba Cloud ROS StackGroup. // AliyunROSStackGroupExecutionRole を設定して、Alibaba Cloud ROS スタックグループでアカウントをターゲットアカウントとして使用できるようにします。
Conditions:
CurrentAccount:
Fn::Equals:
- Ref: AdministrationAccountId
- ''
Parameters:
ExecutionRoleName:
Type: String
Default: AliyunROSStackGroupExecutionRole
Description:
en: Execution role name of target account // ターゲットアカウントの実行ロール名
AdministrationAccountId:
Type: String
Description:
en: Administration account ID. If not, authorize the current account // 管理アカウント ID。そうでない場合は、現在のアカウントを承認します。
Default: ''
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ExecutionRoleName
- AdministrationAccountId
Label:
default: RAM // RAM
TemplateTags:
- acs:example:Security:Grant permissions to the execution account of a stack group // スタックグループの実行アカウントに権限を付与する
Resources:
AliyunROSStackGroupExecutionRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName:
Ref: ExecutionRoleName
AssumeRolePolicyDocument:
Version: 1
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
RAM:
- Fn::Join:
- ''
- - 'acs:ram::'
- Fn::If:
- CurrentAccount
- Ref: ALIYUN::TenantId
- Ref: AdministrationAccountId // 管理アカウント ID を信頼できるエンティティとして設定
- ':root'
AttachPolicy:
Type: ALIYUN::RAM::AttachPolicyToRole
Properties:
PolicyName: AdministratorAccess // AdministratorAccess ポリシーをアタッチ
PolicyType: System
RoleName:
Fn::GetAtt:
- AliyunROSStackGroupExecutionRole
- RoleName
Outputs:
ExecutionRoleName:
Value:
Fn::GetAtt:
- AliyunROSStackGroupExecutionRole
- RoleName