AWS IAM → STACKIT

AWS IAM migreren naar STACKIT

AWS IAM-rollen worden STACKIT service accounts met roltoewijzingen op projectniveau. StackToIT onderscheidt de rollen die uw applicaties gebruiken van rollen die alleen AWS-diensten nodig hebben, zodat u identiteiten overneemt en niet de interne AWS-voorzieningen.

Van ECS-taakrollen naar STACKIT service accounts

Uit de gepubliceerde run van de AWS Retail Store. Links: de AWS-bron precies zoals AWS die publiceert. Rechts: de resourceblokken die StackToIT schreef; de reviewopmerkingen boven elk blok in het bestand zijn hier weggelaten.

AWS-bronterraform/lib/ecs/service/iam.tf
resource "aws_iam_role" "task_execution_role" {
  name               = "${var.environment_name}-${var.service_name}-te"
  assume_role_policy = data.aws_iam_policy_document.assume_role_policy.json
  tags               = var.tags
}

resource "aws_iam_role_policy_attachment" "task_execution_role_policy" {
  role       = aws_iam_role.task_execution_role.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
}

resource "aws_iam_role_policy_attachment" "task_execution_role_additional" {
  count      = length(var.additional_task_execution_role_iam_policy_arns)
  role       = aws_iam_role.task_execution_role.name
  policy_arn = var.additional_task_execution_role_iam_policy_arns[count.index]
}

resource "aws_iam_role" "task_role" {
  name               = "${var.environment_name}-${var.service_name}-task"
  assume_role_policy = data.aws_iam_policy_document.assume_role_policy.json
  tags               = var.tags
}
STACKIT-Terraform van StackToITterraform/identity.tf
resource "stackit_service_account" "retail_app_ecs_carts_service_task_execution_role" {
  project_id = var.project_id
  name       = "retail-app-ec-e66809"
}

resource "stackit_authorization_project_role_assignment" "retail_app_ecs_carts_service_task_execution_role" {
  for_each    = toset(var.carts_task_execution_project_roles)
  resource_id = var.project_id
  role        = each.value
  subject     = stackit_service_account.retail_app_ecs_carts_service_task_execution_role.email
}
  • Rollen worden service accounts

    Elke taakrol en uitvoeringsrol wordt een STACKIT service account, met een naam binnen de STACKIT-limiet van 20 tekens.

  • Rechten worden roltoewijzingen

    AWS-acties komen niet één op één overeen met STACKIT-rollen. De rollen zijn daarom per service account een variabele die uw architect invult.

  • Servicerollen vervallen

    Rollen die alleen een door AWS beheerde dienst gebruikt, zoals de EKS-control plane, worden als niet nodig op STACKIT benoemd.

  • Trustpolicies benoemd

    Een STACKIT service account kent geen trustpolicy. De code vermeldt dat, en verwijzingen naar rol-ARN's staan op de lijst om bij te werken.

Wat de run van de Retail Store opleverde

Identiteit is meer dan rollen. Dit zijn de feiten van de gepubliceerde run van de AWS Retail Store.

  • Tien rollen, tien service accounts

    Vijf services (ui, catalog, carts, checkout, orders) hebben elk een taakrol en een uitvoeringsrol. Elke rol wordt één stackit_service_account.

  • Eén variabele per account

    Elk service account krijgt een roltoewijzing die door een variabele wordt aangestuurd, zoals carts_service_task_project_roles of carts_task_execution_project_roles. De run schreef er tien voor uw architect om in te vullen.

  • Namen binnen de limiet

    Een naam van een service account telt hooguit 20 tekens, bestaat uit kleine letters, cijfers en enkele streepjes en is uniek binnen een project. Het concept kapt de naam af en voegt een achtervoegsel toe van de SHA-256 van het bronadres, bijvoorbeeld retail-app-ec-e66809. Stel de naam in die u wilt.

  • Koppelen blijft een beslissing

    Voor alle vijf de ECS-services is het koppelen van de identiteit als beslissing gemarkeerd. De Identity Architect is eigenaar van het werkpakket Set up the identities and access, met tien stappen.

  • Uitgeschakelde rollen toch geclassificeerd

    In de Retail-omgeving zijn de twee RDS-rollen voor enhanced monitoring en de rol voor VPC-flowlogs uitgeschakeld met count = 0. De run legt toch vast hoe die zouden worden behandeld: een monitoringrol die een database-instance gebruikt, geldt als rol van een door AWS beheerde dienst, en een rol waarvan het doel afhangt van waarden die pas tijdens de planfase bekend zijn, gaat naar uw architect.

  • Secrets erbij

    Vier Secrets Manager-secrets worden gekoppeld aan STACKIT Secrets Manager. Een script schrijft ze via de Vault-compatibele API zodra u de beslissing accepteert om van die API afhankelijk te zijn.

Bewezen op een echte AWS-omgeving

De AWS Retail Store Sample App, een openbaar Terraform-project van AWS, door StackToIT beoordeeld en volledig gepubliceerd, precies zoals de run het heeft opgeleverd.

Casestudy bekijken (Engels)
282
Terraform-resourcedeclaraties geanalyseerd
44
migratie-eenheden geïdentificeerd
38
doeleenheden gegenereerd, van de 52 onderzochte eenheden
331
planstappen uitgeschreven

Vragen van securityteams

Vertaalt StackToIT IAM-policies naar STACKIT-rollen?

StackToIT koppelt elke rol en de bijbehorende policies aan een service account met roltoewijzingen en laat de keuze van de STACKIT-rollen aan uw architect, omdat AWS-acties en STACKIT-rollen niet één op één op elkaar aansluiten.

Is de resource voor roltoewijzing op STACKIT stabiel?

stackit_authorization_project_role_assignment hoort bij de feature iam van de STACKIT-provider, een opt-in-functie waarvan de provider zegt dat die nog kan wijzigen. StackToIT schakelt die expliciet in en meldt dat in de code.

Hoe zit het met rechten die tot afzonderlijke resources beperkt zijn?

Een roltoewijzing op projectniveau geldt voor het hele project. Beperkt een bronpolicy rechten tot specifieke resources, dan markeert StackToIT dat, zodat u bindingen per resource kunt gebruiken waar de STACKIT-dienst die biedt.

Bepaalt StackToIT hoe een workload zich authenticeert?

StackToIT benoemt de vraag. De run vermeldt per service hoe de workload zijn service account krijgt, als beslissing voor de Identity Architect. Of workload identity federation past, de verschillen in rechten, break-glass-toegang en menselijke identiteiten blijven bij uw architecten. De run koppelt, verleent en federeert niets.

Waarom lijken de gegenereerde namen van service accounts afgekapt?

STACKIT beperkt de naam van een service account tot 20 tekens, dus een lange AWS-rolnaam kan niet ongewijzigd worden gebruikt. Het concept verkort de naam en voegt een hash-achtervoegsel toe, zodat twee rollen nooit botsen. U kunt elke geldige naam instellen.

Hoeveel rolvariabelen heeft een omgeving nodig?

Eén per service account. De omgeving van de Retail Store telt tien rollen en de run schreef tien variabelen, die uw architect elk invult met de STACKIT-rollen die dat service account nodig heeft.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring