本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 控制對 EBS 直接 APIs存取
使用者必須具有下列政策才能使用 EBS 直接 API。如需詳細資訊,請參閱變更使用者的許可。
如需用於 IAM 許可政策的 EBS 直接 API 資源、動作和條件索引鍵詳細資訊,請參閱《服務授權參考》中的 Amazon Elastic Block Store 的動作、資源與條件索引鍵。
將下列原則指派給使用者時,請務必小心。指派這些政策時,您可能將存取權授與在透過 Amazon EC2 API 存取相同資源遭到拒絕的使用者,例如 CopySnapshot 或 CreateVolume 動作。
下列政策允許在特定 AWS 區域中的所有快照上使用讀取 EBS 直接 APIs。在原則中,取代 <Region>
為快照的區域。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEBSDirectAPIReadOperations",
"Effect": "Allow",
"Action": [
"ebs:ListSnapshotBlocks",
"ebs:ListChangedBlocks",
"ebs:GetSnapshotBlock"
],
"Resource": "arn:aws:ec2:*::snapshot/*"
}
]
}
下列政策允許在具有特定金鑰值標籤的快照上使用 read EBS 直接 API。在政策中,以標籤的索引鍵值取代 <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>
"
}
}
}
]
}
下列政策允許所有 read EBS 直接 API 只能在特定時間範圍內用於帳戶中的所有快照。此政策會根據 aws:CurrentTime
全域條件金鑰授權使用 EBS 直接 API。在政策中,請務必將顯示的日期和時間範圍取代為政策的日期和時間範圍。
- 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 使用者指南中的變更使用者的許可。
下列政策允許在特定 AWS 區域中的所有快照上使用寫入 EBS 直接 APIs。在原則中,取代 <Region>
為快照的區域。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEBSDirectAPIOperations",
"Effect": "Allow",
"Action": [
"ebs:StartSnapshot",
"ebs:PutSnapshotBlock",
"ebs:CompleteSnapshot"
],
"Resource": "arn:aws:ec2:*::snapshot/*"
}
]
}
下列政策允許在具有特定金鑰值標籤的快照上使用 write EBS 直接 API。在政策中,以標籤的索引鍵值取代 <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 直接 API。它也允許只有在指定父系快照 ID 時才可執行 StartSnapshot
動作。因此,此政策會封鎖啟動新快照而不使用父系快照的能力。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ebs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ebs:ParentSnapshot": "arn:aws:ec2:*::snapshot/*"
}
}
}
]
}
下列政策允許使用所有的 EBS 直接 API。它也允許僅為新的快照建立 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": "*"
}
]
}
下列政策允許所有 write EBS 直接 API 僅在特定時間範圍內用於帳戶中的所有快照。此政策會根據 aws:CurrentTime
全域條件金鑰授權使用 EBS 直接 API。在政策中,請務必將顯示的日期和時間範圍取代為政策的日期和時間範圍。
- 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 使用者指南中的變更使用者的許可。
下列政策授與許可權,以使用特定 KMS 金鑰 來解密加密快照。其還授與使用 EBS 加密的預設 KMS 金鑰加密新快照的許可。於該政策中,將 <Region>
取代為 KMS 金鑰的區域、<AccountId>
取代為 KMS 金鑰 的 AWS 帳戶 ID,以及 <KeyId>
取代 KMS 金鑰 ID。
根據預設,帳戶中的所有主體都可以存取 Amazon EBS 加密的預設 AWS 受管 KMS 金鑰,而且可以將其用於 EBS 加密和解密操作。若您使用客戶受管金鑰,則必須為客戶受管金鑰建立新金鑰政策或修改現有金鑰政策,以授予主體對客戶受管金鑰的存取權限。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的在 AWS KMS中使用金鑰政策。
若要遵循最低權限原則人,請勿允許 kms:CreateGrant
的完整存取。反之,使用 kms:GrantIsForAWSResource
條件金鑰來允許使用者在 KMS 金鑰上建立授予,前提是授予是由 AWS 服務代使用者建立,如下列範例所示。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowKMSOperationsForEBS",
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ReEncrypt*",
"kms:CreateGrant",
"ec2:CreateTags",
"kms:DescribeKey"
],
"Resource": "arn:aws:kms:*:<AccountId>
:key/<KeyId>
",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
}
}
}
]
}
如需詳細資訊,請參閱 IAM 使用者指南中的變更使用者的許可。