Pular para o conteúdo principal

Pré-Requisitos e Permissões IAM

Antes de instalar o AI Cockpit: Smart Engineering no Amazon EKS, prepare o cluster, os buckets S3 e as permissões IAM de runtime.

Pré-requisitos de cluster e ferramentas

Antes de iniciar a implantação, confirme que você tem:

  • Uma conta AWS ativa com permissão para assinar produtos do AWS Marketplace
  • Um cluster Amazon EKS com acesso via kubectl
  • helm instalado localmente
  • Uma storage class padrão no cluster para os volumes do PostgreSQL e do Valkey
  • Um controlador de ingress se quiser expor a aplicação com DNS públicos

Valide o acesso local:

aws eks update-kubeconfig --region us-east-1 --name <cluster-name>
kubectl get nodes
helm version

Buckets S3 obrigatórios

O produto requer três buckets gerenciados pelo cliente:

  • um para upload de código-fonte
  • um para artefatos e saídas geradas
  • um para artefatos de workspace

Exemplo:

smart-eng-source
smart-eng-output
smart-eng-workspace

Esses nomes são informados ao chart Helm durante a instalação.

Modelo recomendado de workload identity

Para Amazon EKS, o modelo de identidade recomendado em runtime é IRSA.

Isso significa que:

  • os pods executam com uma service account Kubernetes dedicada
  • essa service account é associada a uma role IAM
  • a aplicação usa credenciais temporárias AWS por meio da cadeia padrão do SDK

Criar a service account Kubernetes

Crie um namespace e uma service account dedicada:

kubectl create namespace aic-modernization
kubectl create serviceaccount aic-modernization -n aic-modernization

Depois que a role IAM estiver criada, a service account deve ficar assim:

apiVersion: v1
kind: ServiceAccount
metadata:
name: aic-modernization
namespace: aic-modernization
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/aic-modernization-marketplace
Aviso Sobre a Service Account

Alguns fluxos de instalação do Marketplace passam ${AWSMP_SERVICE_ACCOUNT} como valor de entrada, mas isso não significa que a service account Kubernetes será criada automaticamente. Se isso acontecer no seu ambiente, crie a service account manualmente antes de executar o helm install ou helm upgrade.

Permissões IAM obrigatórias

A role IAM de runtime deve permitir acesso a:

  • AWS Marketplace metering
  • APIs de consumo do AWS License Manager
  • os três buckets S3
  • invocação de modelos no Amazon Bedrock
  • descoberta do catálogo de modelos do Bedrock

Adicione permissões para:

  • AWSMarketplaceMeteringRegisterUsage
  • AWSMarketplaceMeteringFullAccess
  • AWSLicenseManagerConsumptionPolicy
  • s3:ListBucket
  • s3:GetObject
  • s3:PutObject
  • s3:DeleteObject
  • bedrock:InvokeModel
  • bedrock:InvokeModelWithResponseStream
  • bedrock:ListFoundationModels

Exemplo de política IAM

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "MarketplaceAndLicense",
"Effect": "Allow",
"Action": [
"aws-marketplace:MeterUsage",
"aws-marketplace:RegisterUsage",
"license-manager:CheckoutLicense",
"license-manager:GetAccessToken"
],
"Resource": "*"
},
{
"Sid": "S3Buckets",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<source-bucket>",
"arn:aws:s3:::<output-bucket>",
"arn:aws:s3:::<workspace-bucket>"
]
},
{
"Sid": "S3Objects",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::<source-bucket>/*",
"arn:aws:s3:::<output-bucket>/*",
"arn:aws:s3:::<workspace-bucket>/*"
]
},
{
"Sid": "BedrockRuntime",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/<primary-model-id>",
"arn:aws:bedrock:us-east-1::foundation-model/<secondary-model-id>"
]
},
{
"Sid": "BedrockCatalog",
"Effect": "Allow",
"Action": [
"bedrock:ListFoundationModels"
],
"Resource": "*"
}
]
}

Comportamento do runtime no Marketplace

A aplicação valida o entitlement do Marketplace como parte do runtime, mas o cliente não precisa informar um parâmetro de Marketplace license secret no comando de instalação para o fluxo atual documentado nesta seção.