

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Criação de uma funcionalidade do ACK
<a name="create-ack-capability"></a>

Este capítulo explica como criar uma funcionalidade do ACK no cluster do Amazon EKS.

## Pré-requisitos
<a name="_prerequisites"></a>

Antes de criar uma funcionalidade do ACK, certifique-se de ter:
+ Um cluster do Amazon EKS
+ Um perfil do IAM para a funcionalidade com permissões para o ACK gerenciar recursos da AWS
+ Permissões do IAM suficientes para criar recursos de funcionalidades em clusters de EKS
+ A ferramenta de CLI apropriada instalada e configurada, ou o acesso ao console do EKS

Para obter instruções sobre como criar o perfil do IAM para a funcionalidade, consulte [Perfil do IAM para a funcionalidade do Amazon EKS](capability-role.md).

**Importante**  
O ACK é uma funcionalidade de gerenciamento de infraestrutura que concede a capacidade de criar, modificar e excluir recursos da AWS. Trata-se de uma funcionalidade de escopo de administrador que deve ser controlada cuidadosamente. Qualquer pessoa com permissão para criar recursos do Kubernetes no cluster pode, efetivamente, criar recursos da AWS por meio do ACK, sujeito às permissões do perfil do IAM para a funcionalidade. O perfil do IAM para a funcionalidade que você fornece determina quais recursos da AWS o ACK pode criar e gerenciar. Para obter orientações sobre como criar um perfil apropriado com permissões de privilégio mínimo, consulte [Perfil do IAM para a funcionalidade do Amazon EKS](capability-role.md) e [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md).

## Escolha da ferramenta
<a name="_choose_your_tool"></a>

É possível criar uma funcionalidade do ACK por meio do Console de gerenciamento da AWS, da AWS CLI ou do eksctl:
+  [Criação de uma funcionalidade do ACK por meio do Console](ack-create-console.md): use o Console para obter uma experiência guiada
+  [Criação de uma funcionalidade do ACK por meio da AWS CLI](ack-create-cli.md): use a AWS CLI para obter scripts e automação
+  [Criação de uma funcionalidade do ACK por meio do eksctl](ack-create-eksctl.md): use o eksctl para obter uma experiência nativa do Kubernetes

## O que ocorre durante a criação de uma funcionalidade do ACK
<a name="_what_happens_when_you_create_an_ack_capability"></a>

Ao criar uma funcionalidade do ACK:

1. O EKS cria o serviço da funcionalidade do ACK e o configura para monitorar e gerenciar recursos no cluster

1. As definições de recursos personalizados (CRDs, na sigla em inglês) são instaladas no cluster

1. Uma entrada de acesso é criada automaticamente para seu perfil de funcionalidade do IAM com políticas de entrada de acesso específicas de recursos que concedem permissões básicas do Kubernetes (consulte [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md))

1. A funcionalidade assume o perfil do IAM para a funcionalidade, que foi fornecido por você

1. O ACK começa a monitorar os recursos personalizados no cluster

1. O status da funcionalidade é alterado de `CREATING` para `ACTIVE` 

Assim que estiver ativa, será possível criar recursos personalizados do ACK no cluster para gerenciar recursos da AWS

**nota**  
A entrada de acesso criada automaticamente inclui a `AmazonEKSACKPolicy` que concede permissões ACK para gerenciar recursos da AWS. Alguns recursos do ACK que fazem referência a segredos do Kubernetes (como bancos de dados do RDS com senhas) exigem políticas adicionais de entrada de acesso. Para saber mais sobre entradas de acesso e como configurar permissões adicionais, consulte [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md).

## Próximas etapas
<a name="_next_steps"></a>

Após criar a funcionalidade do ACK:
+  [Conceitos do ACK](ack-concepts.md): entenda os conceitos do ACK e comece a usar o serviço com os recursos da AWS
+  [Conceitos do ACK](ack-concepts.md): saiba mais sobre reconciliação, exportações de campos e padrões de adoção de recursos
+  [Configuração das permissões do ACK](ack-permissions.md): configure permissões do IAM e padrões para várias contas

# Criação de uma funcionalidade do ACK por meio do Console
<a name="ack-create-console"></a>

Este tópico descreve como criar uma funcionalidade do AWS Controllers for Kubernetes (ACK) usando o Console de gerenciamento da AWS.

## Criação da funcionalidade do ACK
<a name="_create_the_ack_capability"></a>

1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home\$1/clusters.

1. Selecione o nome do cluster para abrir a página de detalhes do cluster.

1. Escolha a guia **Funcionalidades**.

1. No painel de navegação à esquerda, escolha **AWS Controllers for Kubernetes (ACK)**.

1. Escolha **Criar uma funcionalidade do AWS Controllers for Kubernetes**.

1. No **perfil da funcionalidade do IAM**:
   + Se você já tiver um perfil da funcionalidade do IAM, selecione-o no menu suspenso
   + Se a criação de um perfil for necessária, escolha **Criar perfil de administrador** 

     Isso abre o console do IAM em uma nova guia com a política de confiança preenchida previamente e a política gerenciada `AdministratorAccess`. É possível desmarcar esta política e adicionar outras permissões, se preferir.

     Após criar o perfil, retorne ao console do EKS e o perfil será selecionado automaticamente.
**Importante**  
A política `AdministratorAccess` sugerida concede permissões abrangentes e destina-se a simplificar as etapas iniciais do uso do serviço. Para ambientes de produção, substitua essa política por uma personalizada que forneça somente as permissões exigidas pelos serviços específicos da AWS que você pretende gerenciar usando o ACK. Para obter orientações sobre como criar políticas de privilégio mínimo, consulte [Configuração das permissões do ACK](ack-permissions.md) e [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md).

1. Escolha **Criar**.

O processo de criação da funcionalidade é iniciado.

## Verificação da ativação da funcionalidade
<a name="_verify_the_capability_is_active"></a>

1. Na guia **Funcionalidades**, visualize o status da funcionalidade do ACK.

1. Aguarde até que o status mude de `CREATING` para `ACTIVE`.

1. Assim que estiver com o status ativo, a funcionalidade estará pronta para uso.

Para obter informações sobre os status das funcionalidades e sobre a solução de problemas, consulte [Como trabalhar com recursos de funcionalidade](working-with-capabilities.md).

## Verificação da disponibilidade de recursos personalizados
<a name="_verify_custom_resources_are_available"></a>

Após a funcionalidade estar ativa, verifique se os recursos personalizados do ACK estão disponíveis no cluster.

 **Utilizar o console** 

1. Navegue até o cluster no console do Amazon EKS

1. Escolha a guia **Recursos**

1. Escolha **Extensões** 

1. Escolha **CustomResourceDefinitions** 

Você deverá visualizar várias CRDs listadas para os recursos da AWS.

 **Uso do kubectl** 

```
kubectl api-resources | grep services.k8s.aws
```

Você deverá visualizar várias APIs listadas para os recursos da AWS.

**nota**  
A funcionalidade do AWS Controllers for Kubernetes instalará diversas CRDs para vários tipos de recursos da AWS.

## Próximas etapas
<a name="_next_steps"></a>
+  [Conceitos do ACK](ack-concepts.md): entenda os conceitos do ACK e comece a usar o serviço
+  [Configuração das permissões do ACK](ack-permissions.md): configure as permissões do IAM para outros serviços da AWS
+  [Como trabalhar com recursos de funcionalidade](working-with-capabilities.md): gerencie os recursos da funcionalidade do ACK

# Criação de uma funcionalidade do ACK por meio da AWS CLI
<a name="ack-create-cli"></a>

Este tópico descreve como criar uma funcionalidade do AWS Controllers for Kubernetes (ACK) usando a AWS CLI.

## Pré-requisitos
<a name="_prerequisites"></a>
+  **AWS CLI**: versão `2.12.3` ou em versões posteriores. Para verificar a versão, execute `aws --version`. Para obter mais informações, consulte [Instalação](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) no Guia do Usuário da Interface de Linha de Comando AWS.
+  ** `kubectl` ** – uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Para obter mais informações, consulte [Configurar o `kubectl` e o `eksctl`](install-kubectl.md).

## Etapa 1: criação de um perfil da funcionalidade do IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Crie um arquivo de política de confiança:

```
cat > ack-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Crie o perfil do IAM:

```
aws iam create-role \
  --role-name ACKCapabilityRole \
  --assume-role-policy-document file://ack-trust-policy.json
```

Anexe a política gerenciada `AdministratorAccess` ao perfil:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**Importante**  
A política `AdministratorAccess` sugerida concede permissões abrangentes e destina-se a simplificar as etapas iniciais do uso do serviço. Para ambientes de produção, substitua essa política por uma personalizada que forneça somente as permissões exigidas pelos serviços específicos da AWS que você pretende gerenciar usando o ACK. Para obter orientações sobre como criar políticas de privilégio mínimo, consulte [Configuração das permissões do ACK](ack-permissions.md) e [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md).

## Etapa 2: criação da funcionalidade do ACK
<a name="_step_2_create_the_ack_capability"></a>

Crie o recurso da funcionalidade do ACK no cluster. Substitua *region-code* pela região AWS em que seu cluster se encontra e substitua *my-cluster* pelo nome do seu cluster.

```
aws eks create-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack \
  --type ACK \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \
  --delete-propagation-policy RETAIN
```

O comando é concluído de imediato, mas a funcionalidade demora algum tempo para se tornar ativa, conforme o EKS cria a infraestrutura e os componentes necessários para a funcionalidade. O EKS instalará as definições de recursos personalizados do Kubernetes relacionadas a essa funcionalidade no cluster durante o processo de criação.

**nota**  
Caso ocorra um erro indicando a inexistência do cluster ou falta de permissões, verifique o seguinte:  
Se o nome do cluster está correto
Se a AWS CLI está configurada para a região correta
Se você tem as permissões do IAM obrigatórias

## Etapa 3: verificação da ativação da funcionalidade
<a name="_step_3_verify_the_capability_is_active"></a>

Aguarde até que a funcionalidade se torne ativa. Substitua *region-code* pela região AWS em que seu cluster se encontra e substitua *my-cluster* pelo nome do seu cluster.

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack \
  --query 'capability.status' \
  --output text
```

A funcionalidade estará pronta assim que o status mostrar `ACTIVE`. Não prossiga para a próxima etapa até que o status seja `ACTIVE`.

Também é possível visualizar os detalhes completos da funcionalidade:

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack
```

## Etapa 4: verificação da disponibilidade de recursos personalizados
<a name="_step_4_verify_custom_resources_are_available"></a>

Após a funcionalidade estar ativa, verifique se os recursos personalizados do ACK estão disponíveis no cluster:

```
kubectl api-resources | grep services.k8s.aws
```

Você deverá visualizar várias APIs listadas para os recursos da AWS.

**nota**  
A funcionalidade do AWS Controllers for Kubernetes instalará diversas CRDs para vários tipos de recursos da AWS.

## Próximas etapas
<a name="_next_steps"></a>
+  [Conceitos do ACK](ack-concepts.md): entenda os conceitos do ACK e comece a usar o serviço
+  [Configuração das permissões do ACK](ack-permissions.md): configure as permissões do IAM para outros serviços da AWS
+  [Como trabalhar com recursos de funcionalidade](working-with-capabilities.md): gerencie os recursos da funcionalidade do ACK

# Criação de uma funcionalidade do ACK por meio do eksctl
<a name="ack-create-eksctl"></a>

Este tópico descreve como criar uma funcionalidade do AWS Controllers for Kubernetes (ACK) usando o eksctl.

**nota**  
Para realizar as etapas seguintes, você deve estar utilizando o eksctl na versão `0.220.0` ou em versões posteriores. Para verificar a versão, execute `eksctl version`.

## Etapa 1: criação de um perfil da funcionalidade do IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Crie um arquivo de política de confiança:

```
cat > ack-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Crie o perfil do IAM:

```
aws iam create-role \
  --role-name ACKCapabilityRole \
  --assume-role-policy-document file://ack-trust-policy.json
```

Anexe a política gerenciada `AdministratorAccess` ao perfil:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**Importante**  
A política `AdministratorAccess` sugerida concede permissões abrangentes e destina-se a simplificar as etapas iniciais do uso do serviço. Para ambientes de produção, substitua essa política por uma personalizada que forneça somente as permissões exigidas pelos serviços específicos da AWS que você pretende gerenciar usando o ACK. Para obter orientações sobre como criar políticas de privilégio mínimo, consulte [Configuração das permissões do ACK](ack-permissions.md) e [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md).

**Importante**  
Esta política concede permissões para o gerenciamento de buckets do S3 com `"Resource": "*"`, o que permite operações em todos os buckets do S3.  
Para uso em ambientes de produção: \$1 Restrinja o campo `Resource` a ARNs de buckets específicos ou padrões de nomes \$1 Use chaves de condição do IAM para limitar o acesso por etiquetas de recurso \$1 Conceda apenas as permissões mínimas necessárias para o seu caso de uso  
Para uso com outros serviços da AWS, consulte [Configuração das permissões do ACK](ack-permissions.md).

Anexe a política à função:

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/ACKS3Policy
```

## Etapa 2: criação da funcionalidade do ACK
<a name="_step_2_create_the_ack_capability"></a>

Crie a funcionalidade do ACK por meio do eksctl. Substitua *region-code* pela região AWS em que seu cluster se encontra e substitua *my-cluster* pelo nome do seu cluster.

```
eksctl create capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack \
  --type ACK \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \
  --ack-service-controllers s3
```

**nota**  
O sinalizador `--ack-service-controllers` é opcional. Se omitido, o ACK habilita todos os controladores disponíveis. Para otimizar a performance e a segurança, recomendamos habilitar somente os controladores necessários. É possível definir vários controladores ao mesmo tempo: `--ack-service-controllers s3,rds,dynamodb` 

O comando é executado de forma imediata, mas a funcionalidade demora algum tempo para se tornar ativa.

## Etapa 3: verificação da ativação da funcionalidade
<a name="_step_3_verify_the_capability_is_active"></a>

Verifique o status da funcionalidade:

```
eksctl get capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack
```

A funcionalidade estará pronta assim que o status mostrar `ACTIVE`.

## Etapa 4: verificação da disponibilidade de recursos personalizados
<a name="_step_4_verify_custom_resources_are_available"></a>

Após a funcionalidade estar ativa, verifique se os recursos personalizados do ACK estão disponíveis no cluster:

```
kubectl api-resources | grep services.k8s.aws
```

Você deverá visualizar várias APIs listadas para os recursos da AWS.

**nota**  
A funcionalidade do AWS Controllers for Kubernetes instalará diversas CRDs para vários tipos de recursos da AWS.

## Próximas etapas
<a name="_next_steps"></a>
+  [Conceitos do ACK](ack-concepts.md): entenda os conceitos do ACK e comece a usar o serviço
+  [Configuração das permissões do ACK](ack-permissions.md): configure as permissões do IAM para outros serviços da AWS
+  [Como trabalhar com recursos de funcionalidade](working-with-capabilities.md): gerencie os recursos da funcionalidade do ACK