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 helminstalado 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
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:
AWSMarketplaceMeteringRegisterUsageAWSMarketplaceMeteringFullAccessAWSLicenseManagerConsumptionPolicys3:ListBuckets3:GetObjects3:PutObjects3:DeleteObjectbedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock: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.