

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EC2 Auto Scaling リソースの削除保護を設定する
<a name="resource-deletion-protection"></a>

 複数の保護レイヤーを設定することで、Amazon EC2 Auto Scaling インフラストラクチャを誤って削除しないように保護します。Auto Scaling は、Auto Scaling グループと管理する Amazon EC2 インスタンスの不要なリソース削除を防ぐためのいくつかのアプローチを提供します。

**Topics**
+ [Auto Scaling グループの削除保護を設定する](#asg-deletion-protection)
+ [IAM ポリシーを使用して削除アクセス許可を制御する](#deletion-protection-iam-policies)

## Auto Scaling グループの削除保護を設定する
<a name="asg-deletion-protection"></a>

 削除保護は、Amazon EC2 Auto Scaling グループが誤って削除されないようにするリソースレベルの設定です。削除保護を有効にすると、[DeleteAutoScalingGroup ](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteAutoScalingGroup.html) API オペレーションが成功するのをブロックするため、Auto Scaling グループを削除する前に、まず削除保護設定をより制限の少ないレベルに更新する必要があります。

Amazon EC2 Auto Scaling は、次の 3 つのレベルの削除保護を提供します。

**なし** (デフォルト)  
 削除保護は有効になっていません。つまり、Auto Scaling グループは `ForceDelete`オプションを使用して、または使用せずに削除できます。`ForceDelete` を使用すると、Auto Scaling グループによって管理されるすべての Amazon EC2 インスタンスも、終了ライフサイクルフックを実行せずに強制的に終了します。

**強制削除の防止**  
 `ForceDelete` オプションを使用する場合、Auto Scaling グループを削除することはできません。この設定では、空の Auto Scaling グループ (インスタンスのないグループ) を削除できます。このオプションは、インスタンスの大量終了を防ぎ、空のグループのクリーンアップを許可する本稼働ワークロードに推奨されます。

**すべての削除の防止**  
 `ForceDelete` オプションが使用されているかどうかにかかわらず、Auto Scaling グループを削除することはできません。このオプションは、偶発的な削除に対して最も強力な保護を提供します。Auto Scaling グループを削除する前に、削除保護を明示的に無効にする必要があります。これは、ほとんどまたはまったく削除しないミッションクリティカルな Auto Scaling グループに推奨されます。

### 削除保護の仕組み
<a name="deletion-protection-how-it-works"></a>

 削除保護を有効にして [ DeleteAutoScalingGroup ](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteAutoScalingGroup.html) API オペレーションを試行する場合: 

1.  Amazon EC2 Auto Scaling は、リクエストを処理する前に削除保護設定を検証します。

1.  設定された削除保護レベルが削除試行をブロックすると、Amazon EC2 Auto Scaling は を返します`ValidationError`。

1.  Auto Scaling グループとその Amazon EC2 インスタンスは変更されません。

1.  Auto Scaling グループを削除する前に、削除保護設定をより制限の少ないレベルに更新する必要があります。

 削除保護は、次のような他のオペレーションを妨げません。
+  Auto Scaling グループ設定の更新。
+  個々のインスタンスの終了。
+  スケーリングオペレーション (手動または自動）。
+  プロセスの停止または再開。

 インスタンスの終了を適切に処理する方法の詳細については、「」を参照してください[インスタンスの終了を的確に処理するようにアプリケーションを設計する](gracefully-handle-instance-termination.md)。

### 削除保護を設定する
<a name="configure-deletion-protection"></a>

 Auto Scaling グループを作成するとき、または既存の Auto Scaling グループの設定を更新するときに、削除保護を設定できます。

------
#### [ Console ]

**削除保護を使用して Auto Scaling グループを作成するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. **[Auto Scaling グループの作成]** を選択します。

1. Auto Scaling グループの設定ステップを完了します。

1. **グループサイズとスケーリングの設定**ページで、**追加設定**を展開します。

1. **Auto Scaling グループの削除保護**には、必要な保護レベルを選択します。
   + **なし** - 削除保護なし (デフォルト)
   + **強制削除の防止** - 強制削除オペレーションのブロック
   + **すべての削除の防止** - すべての削除オペレーションをブロックする

1. 残りのステップを完了して、Auto Scaling グループを作成します。

**既存の Auto Scaling グループの削除保護を更新するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

1. **[Actions]**、**[Edit]** の順に選択します。

1. **追加設定**で、**Auto Scaling グループの削除保護**設定を更新します。

1. **[更新]** を選択します。

------
#### [ AWS CLI ]

**削除保護を使用して Auto Scaling グループを作成するには**  
create[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを `--deletion-protection`パラメータとともに使用します。

```
aws autoscaling create-auto-scaling-group \
    --auto-scaling-group-name {{my-asg}} \
    --launch-template LaunchTemplateName={{my-template}},Version='$Latest' \
    --min-size {{1}} \
    --max-size {{5}} \
    --desired-capacity {{2}} \
    --vpc-zone-identifier "{{subnet-12345678,subnet-87654321}}" \
    --deletion-protection {{prevent-force-deletion}}
```

の有効な値`--deletion-protection`: `none` \| `prevent-force-deletion` \| `prevent-all-deletion`

**既存の Auto Scaling グループの削除保護を更新するには**  
[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。

```
aws autoscaling update-auto-scaling-group \
    --auto-scaling-group-name {{my-asg}} \
    --deletion-protection {{prevent-all-deletion}}
```

**削除保護を無効にするには**  
削除保護を に設定します`none`。

```
aws autoscaling update-auto-scaling-group \
    --auto-scaling-group-name {{my-asg}} \
    --deletion-protection {{none}}
```

**削除保護ステータスを確認するには**  
[describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) コマンドを使用します。

```
aws autoscaling describe-auto-scaling-groups \
    --auto-scaling-group-names {{my-asg}}
```

------

## IAM ポリシーを使用して削除アクセス許可を制御する
<a name="deletion-protection-iam-policies"></a>

 AWS Identity and Access Management (IAM) ポリシーを使用して、Auto Scaling グループを削除できるユーザーとロールを制御します。IAM ベースのコントロールは、アイデンティティレベルでアクセス許可を制限することで、追加のセキュリティレイヤーを提供します。

IAM ポリシーは、次の場合に特に役立ちます。
+  Auto Scaling オペレーションへの異なるレベルのアクセスを異なるユーザーに許可します。
+  特定のユーザーが他の Auto Scaling オペレーションを実行できる場合でも、 `ForceDelete`オプションを使用できないようにします。
+  削除許可を特定の Auto Scaling グループに制限します。

 次のポリシーは、グループにタグ `environment=development` が付けられている場合にのみ、Auto Scaling グループの削除を許可します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": "autoscaling:DeleteAutoScalingGroup",
      "Resource": "*",
      "Condition": {
          "StringEquals": { "aws:ResourceTag/{{environment}}": "{{development}}" }
      }
   }]
}
```

------

 次のポリシーでは、 `autoscaling:ForceDelete`条件キーを使用して `DeleteAutoScalingGroup` API アクションへのアクセスを制御します。これにより、特定のユーザーが `ForceDelete`オペレーションを使用するのを防ぐことができます。これにより、Auto Scaling グループ内のすべての Amazon EC2 インスタンスが終了します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Deny",
        "Action": "autoscaling:DeleteAutoScalingGroup",
        "Resource": "*",
        "Condition": {
            "Bool": {
                "autoscaling:ForceDelete": "true"
            }
        }
    }]
}
```

------

 Auto Scaling グループへのアクセス制御で条件キーを使用していない場合は、代わりに `Resource` 要素内のリソースの ARN を指定してアクセスを制御できます。

 次のポリシーは、名前が で始まる Auto Scaling グループに対してのみ、 `DeleteAutoScalingGroup` API アクションを使用するアクセス許可をユーザーに付与します`devteam-`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "autoscaling:DeleteAutoScalingGroup",
            "Resource": "arn:aws:autoscaling:{{us-east-1}}:{{111122223333}}:autoScalingGroup:*:autoScalingGroupName/{{devteam-}}*"
        }
    ]
}
```

------

 複数の ARN をリストに含めて指定することもできます。UUID を含めることで、特定の Auto Scaling グループに確実にアクセス許可が付与されます。新しいグループの UUID は、同じ名前の削除済みグループの UUID とは異なります。

```
"Resource": [
    "arn:aws:autoscaling:{{region}}:{{account-id}}:autoScalingGroup:{{uuid}}:autoScalingGroupName/{{devteam-1}}",
    "arn:aws:autoscaling:{{region}}:{{account-id}}:autoScalingGroup:{{uuid}}:autoScalingGroupName/{{devteam-2}}",
    "arn:aws:autoscaling:{{region}}:{{account-id}}:autoScalingGroup:{{uuid}}:autoScalingGroupName/{{devteam-3}}"
]
```

 削除許可を制御するポリシーなど、Amazon EC2 Auto Scaling の IAM ポリシーのその他の例については、「」を参照してください[アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)。