Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Armazene volumes do Kubernetes com o Amazon EBS

Modo de foco
Armazene volumes do Kubernetes com o Amazon EBS - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

nota

Novo: o Modo Automático do Amazon EKS automatiza tarefas de rotina para armazenamento em blocos. Aprenda como Implantar uma workload com estado de exemplo no Modo Automático do EKS.

O driver CSI (Container Storage Interface) do Amazon Elastic Block Store (Amazon EBS) gerencia o ciclo de vida dos volumes do Amazon EBS como armazenamento para os volumes do Kubernetes que você cria. O driver da CSI do Amazon EBS cria volumes do Amazon EBS para estes tipos de volumes do Kubernetes: volumes temporários e volumes persistentes genéricos.

Considerações

  • Você não precisa instalar o Controlador da CSI do Amazon EBS nos clusters do Modo Automático do EKS.

  • Você não pode montar volumes do Amazon EBS em Pods do Fargate.

  • Você pode executar o controlador da CSI do Amazon EBS em nós do Fargate, mas o DaemonSet do nó da CSI do Amazon EBS só pode ser executado em instâncias do Amazon EC2.

  • Os volumes do Amazon EBS e o driver CSI do Amazon EBS não são compatíveis com o Amazon EKS Hybrid Nodes.

  • Suporte será fornecido para a versão complementar mais recente e para uma versão anterior. Os bugs ou vulnerabilidades encontrados na versão mais recente serão corrigidos na versão anterior em uma nova versão secundária.

Importante

Para utilizar a funcionalidade de snapshot do driver da CSI do Amazon EBS, primeiro é necessário instalar o controlador de snapshots da CSI. Para ter mais informações, consulte Habilitar a funcionalidade de snapshot para volumes CSI.

Pré-requisitos

  • Um cluster existente. Para ver a versão necessária da plataforma, execute o comando a seguir.

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
  • Um provedor existente do AWS Identity and Access Management (IAM) OpenID Connect (OIDC) para o cluster. Para determinar se você tem ou para criar uma, consulte Criar um provedor OIDC do IAM para o cluster.

  • Se estiver usando uma PodSecurityPolicy restrita a todo o cluster, certifique-se de que o complemento tenha permissões suficientes para ser implantado. Para obter as permissões exigidas por cada Pod de complemento, consulte a definição relevante de manifesto de complemento no GitHub.

Etapa 1: Criar uma função do IAM

O plugin CSI do Amazon EBS requer permissões do IAM para fazer chamadas para APIs da AWS em seu nome. Se você não concluir essas etapas, a tentativa de instalar o complemento e de executar kubectl describe pvc mostrarão failed to provision volume with StorageClass junto com erro could not create volume in EC2: UnauthorizedOperation. Para obter mais informações, consulte Set up driver permission(Configurar permissão de driver) no GitHub.

nota

Pods terão acesso às permissões atribuídas ao perfil do IAM, a menos que você bloqueie o acesso ao IMDS. Para ter mais informações, consulte Proteger os clusters do Amazon EKS com as práticas recomendadas.

O procedimento a seguir mostra como criar um perfil do IAM e associar a política gerenciada da AWS a ele. Para implementar esse procedimento, você pode usar uma das seguintes ferramentas:

nota

As etapas específicas desse procedimento foram escritas para usar o driver como um complemento do Amazon EKS. Diferentes etapas para usar o driver como um complemento autogerenciado. Para obter mais informações, consulte Configurar permissão de driver no GitHub.

eksctl

  1. Criar um perfil do IAM e associar uma política. AWS mantém uma política AWS gerenciada ou você pode criar sua própria política personalizada. Você pode criar uma função IAM e anexar a política gerenciada AWS com o seguinte comando. Substitua my-cluster pelo nome do cluster. O comando implementa uma pilha do AWS CloudFormation que cria um perfil do IAM e anexa a política do IAM a ela.

    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. Se você usar uma chave do KMS personalizada para criptografia em seus volumes do Amazon EBS, personalize o perfil do IAM conforme necessário. Por exemplo, faça o seguinte:

    1. Copie e cole o código a seguir em um novo arquivo kms-key-for-encryption-on-ebs.json. Substitua custom-key-arn pelo ARN da chave do KMS personalizada.

      { "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. Crie a política . É possível alterar KMS_Key_For_Encryption_On_EBS_Policy para um nome diferente. Porém, se fizer isso, não se esqueça de alterá-lo também em etapas posteriores.

      aws iam create-policy \ --policy-name KMS_Key_For_Encryption_On_EBS_Policy \ --policy-document file://kms-key-for-encryption-on-ebs.json
    3. Anexe a política do IAM necessária à função com o comando a seguir. Substitua 111122223333 pelo ID da sua conta.

      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. Abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Funções.

  3. Na página Roles (Funções), selecione Create role (Criar função).

  4. Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:

    1. Na seção Trusted entity type (Tipo de entidade confiável), escolha Web identity (Identidade da Web).

    2. Em Provedor de identidade, escolha URL do provedor OpenID Connect para o cluster (conforme mostrado na guia Visão geral do Amazon EKS).

    3. Para Audience (Público), escolha sts.amazonaws.com.

    4. Escolha Próximo.

  5. Na página Add permissions (Adicionar permissões), faça o seguinte:

    1. Na caixa Filter policies (Políticas de filtro) insira AmazonEBSCSIDriverPolicy.

    2. Marque a caixa de seleção à esquerda do AmazonEBSCSIDriverPolicy retornado na pesquisa.

    3. Escolha Próximo.

  6. Na página Name, review, and create (Nomear, revisar e criar), faça o seguinte:

    1. Em Nome do perfil, insira um nome exclusivo para o perfil, como AmazonEKS_EBS_CSI_DriverRole.

    2. Em Adicionar tags (Opcional), adicione metadados ao perfil anexando tags como pares chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte Marcar recursos do IAM no Guia do usuário do IAM.

    3. Selecione Criar perfil.

  7. Depois que a função for criada, escolha a função no console a fim de abri-la para edição.

  8. Escolha a guia Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).

  9. Encontre a linha semelhante à seguinte:

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

    Adicione uma vírgula ao final da linha anterior e depois adicione a linha a seguir após a anterior. Substitua region-code pela região da AWS em que seu cluster se encontra. Substitua EXAMPLED539D4633E53DE1B71EXAMPLE pelo ID do provedor OIDC do cluster.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
  10. Escolha Update Policy (Atualizar política) para concluir.

  11. Se você usar uma chave do KMS personalizada para criptografia em seus volumes do Amazon EBS, personalize o perfil do IAM conforme necessário. Por exemplo, faça o seguinte:

    1. No painel de navegação à esquerda, escolha Políticas.

    2. Na página Policies (Políticas), escolha Create Policy (Criar política).

    3. Na página Criar política, escolha a guia JSON.

    4. Copie e cole o código a seguir no editor, substituindo custom-key-arn pelo ARN da chave KMS personalizada.

      { "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. Escolha Próximo: tags.

    6. Na página Add tags (optional) (Adicionar etiquetas - opcional), escolha Next: Review (Próximo: revisar).

    7. Em Nome, insira um nome exclusivo para sua política (por exemplo, KMS_Key_For_Encryption_On_EBS_Policy).

    8. Escolha Criar política.

    9. No painel de navegação à esquerda, selecione Perfis.

    10. Escolha AmazonEKS_EBS_CSI_DriverRole no console para abri-lo para edição.

    11. Na lista suspensa Add permissions (Adicionar permissões), escolha Attach policies (Anexar políticas).

    12. Na caixa Políticas de filtro, insira KMS_Key_For_Encryption_On_EBS_Policy.

    13. Marque a caixa de seleção à esquerda da KMS_Key_For_Encryption_On_EBS_Policy retornada na pesquisa.

    14. Escolha Anexar políticas.

AWS CLI

  1. Exiba a URL do provedor OIDC do cluster. Substitua my-cluster pelo nome do cluster. Se o resultado do comando for None, revise os Pré-requisitos.

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

    Veja um exemplo de saída abaixo.

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. Crie o perfil do IAM, concedendo a ação AssumeRoleWithWebIdentity.

    1. Copie o conteúdo a seguir em um arquivo chamado aws-ebs-csi-driver-trust-policy.json. Substitua 111122223333 pelo ID da sua conta. Substitua EXAMPLED539D4633E53DE1B71EXAMPLE e region-code pelos valores retornados na etapa anterior.

      { "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. Crie a função. É possível alterar AmazonEKS_EBS_CSI_DriverRole para um nome diferente. Se você alterá-lo, não se esqueça de alterá-lo em etapas superiores.

      aws iam create-role \ --role-name AmazonEKS_EBS_CSI_DriverRole \ --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
  3. Associar uma política. AWS mantém uma política AWS gerenciada ou você pode criar sua própria política personalizada. Anexe a política gerenciada pela AWS função com o comando a seguir.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --role-name AmazonEKS_EBS_CSI_DriverRole
  4. Se você usar uma chave do KMS personalizada para criptografia em seus volumes do Amazon EBS, personalize o perfil do IAM conforme necessário. Por exemplo, faça o seguinte:

    1. Copie e cole o código a seguir em um novo arquivo kms-key-for-encryption-on-ebs.json. Substitua custom-key-arn pelo ARN da chave do KMS personalizada.

      { "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. Crie a política . É possível alterar KMS_Key_For_Encryption_On_EBS_Policy para um nome diferente. Porém, se fizer isso, não se esqueça de alterá-lo também em etapas posteriores.

      aws iam create-policy \ --policy-name KMS_Key_For_Encryption_On_EBS_Policy \ --policy-document file://kms-key-for-encryption-on-ebs.json
    3. Anexe a política do IAM necessária à função com o comando a seguir. Substitua 111122223333 pelo ID da sua conta.

      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

Agora que você criou o perfil do IAM do driver de CSI do Amazon EBS, poderá avançar para a próxima seção. Quando você implanta o complemento com esse perfil do IAM, ele cria e é configurado para usar uma conta de serviço chamada ebs-csi-controller-sa. A conta de serviço está vinculada a uma clusterrole Kubernetes que recebe as permissões necessárias do Kubernetes.

Etapa 2: obter o driver de CSI do Amazon EBS

Recomendamos que você instale o driver de CSI do Amazon EBS por meio do complemento do Amazon EKS para reforçar a segurança e reduzir o volume do trabalho. Para adicionar um complemento do Amazon EKS ao cluster, consulte Criar um complemento do Amazon EKS. Para obter mais informações sobre complementos, consulte Complementos do Amazon EKS.

Importante

Antes de adicionar o driver do Amazon EBS como um complemento do Amazon EKS, verifique se você não tem uma versão autogerenciada do driver instalada no seu cluster. Em caso afirmativo, consulte Desinstalar um driver de CSI autogerenciado do Amazon EBS em GitHub.

Como alternativa, se desejar uma instalação autogerenciada do driver de CSI do Amazon EFS, consulte Instalação em GitHub.

Etapa 3: implantar uma aplicação de exemplo

Você pode implantar toda uma variedade de aplicações de exemplo e modificá-las conforme necessário. Para obter mais informações, consulte Exemplos do Kubernetes em GitHub.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.