

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 控制对 Amazon EBS 快照锁定的访问
<a name="snapshot-lock-iam"></a>

默认情况下，用户无权使用快照锁定。要允许用户使用快照锁定，您必须创建 IAM policy，以授予使用特定资源和 API 操作的权限。有关更多信息，请参阅《IAM 用户指南》中的[创建 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

**Topics**
+ [所需的权限](#snapshot-lock-req-perms)
+ [使用条件键限制访问](#snapshot-lock-condition-keys)

## 所需的权限
<a name="snapshot-lock-req-perms"></a>

要使用快照锁定，用户需要以下权限。
+ `ec2:LockSnapshot` – 锁定快照。
+ `ec2:UnlockSnapshot` – 解锁快照。
+ `ec2:DescribeLockedSnapshots` – 查看快照锁定设置。

以下是一个示例 IAM policy，它授权用户锁定和解锁快照以及查看快照锁定设置。其包括控制台用户的 `ec2:DescribeSnapshots` 权限。如果不需要某些上述权限，您可以从策略中将其删除。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSnapshotLockOperations",
      "Effect": "Allow",
      "Action": [
        "ec2:LockSnapshot",
        "ec2:UnlockSnapshot",
        "ec2:DescribeLockedSnapshots",
        "ec2:DescribeSnapshots"
      ],
      "Resource": [
        "arn:aws:ec2:*::snapshot/*",
        "arn:aws:ec2:*:111122223333:volume/*"
      ]
    }
  ]
}
```

------

要提供访问权限，请为您的用户、组或角色添加权限：
+ 中的用户和群组 AWS IAM Identity Center：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

## 使用条件键限制访问
<a name="snapshot-lock-condition-keys"></a>

可以使用条件键限制如何允许用户锁定快照。

**Topics**
+ [ec2: SnapshotLockDuration](#snapshotlockduration)
+ [ec2: CoolOffPeriod](#cooloffperiod)

### ec2: SnapshotLockDuration
<a name="snapshotlockduration"></a>

当锁定快照时，可以使用 `ec2:SnapshotLockDuration` 条件键将用户限制在特定的锁定持续时间内。

如下示例策略将禁止用户指定一个介于 `10` 到 `50` 天之间的锁定持续时间。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSnapshotLockWithDurationCondition",
      "Effect": "Allow",
      "Action": "ec2:LockSnapshot",
      "Resource": "arn:aws:ec2:*::snapshot/*",
      "Condition": {
        "NumericGreaterThan": {
          "ec2:SnapshotLockDuration": 10
        },
        "NumericLessThan": {
          "ec2:SnapshotLockDuration": 50
        }
      }
    }
  ]
}
```

------

### ec2: CoolOffPeriod
<a name="cooloffperiod"></a>

可以使用 `ec2:CoolOffPeriod` 条件键防止用户在未设冷静期的情况下在合规模式下锁定快照。

如下示例策略将禁止用户在合规模式下锁定快照时指定超过 `48` 小时的冷静期。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSnapshotLockWithCondition",
      "Effect": "Allow",
      "Action": "ec2:LockSnapshot",
      "Resource": "arn:aws:ec2:*::snapshot/*",
      "Condition": {
        "NumericGreaterThan": {
          "ec2:SnapshotTime": 48
        }
      }
    }
  ]
}
```

------