// API by default limits results to 50 aliases // This is how we make sure we won't miss any alias // See http://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html func findKmsAliasByName(conn *kms.KMS, name string, marker *string) (*kms.AliasListEntry, error) { req := kms.ListAliasesInput{ Limit: aws.Int64(int64(100)), } if marker != nil { req.Marker = marker } log.Printf("[DEBUG] Listing KMS aliases: %s", req) resp, err := conn.ListAliases(&req) if err != nil { return nil, err } for _, entry := range resp.Aliases { if *entry.AliasName == name { return entry, nil } } if *resp.Truncated { log.Printf("[DEBUG] KMS alias list is truncated, listing more via %s", *resp.NextMarker) return findKmsAliasByName(conn, name, resp.NextMarker) } return nil, nil }