説明
ROS のスタックポリシーは、スタック更新中に許可するリソース操作を制御します。ポリシーがない場合、更新権限を持つユーザーの操作によって重要なリソースが意図せず変更・削除されるおそれがあります。
想定される影響
- 誤った更新によって重要なリソースが変更・削除される場合があります。
- サービスやデータの復旧に追加の作業が必要になるおそれがあります。
対処方法
stack_policy_body または stack_policy_url で必要な基本保護ポリシーを設定してください。特定の更新で上書きが必要な場合だけ、承認された stack_policy_during_update 設定を使用してください。RAM 権限、削除手順、バックアップは別途管理してください。
例
テンプレートは形式バージョンだけを示した抜粋で、実際のリソース定義は省略しています。変更後のポリシーは、更新中のリソース削除を許可せず、他の更新操作を許可します。
変更前
hcl
resource "alicloud_ros_stack" "stack" {
stack_name = "tf-testaccstack"
template_body = <<EOF
{
"ROSTemplateFormatVersion": "2015-09-01"
}
EOF
}
変更後
hcl
resource "alicloud_ros_stack" "stack" {
stack_name = "tf-testaccstack"
template_body = <<EOF
{
"ROSTemplateFormatVersion": "2015-09-01"
}
EOF
stack_policy_body = <<EOF
{
"Statement": [{
"NotAction": "Update:Delete",
"Resource": "*",
"Effect": "Allow",
"Principal": "*"
}]
}
EOF
}
NotAction: Update:Delete を指定した Allow 文は、Update:Delete を許可対象から除外します。一時的な更新ポリシーは必須ではありません。基本の保護を損なわないよう、必要な変更に限って使用してください。