IAMEBS直接访问权限 APIs - Amazon EBS

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

IAMEBS直接访问权限 APIs

用户必须遵循以下策略才能使用EBS直接APIs。有关更多信息,请参阅更改用户权限

有关IAM权限策略中使用的EBS直接APIs资源、操作和条件上下文密钥的更多信息,请参阅《服务授权参考》中的 Amazon Elastic Block Store 的操作、资源和条件密钥

重要

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

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

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

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

{ "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直接APIs读取。该策略授权APIs根据aws:CurrentTime全局条件密钥使用EBS直接协议。在策略中,请务必将显示的日期和时间范围替换为适用于您的策略的日期和时间范围。

{ "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用户权限

以下策略允许对特定 AWS 区域的所有快照使用EBS直接APIs写入。在策略中,替换 <Region> 带有快照的区域。

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

以下策略允许在带有特定键值标签的快照上使用EBS直接APIs写入。在策略中,替换 <Key> 使用标签的键值,以及 <Value> 使用标签的值。

{ "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>" } } } ] }

以下策略允许使用所有EBSAPIs直接方式。只有在指定了父快照 ID 时,它才允许执行 StartSnapshot 操作。因此,此策略会阻止在不使用父快照的情况下开始新快照的功能。

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

以下策略允许使用所有EBSAPIs直接方式。它还允许只为新快照创建 user 标签键。此策略还确保用户有权创建标签。StartSnapshot 操作是唯一可以指定标签的操作。

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

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

{ "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用户权限

以下策略授予使用特定KMS密钥解密加密快照的权限。它还授予使用默认加密密KMS钥加密新快照的EBS权限。在策略中,替换 <Region> 使用KMS密钥所在区域,<AccountId> 使用KMS密钥 AWS 账户的 ID,以及 <KeyId> 带有KMS密钥的 ID。

注意

默认情况下,账户中的所有委托人都可以访问用于 Amazon EBS 加密的默认 AWS 托管KMS密钥,并且可以将其用于EBS加密和解密操作。如果您使用的是客户托管式密钥,则必须创建新的密钥策略或修改客户托管式密钥的现有密钥策略,以便授予主体对客户托管式密钥的访问权限。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的在 AWS KMS中使用密钥策略

提示

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*", "kms:CreateGrant", "ec2:CreateTags", "kms:DescribeKey" ], "Resource": "arn:aws:kms:<Region>:<AccountId>:key/<KeyId>", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

有关更多信息,请参阅《用户指南》中的更改IAM用户权限