すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:暗号化関連の権限

最終更新日:Dec 05, 2024

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は権限を取得する必要なしにキーを使用できます。

image

CMKの使用

サービスキーを使用しない場合は、自己作成または自己管理のCMKを使用できます。 この場合、CMKを使用する権限をECSに付与する必要があります。 ECSに前述の権限を付与するには、次の手順を実行します。

  1. CMKを使用する権限をECSに付与することを確認すると、Alibaba CloudはアカウントにAliyunECSDiskEncryptDefaultRoleという名前のシステムデフォルトリソースアクセス管理 (RAM) ロールを作成します。 ロールには、KMSリソースにアクセスする権限があります。

  2. ECSはRAMロールを引き受けて、KMSのCMKにアクセスします。

    image

ECSがCMKを使用するための権限の付与を確認するには、次の手順を実行します。

  1. 暗号化されたディスクの作成時など、初めてKMSでCMKを選択してECSリソースを暗号化すると、[さらにキーを選択する場合は、RAMロールに権限を付与する] メッセージが表示されます。

    image

  2. [権限付与ポリシーの確認] をクリックします。 システムは自動的にAliyunECSDiskEncryptDefaultRoleという名前のRAMロールを作成し、RAMロールに権限を付与します。

    image

承認を確認した後、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アカウントとリソースを共有する

このトピックでは、暗号化操作に関連する権限について説明します。 詳細については、以下のトピックをご参照ください。