Key Management Service (KMS) キーを使用してディスク、スナップショット、イメージなどのElastic Compute Service (ECS) リソースを暗号化する前に、KMSキーにアクセスする権限をECSに付与する必要があります。 暗号化されたイメージまたはスナップショットを他のAlibaba Cloudアカウントと共有する前に、共有者アカウントのKMSキーにアクセスする権限を共有者アカウントのECSに付与する必要があります。
ECSリソースの暗号化
ECSとKMSは深く統合されています。 ディスク、スナップショット、イメージなどのECSリソースを暗号化する場合は、KMSキーとKMSが提供するエンベロープ暗号化テクノロジを使用して、ECSリソースのデータを暗号化できます。 KMSが提供するサービスキー、または作成したカスタマーマスターキー (CMK) を使用できます。 暗号化キーの詳細については、「クラウドディスクの暗号化」トピックの暗号化キーセクションを参照してください。
サービスキーの使用
KMSは、クラウドサービスによって作成および管理されるサービスキーを、クラウドサービスがデータを暗号化するために無料で提供します。 ECSサービスキーを選択して、ECSインスタンスの特定のリソースを暗号化できます。 サービスキーはECSによって作成されます。 したがって、ECSは権限を取得する必要なしにキーを使用できます。
CMKの使用
サービスキーを使用しない場合は、自己作成または自己管理のCMKを使用できます。 この場合、CMKを使用する権限をECSに付与する必要があります。 ECSに前述の権限を付与するには、次の手順を実行します。
CMKを使用する権限をECSに付与することを確認すると、Alibaba Cloudはアカウントに
AliyunECSDiskEncryptDefaultRole
という名前のシステムデフォルトリソースアクセス管理 (RAM) ロールを作成します。 ロールには、KMSリソースにアクセスする権限があります。ECSはRAMロールを引き受けて、KMSのCMKにアクセスします。
ECSがCMKを使用するための権限の付与を確認するには、次の手順を実行します。
暗号化されたディスクの作成時など、初めてKMSでCMKを選択してECSリソースを暗号化すると、[さらにキーを選択する場合は、RAMロールに権限を付与する] メッセージが表示されます。
[権限付与ポリシーの確認] をクリックします。 システムは自動的に
AliyunECSDiskEncryptDefaultRole
という名前のRAMロールを作成し、RAMロールに権限を付与します。
承認を確認した後、ECSコンソールでKMSで作成したCMKを選択できます。
アカウント間で暗号化されたリソースを共有する
暗号化されたイメージまたはスナップショットを別のAlibaba Cloudアカウントまたはリソースディレクトリ (sharee) と共有する場合、イメージまたはスナップショットを暗号化するKMSキーにアクセスする権限を共有者に付与する必要があります。 イメージまたはスナップショットは、現在のAlibaba Cloudアカウント (共有者) のKMSキーを使用して暗号化されます。 共有者に上記の権限を付与するには、共有者アカウントにデフォルトのシステムロールを作成し、共有者のECSサービスが共有者アカウントのデフォルトのシステムロールを引き受け、共有者アカウントのKMSサービスを使用できるようにします。 以下の手順を実行します。
1. RAMロールの作成
暗号化されたスナップショットや暗号化されたイメージなどのリソースを共有する、信頼できるエンティティであるAlibaba Cloudアカウント (共有者) にRAMロールを作成します。 詳細については、「信頼できるAlibaba CloudアカウントのRAMロールの作成」をご参照ください。
暗号化されたスナップショットを共有する場合は、AliyunECSShareEncryptSnapshotDefaultRoleという名前のRAMロールを作成します。
暗号化されたイメージを共有する場合は、AliyunECSShareEncryptImageDefaultRoleという名前のRAMロールを作成します。
2. RAMロールのプリンシパルの変更
[信頼ポリシー] タブで、信頼ポリシーを変更して、暗号化されたスナップショットまたはイメージを共有するアカウントまたはリソースディレクトリを指定します。 詳細については、「RAMロールの信頼ポリシーの編集」をご参照ください。 次のサンプルコードは、RAMロールの信頼ポリシーの例を示しています。
シナリオ1: ECSリソースを他のAlibaba Cloudアカウントと共有する
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"<UID1>@ecs.aliyuncs.com",
"<UID2>@ecs.aliyuncs.com"
]
}
}
],
"Version": "1"
}
置換ポリシーで、<UID1> と <UID2> を、ECSリソースを共有するAlibaba CloudアカウントのIDに置き換えます。 暗号化されたスナップショットまたはイメージを複数のAlibaba Cloudアカウントと共有する場合は、各共有者アカウントのIDを指定します。
シナリオ2: ECSリソースとリソースディレクトリの共有
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "*@ecs.aliyuncs.com"
},
"Condition": {
"StringEquals": {
"sts:ServiceOwnerRDId": "<ID of the resource directory>"
}
}
}
],
"Version": "1"
}
置換ポリシーで、<リソースディレクトリのID>
を、ECSリソースを共有するリソースディレクトリのIDに置き換えます。 リソースディレクトリのIDを表示する方法については、「リソースディレクトリに関する基本情報の表示」をご参照ください。
シナリオ3: リソースディレクトリのフォルダとリソースを共有する
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "*@ecs.aliyuncs.com"
},
"Condition": {
"StringLike": {
"sts:ServiceOwnerRDPath": "<ID of the resource directory>/<Root folder ID>/.../<Current folder ID*>"
}
}
}
],
"Version": "1"
}
信頼ポリシーで、<リソースディレクトリのID> 、<ルートフォルダID> 、および <カレントフォルダID>
を実際の値に置き換えます。 フォルダーのリソースディレクトリのパスを表示する方法については、「フォルダーの基本情報の表示」をご参照ください。
3. カスタムポリシーを作成し、そのポリシーをRAMロールにアタッチする
共有するイメージまたはスナップショットがCMKを使用して暗号化されている場合、ECSがCMKにアクセスして使用できるように、カスタムポリシーを作成し、そのポリシーをRAMロールにアタッチする必要があります。 詳細については、「RAMロールへの権限の付与」をご参照ください。 次のサンプルコードは、カスタムポリシーの例を示しています。
イメージがサービスキーを使用して暗号化されている場合は、AliyunKMSFullAccess
システムポリシーをRAMロールにアタッチする必要があります。 詳細については、「AliyunKMSFullAccess」をご参照ください。
{
"Version": "1",
"Statement": [
{
"Action": "kms:List*",
"Resource": "acs:kms:<ID of the region in which the CMK resides>:<ID of the Alibaba Cloud account to which the CMK belongs>:key",
"Effect": "Allow"
},
{
"Action": [
"kms:DescribeKey",
"kms:TagResource",
"kms:UntagResource",
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "acs:kms:<ID of the region in which the CMK resides>:<ID of the Alibaba Cloud account to which the CMK belongs>:key/<ID of the CMK associated with the ECS resource>",
"Effect": "Allow"
}
]
}
<CMKが存在するリージョンのID>
、<CMKが属するAlibaba CloudアカウントのID>
、および <ECSリソースに関連付けられたCMKのID>
を実際の値に置き換えます。
4。 他のAlibaba Cloudアカウントとリソースを共有する
このトピックでは、暗号化操作に関連する権限について説明します。 詳細については、以下のトピックをご参照ください。