Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon EBS で Kubernetes ボリュームを保存する

フォーカスモード
Amazon EBS で Kubernetes ボリュームを保存する - アマゾン EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

注記

新規: Amazon EKS Auto Mode は、ブロックストレージのルーチンタスクを自動化します。「ステートフルワークロードのサンプルを EKS Auto Mode にデプロイする」ではその方法を説明しています。

Amazon Elastic Block Store (Amazon EBS) コンテナストレージインターフェイス (CSI) ドライバーは、Amazon EBS ボリュームのライフサイクルを、作成した Kubernetes ボリュームのストレージとして管理します。Amazon EBS CSI ドライバーは、ジェネリック「エフェメラルボリューム」と「永続ボリューム」という種類の Kubernetes ボリューム用の Amazon EBS ボリュームを作成します。

考慮事項

  • EKS Auto Mode クラスターに Amazon EBS CSI コントローラーをインストールする必要はありません。

  • Amazon EBS ボリュームを Fargate Pod にマウントすることはできません。

  • Amazon EBS CSI コントローラーは Fargate ノードで実行できますが、Amazon EBS CSI ノード DaemonSet は Amazon EC2 インスタンスでのみ実行できます。

  • Amazon EBS ボリュームと Amazon EBS CSI ドライバーは Amazon EKS Hybrid Nodes と互換性がありません。

  • 最新のアドオンバージョンと 1 つの以前のバージョンがサポートされます。最新バージョンで見つかったバグや脆弱性は、新しいマイナーバージョンの以前のリリースにバックポートされます。

  • プロビジョナーとして ebs.csi.eks.amazonaws.com を使用してストレージクラスから作成されたプラットフォームバージョンのみを、EKS Auto Mode によって作成されたノードにマウントできます。既存のプラットフォームバージョンは、ボリュームスナップショットを使用して新しいストレージクラスに移行する必要があります。

重要

Amazon EBS CSI ドライバーのスナップショット機能を使用するには、まず CSI スナップショットコントローラーをインストールする必要があります。詳細については、「CSI ボリュームのためにスナップショット機能を有効にする」を参照してください。

前提条件

  • 既存のクラスター。必要なプラットフォームのバージョンを確認するには、次のコマンドを実行します。

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
  • EBS CSI ドライバーには AWS IAM アクセス許可が必要です。

  • クラスター全体の制限された PodSecurityPolicy を使用している場合、デプロイのための十分な権限がアドオンに付与されていることを確認してください。各アドオン Pod に必要なアクセス許可については、GitHub の「関連するアドオンマニフェストの定義」を参照してください。

ステップ 1: IAM ロールを作成する

Amazon EBS CSI プラグインでは、ユーザーに代わって AWS API の呼び出しを行うための IAM アクセス許可が必要です。これらのステップを実行しない場合、アドオンをインストールして kubectl describe pvc を実行しようとすると、could not create volume in EC2: UnauthorizedOperation エラーとともに failed to provision volume with StorageClass が表示されます。詳細については、GitHub 上の Set up driver permission を参照してください。

注記

Pod は、IMDS へのアクセスをブロックする場合を除き、IAM ロールに割り当てられたアクセス許可にアクセスできます。詳細については、「ベストプラクティスによる Amazon EKS クラスターの保護」を参照してください。

以下の手順は、IAM ロールを作成し、それに AWS マネージドポリシーをアタッチする方法を示しています。この手順を実装するには、次のいずれかのツールを使用できます。

注記

この手順には、ドライバーを Amazon EKS アドオンとして使用するための特定のステップが書かれています。ドライバーをセルフマネージドのアドオンとして使用するには、さまざまなステップが必要です。詳細については、GitHub の「Set up driver permissions」を参照してください。

eksctl

  1. IAM ロールを作成して、ポリシーをアタッチします。AWS が AWS マネージドポリシーを維持しますが、ユーザーが独自のカスタムポリシーを作成することもできます。次のコマンドを使用して、IAM ロールを作成し、それに AWS マネージドポリシーをアタッチできます。マイクラスター の部分は自分のクラスター名に置き換えます。このコマンドは IAM ロールを作成して IAM ポリシーをアタッチする AWS CloudFormation スタックをデプロイします。

    eksctl create iamserviceaccount \ --name ebs-csi-controller-sa \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKS_EBS_CSI_DriverRole \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --approve
  2. Amazon EBS ボリュームでの暗号化にカスタム「KMS キー」を使用する場合、必要に応じて IAM ロールをカスタマイズします。例えば、以下を実行してください。

    1. 次のコードをコピーし、新しい kms-key-for-encryption-on-ebs.json ファイルに貼り付けます。custom-key-arn をカスタム KMS key ARN に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["custom-key-arn"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn"] } ] }
    2. ポリシーを作成します。KMS_Key_For_Encryption_On_EBS_Policy を別の名前に変更できます。ただし、変更する場合は、必ず後の手順で変更してください。

      aws iam create-policy \ --policy-name KMS_Key_For_Encryption_On_EBS_Policy \ --policy-document file://kms-key-for-encryption-on-ebs.json
    3. 次のコマンドを使用して、IAM ポリシーをロールに添付します。111122223333 は、ご自分のアカウント ID に置き換えます。

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/KMS_Key_For_Encryption_On_EBS_Policy \ --role-name AmazonEKS_EBS_CSI_DriverRole

AWS Management Console

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左のナビゲーションペインで、[ロール] を選択してください。

  3. [ロール] ページで、[ロールの作成] を選択してください。

  4. [信頼されたエンティティを選択] ページで、以下の操作を実行します。

    1. [信頼されたエンティティの種類] セクションで、[ウェブ アイデンティティ] を選択します。

    2. [Identity provider] (ID プロバイダー) で、(Amazon EKS の [Overview] (概要) に示されているように) クラスターに [OpenID Connect provider URL] (OpenID Connect プロバイダーの URL) を選択します。

    3. [対象者] で [sts.amazonaws.com] を選択します。

    4. [Next] を選択します。

  5. [アクセス許可を追加] ページで、以下を実行します。

    1. [フィルタポリシー] ボックスに AmazonEBSCSIDriverPolicy と入力します。

    2. 検索で返された AmazonEBSCSIDriverPolicy の左にあるチェックボックスを選択します。

    3. [Next] を選択します。

  6. [名前を付けて、レビューし、作成する] ページで、以下の操作を実行します。

    1. [ロール名] に、AmazonEKS_EBS_CSI_DriverRole などのロールの一意の名前を入力します。

    2. [タグの追加 (オプション)] で、タグをキーバリューのペアとして添付して、メタデータをロールに追加します。IAM でのタグの使用に関する詳細については『IAM ユーザーガイド』の「IAM リソースにタグを付ける」を参照してください。

    3. [ロールの作成] を選択します。

  7. ロールが作成されたら、コンソールでロールを選択して編集用に開きます。

  8. [信頼関係] タブを選択し、続いて [信頼ポリシーの編集] を選択します。

  9. 次の行と似ている行を探してます。

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"

    前の行の末尾にカンマを追加し、前の行の後に次の行を追加します。region-code を、クラスターのある AWS リージョンに置き換えます。EXAMPLED539D4633E53DE1B71EXAMPLE をクラスターの OIDC プロバイダー ID に置き換えます。

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
  10. [ポリシーの更新] を選択して終了します。

  11. Amazon EBS ボリュームでの暗号化にカスタム「KMS キー」を使用する場合、必要に応じて IAM ロールをカスタマイズします。例えば、以下を実行してください。

    1. 左のナビゲーションペインの [ポリシー] を選択します。

    2. [ポリシー] ページで、[ポリシーの作成] を選択します。

    3. [ポリシーの作成] ページで、[JSON] タブを選択します。

    4. 次のコードをコピーしてエディタに貼り付け、custom-key-arn をカスタム KMS key ARN に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["custom-key-arn"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn"] } ] }
    5. [Next: Tags] (次へ: タグ) を選択します。

    6. [タグの追加 (オプション)] ページで、[次へ: 確認] を選択します。

    7. 名前 には、ポリシーの一意の名前を入力します (例: KMS_Key_For_Encryption_On_EBS_Policy)。

    8. [Create policy] を選択します。

    9. 左のナビゲーションペインで、[ロール] を選択してください。

    10. コンソールで [AmazonEKS_EBS_CSI_DriverRole] を選択し、編集用に開きます。

    11. [アクセス許可を追加] ドロップダウンリストから [ポリシーをアタッチ] を選択します。

    12. [フィルターポリシー] ボックスに、KMS_Key_For_Encryption_On_EBS_Policy と入力します。

    13. 検索で返された KMS_Key_For_Encryption_On_EBS_Policy の左側にあるチェックボックスをオンにします。

    14. [ポリシーのアタッチ] を選択します。

AWS CLI

  1. クラスターの OIDC プロバイダーの URL を表示します。マイクラスター の部分は自分のクラスター名に置き換えます。コマンドの出力が None の場合は、「前提条件」を確認してください。

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    出力例は次のとおりです。

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. IAM ロールを作成して AssumeRoleWithWebIdentity アクションを付与します。

    1. 次の内容を aws-ebs-csi-driver-trust-policy.json という名前のファイルにコピーします。111122223333 は、ご自分のアカウント ID に置き換えます。EXAMPLED539D4633E53DE1B71EXAMPLE および region-code を、前のステップで返された値にそれぞれ置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa" } } } ] }
    2. ロールを作成します。AmazonEKS_EBS_CSI_DriverRole を別の名前に変更できます。変更する場合は、必ず後の手順で変更してください。

      aws iam create-role \ --role-name AmazonEKS_EBS_CSI_DriverRole \ --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
  3. ポリシーをアタッチします。AWS が AWS マネージドポリシーを維持しますが、ユーザーが独自のカスタムポリシーを作成することもできます。次のコマンドを使用して、AWS マネージドポリシーをロールにアタッチします。

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --role-name AmazonEKS_EBS_CSI_DriverRole
  4. Amazon EBS ボリュームでの暗号化にカスタム「KMS キー」を使用する場合、必要に応じて IAM ロールをカスタマイズします。例えば、以下を実行してください。

    1. 次のコードをコピーし、新しい kms-key-for-encryption-on-ebs.json ファイルに貼り付けます。custom-key-arn をカスタム KMS key ARN に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["custom-key-arn"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn"] } ] }
    2. ポリシーを作成します。KMS_Key_For_Encryption_On_EBS_Policy を別の名前に変更できます。ただし、変更する場合は、必ず後の手順で変更してください。

      aws iam create-policy \ --policy-name KMS_Key_For_Encryption_On_EBS_Policy \ --policy-document file://kms-key-for-encryption-on-ebs.json
    3. 次のコマンドを使用して、IAM ポリシーをロールに添付します。111122223333 は、ご自分のアカウント ID に置き換えます。

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/KMS_Key_For_Encryption_On_EBS_Policy \ --role-name AmazonEKS_EBS_CSI_DriverRole

Amazon EBS CSI ドライバーの IAM ロールを作成したので、次のセクションに進むことができます。この IAM ロールを使用してアドオンをデプロイすると、ebs-csi-controller-sa という名前のサービスアカウントが作成され、それを使用されるように設定されます。サービスアカウントは Kubernetes clusterrole にバインドされます。これには、必要な Kubernetes アクセス許可が割り当てられています。

ステップ 2: Amazon EBS CSI ドライバーを入手する

セキュリティを強化し、作業量を削減するために、Amazon EKS アドオンを通じて Amazon EBS CSI ドライバーをインストールすることをお勧めします。Amazon EKS アドオンをクラスターに追加するには、「Amazon EKS アドオンを作成する」を参照してください。アドオンの詳細については、「Amazon EKS アドオン」を参照してください。

重要

Amazon EBS ドライバーを Amazon EKS アドオンとして追加する前に、クラスターにセルフマネージドバージョンのドライバーがインストールされていないことを確認してください。インストールされている場合は、GitHub の「Uninstalling a self-managed Amazon EBS CSI driver」を参照してください。

または、Amazon EBS CSI ドライバーのセルフマネージドインストールが必要な場合は、GitHub の「Installation」を参照してください。

ステップ 3: サンプルアプリケーションをデプロイする

さまざまなサンプルアプリケーションをデプロイし、必要に応じて変更できます。詳細については、GitHub の「Kubernetes Examples」を参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.