

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

# APIs 使用 IAM 直接控制对 EBS 的访问权限
<a name="ebsapi-permissions"></a>

用户必须遵循以下策略才能直接 APIs使用 EBS。有关更多信息，请参阅[更改用户权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。

有关用于 IAM 权限策略的 EBS 直接 APIs 资源、操作和条件上下文密钥的更多信息，请参阅*服务授权参考*中的 A [mazon Elastic Block Store 的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html)。

**重要**  
向 用户分配以下策略时请小心谨慎。通过分配这些策略，您可以向被拒绝通过 Amazon EC2 访问相同资源的用户授予访问权限 APIs，例如 CopySnapshot 或 CreateVolume 操作。

## 读取快照的权限
<a name="ebsapi-read-permissions"></a>

以下策略允许在特定 AWS 区域的所有快 APIs 照上使用直接*读取* EBS。在策略中，*<Region>*替换为快照的区域。

以下策略允许在带有特定键值标签 APIs 的快照上使用直接*读取* EBS。在策略中，*<Key>*替换为标签的键值和*<Value>*标签的值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/<Key>": "<Value>"
                }
            }
        }
    ]
}
```

------

以下策略仅允许在特定时间范围内对账户中的所有快照使用所有*读取* EBS direc APIs t。此策略授权 APIs 根据`aws:CurrentTime`全局条件密钥直接使用 EBS。在策略中，请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2018-05-29T00:00:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "2020-05-29T23:59:59Z"
                }
            }
        }
    ]
}
```

------

有关更多信息，请参阅《IAM 用户指南》**中的[更改用户权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。

## 写入快照的权限
<a name="ebsapi-write-permissions"></a>

以下策略允许在特定 AWS 区域的所有快照上使用*写入* EBS Direc APIs t。在策略中，*<Region>*替换为快照的区域。

以下策略允许在带有特定键值标签的快照上使用*写入* EBS direc APIs t。在策略中，*<Key>*替换为标签的键值和*<Value>*标签的值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:StartSnapshot",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/<Key>": "<Value>"
                }
            }
        }
    ]
}
```

------

以下策略允许使用所有 EBS Dire APIs ct。只有在指定了父快照 ID 时，它才允许执行 `StartSnapshot` 操作。因此，此策略会阻止在不使用父快照的情况下开始新快照的功能。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ebs:*", 
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ebs:ParentSnapshot": "arn:aws:ec2:*::snapshot/*"
                }
            }
        }
    ]
}
```

------

以下策略允许使用所有 EBS Dire APIs ct。它还允许只为新快照创建 `user` 标签键。此策略还确保用户有权创建标签。`StartSnapshot` 操作是唯一可以指定标签的操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ebs:*", 
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "user"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

以下策略仅允许在特定时间范围内对账户中的所有快照使用所有*写入* EBS direc APIs t。此策略授权 APIs 根据`aws:CurrentTime`全局条件密钥直接使用 EBS。在策略中，请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:StartSnapshot",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2018-05-29T00:00:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "2020-05-29T23:59:59Z"
                }
            }
        }
    ]
}
```

------

有关更多信息，请参阅《IAM 用户指南》**中的[更改用户权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。

## 使用权限 AWS KMS keys
<a name="ebsapi-kms-permissions"></a>

以下策略授予使用特定 KMS 密钥解密已加密快照的权限。该策略还授予使用 EBS 加密的默认 KMS 密钥来加密新快照的权限。在策略中，*<Region>*替换为 KMS 密钥的区域、*<AccountId>* KMS 密钥的 AWS 账户 ID 和 *<KeyId>* KMS 密钥的 ID。

**注意**  
默认情况下，账户中的所有委托人都可以访问用于 Amazon EBS 加密的默认 AWS 托管 KMS 密钥，并且可以将其用于 EBS 加密和解密操作。如果您使用的是客户托管式密钥，则必须创建新的密钥策略或修改客户托管式密钥的现有密钥策略，以便授予主体对客户托管式密钥的访问权限。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的[在 AWS KMS中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**提示**  
为遵循最小特权原则，请不要允许对 `kms:CreateGrant` 拥有完全访问权限。相反，使用`kms:GrantIsForAWSResource`条件密钥允许用户仅在 AWS 服务代表用户创建授权时才允许用户在 KMS 密钥上创建授权，如以下示例所示。

有关更多信息，请参阅《IAM 用户指南》**中的[更改用户权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。